diff --git a/README.md b/README.md index 848d161..ce43b59 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This is updated **face-api.js** with latest available TensorFlow/JS as the origi Forked from [face-api.js](https://github.com/justadudewhohacks/face-api.js) version **0.22.2** released on March 22nd, 2020 -Currently based on **`TensorFlow/JS` 3.0.0** +Currently based on **`TensorFlow/JS` 3.1.0** ### Why? @@ -19,7 +19,7 @@ Unfortunately, changes ended up being too large for a simple pull request on ori ### Differences -- Compatible with `TensorFlow/JS 2.0+` +- Compatible with `TensorFlow/JS 2.0+ & 3.0+` - Compatible with `WebGL`, `CPU` and `WASM` TFJS Browser backends - Compatible with both `tfjs-node` and `tfjs-node-gpu` TFJS NodeJS backends - Updated all type castings for TypeScript type checking to `TypeScript 4.1` diff --git a/dist/face-api.esm-nobundle.js b/dist/face-api.esm-nobundle.js index acacf34..cca7aa3 100644 --- a/dist/face-api.esm-nobundle.js +++ b/dist/face-api.esm-nobundle.js @@ -5,5 +5,5 @@ author: ' */ -var dn=Object.create,Ge=Object.defineProperty,un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty,ln=Object.getOwnPropertyNames,hn=Object.getOwnPropertyDescriptor;var Er=o=>Ge(o,"__esModule",{value:!0});var ho=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Mr=(o,t)=>{for(var e in t)Ge(o,e,{get:t[e],enumerable:!0})},lt=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ln(t))!fn.call(o,r)&&r!=="default"&&Ge(o,r,{get:()=>t[r],enumerable:!(e=hn(t,r))||e.enumerable});return o},b=o=>o&&o.__esModule?o:lt(Er(Ge(o!=null?dn(un(o)):{},"default",{value:o,enumerable:!0})),o);import*as Ma from"@tensorflow/tfjs/dist/index.js";import*as Ca from"@tensorflow/tfjs-backend-wasm";var g=ho(xn=>{Er(xn);lt(xn,Ma);lt(xn,Ca)});var yo=ho((Pn,vo)=>{Er(Pn);Mr(Pn,{isNodejs:()=>_n});function _n(){return typeof global=="object"&&!0&&typeof vo!="undefined"&&typeof process!="undefined"&&!!process.version}});var va=b(g());var to={};Mr(to,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Yr,DrawFaceLandmarks:()=>Qr,DrawFaceLandmarksOptions:()=>Kr,DrawTextField:()=>Ct,DrawTextFieldOptions:()=>Ne,drawContour:()=>ht,drawDetections:()=>En,drawFaceExpressions:()=>In,drawFaceLandmarks:()=>Ln});function ht(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Cr={};Mr(Cr,{computeReshapedDimensions:()=>Lr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Ir,isTensor:()=>Rt,isTensor1D:()=>bn,isTensor2D:()=>Nr,isTensor3D:()=>xt,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>$t});var xo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Rt(o,t){return o instanceof xo.Tensor&&o.shape.length===t}function bn(o){return Rt(o,1)}function Nr(o){return Rt(o,2)}function xt(o){return Rt(o,3)}function z(o){return Rt(o,4)}function Ir(o){return o%1!=0}function ze(o){return o%2==0}function $t(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function Lr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Et=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Et(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Et{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function kr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Sr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Mt=b(g());function Wr(o,t=!1){return Mt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let f=o.shape.slice();return f[s]=u,Mt.fill(f,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Mt.cast(u,"float32"));return Mt.concat(d,s)})}function gn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ee(o){return 1/(1+Math.exp(-o))}function vn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var yn=.5,Fn=.43,Tn=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Tn),c=Ot(t),m=Math.floor(Math.max(0,c.x-yn*i)),p=Math.floor(Math.max(0,c.y-Fn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Sr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var bo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Me=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${$t(this.distance)})`:""}`}};var Ce=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var bt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new bt(t.label,e)}};var go=class extends Ce{static assertIsValidPredictedBox(t,e){if(Ce.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Br(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:t}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Rr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Or=b(yo()),k;function wn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function jr(o){k=o}function Hr(){return $r()?jr(Br()):Or.isNodejs()?jr(Rr()):null}function Dn(o){if(k||Hr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:wn,setEnv:jr,initialize:Hr,createBrowserEnv:Br,createFileSystem:Ue,createNodejsEnv:Rr,monkeyPatch:Dn,isBrowser:$r,isNodejs:Or.isNodejs};Hr();function Ht(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ht(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ne=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Ct=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Ct?t.text:t,this.anchor=e,this.options=new Ne(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(f+1)*s;r.fillText(u,v,_)})}};var Yr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ne({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Yr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Ct([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function En(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${$t(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var fe=b(g());function Ie(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Gr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ie(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function zr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Yt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function ae({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Le(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ie(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Yt(o),a=ae({width:r,height:n});return o instanceof e?$(a).putImageData(o,0,0):$(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Vr(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Ur(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let a=Yt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=ae({width:t,height:t}),p=o instanceof n?o:Le(o),d=Math.abs(i-c)/2,u=e&&i{if(xt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Le(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Lr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Wr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Ur(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof gt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ht);return r.forEach((n,a)=>{if(!qe(n)&&!xt(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&Gr(n))),new gt(r,Array.isArray(o))}async function se(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Vr(i)}let n=$(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=ae({width:c,height:m});return $(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function ie(o,t){if(!xt(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Mn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return zr(e)}async function Xr(o){return(await Gt(o)).json()}async function Cn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var Fo=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Jr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Xr(e);return Fo.io.loadWeights(n,r)}function Nn(o,t,e=!1){let{width:r,height:n}=e?Yt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var It=b(g());var vt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Jr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ce=b(g());function O(o,t,e){return ce.tidy(()=>{let r=ce.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ce.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=O(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function ke(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),a=O(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=O(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=O(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Nt=b(g());function zt(o,t,e="same",r=!1){return Nt.tidy(()=>{let n=Nt.add(Nt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Nt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function me(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Se=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function pe(o,t){return(e,r,n)=>{let a=Se.tensor4d(o(3*3*e),[3,3,e,1]),s=Se.tensor4d(o(e*r),[1,1,e,r]),i=Se.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function de(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Rt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=me(o,t),r=pe(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),f=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:f}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function To(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=de(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Po(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Ae=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return It.tidy(()=>{let r=It.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(It.scalar(255)),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=It.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Po(t)}extractParams(t){return To(t)}};var Do=b(g());var ue=b(g());function We(o,t){return ue.tidy(()=>ue.add(ue.matMul(o,t.weights),t.bias))}function _o(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function wo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Be=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Do.tidy(()=>{let r=t instanceof gt?this.faceFeatureExtractor.forwardInput(t):t;return We(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return _o(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),wo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var qr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Lt=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);qr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return qr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends Be{constructor(t=new Ae){super("FaceExpressionNet",t)}forwardInput(t){return fe.tidy(()=>fe.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(fe.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new Lt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Zr(o){return o.expressions instanceof Lt}function mr(o,t){return{...o,...{expressions:t}}}function In(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof Lt?a:Zr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Ct(c.map(d=>`${d.expression} (${$t(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s}}}var Kr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Qr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Kr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ht(e,this.faceLandmarks.getJawOutline()),ht(e,this.faceLandmarks.getLeftEyeBrow()),ht(e,this.faceLandmarks.getRightEyeBrow()),ht(e,this.faceLandmarks.getNose()),ht(e,this.faceLandmarks.getLeftEye(),!0),ht(e,this.faceLandmarks.getRightEye(),!0),ht(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Ln(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Qr(n).draw(o)})}var Eo="0.12.5";var ut=b(g());var I=b(g());function kn(o,t){let e=me(o,t),r=pe(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Mo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=kn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},f={};ct(t,0,1).forEach(y=>{f[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:f,exit_flow:h}}}function Sn(o,t){let e=j(o,t),r=ar(e),n=de(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Co(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Sn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),f=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:f};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function No(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function eo(o,t,e=!0){let r=e?I.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,No(o,t.expansion_conv,[2,2])),r}function An(o,t){let e=O(I.relu(o),t.separable_conv0,[1,1]);return e=O(I.relu(e),t.separable_conv1,[1,1]),e=O(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var ro=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(No(a,e.entry_flow.conv_in,[2,2]));return s=eo(s,e.entry_flow.reduction_block_0,!1),s=eo(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=An(s,e.middle_flow[`main_block_${i}`])}),s=eo(s,e.exit_flow.reduction_block),s=I.relu(O(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Co(t,this._numMainBlocks)}extractParams(t){return Mo(t,this._numMainBlocks)}};function Io(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Lo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var yt;(function(o){o.FEMALE="female",o.MALE="male"})(yt||(yt={}));var pr=class extends S{constructor(t=new ro(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof gt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=We(n,e.fc.age).as1D(),s=We(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,f=u?yt.MALE:yt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:f,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Io(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Lo(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Re=class extends Be{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:f,height:v}=n[d];return u(f,v)?Math.abs(f-v)/2:0},c=d=>i(d,(u,f)=>ui(d,(u,f)=>fs(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var he=class extends Re{constructor(t=new Ae){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var kt=b(g());function ko(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var oo=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return kt.tidy(()=>{let r=kt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(kt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=kt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return ko(t)}extractParams(t){return So(t)}};var dr=class extends Re{constructor(t=new oo){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ao=class extends he{};var U=b(g());var xe=b(g());var ur=b(g());function Wo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function no(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=xe.conv2d(o,a,e,n);return i=xe.add(i,s),i=Wo(i,t.scale),r?xe.relu(i):i}function Bo(o,t){return no(o,t,[1,1],!0)}function ao(o,t){return no(o,t,[1,1],!1)}function fr(o,t){return no(o,t,[2,2],!0,"valid")}var Y=b(g());function Wn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Ir(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),f=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:f}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Ro(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Wn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),f=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:f,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Bn(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function $o(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Bn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),f=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Nr(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:f,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=Bo(o,t.conv1);return e=ao(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function $e(o,t){let e=fr(o,t.conv1);e=ao(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var be=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=fr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=$e(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=$e(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=$e(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=$e(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return $o(t)}extractParams(t){return Ro(t)}};function Rn(o){let t=new be;return t.extractWeights(o),t}function lr(o,t){return{...o,...{descriptor:t}}}function $n(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function On(o){return(o.gender===yt.MALE||o.gender===yt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function jn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:f,batch_norm_variance:v}}function r(c,m,p,d,u){let f=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:f,bias:v}}function n(c,m,p,d){let{filters:u,bias:f}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:f}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),f=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:f,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),f=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),_t=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Dt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:f,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:_t},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Dt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Oo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=jn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Hn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),f=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:f}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,f=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,f)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function jo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Hn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!xt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var Ft=b(g());var St=b(g());function q(o,t,e){return St.tidy(()=>{let r=St.conv2d(o,t.filters,e,"same");return r=St.add(r,t.batch_norm_offset),St.clipByValue(r,0,6)})}var Yn=.0010000000474974513;function Gn(o,t,e){return Ft.tidy(()=>{let r=Ft.depthwiseConv2d(o,t.filters,e,"same");return r=Ft.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Yn),Ft.clipByValue(r,0,6)})}function zn(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Ho(o,t){return Ft.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=zn(i);r=Gn(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function Vn(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),f=(p-c)*(d-m);if(u<=0||f<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+f-T)}function Yo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let f=Vn(o,p.boxIndex,m[u]);if(f!==0&&(p.score*=c(f),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var l=b(g());function Un(o){let t=l.unstack(l.transpose(o,[1,0])),e=[l.sub(t[2],t[0]),l.sub(t[3],t[1])],r=[l.add(t[0],l.div(e[0],l.scalar(2))),l.add(t[1],l.div(e[1],l.scalar(2)))];return{sizes:e,centers:r}}function Xn(o,t){let{sizes:e,centers:r}=Un(o),n=l.unstack(l.transpose(t,[1,0])),a=l.div(l.mul(l.exp(l.div(n[2],l.scalar(5))),e[0]),l.scalar(2)),s=l.add(l.mul(l.div(n[0],l.scalar(10)),e[0]),r[0]),i=l.div(l.mul(l.exp(l.div(n[3],l.scalar(5))),e[1]),l.scalar(2)),c=l.add(l.mul(l.div(n[1],l.scalar(10)),e[1]),r[1]);return l.transpose(l.stack([l.sub(s,a),l.sub(c,i),l.add(s,a),l.add(c,i)]),[1,0])}function Go(o,t,e){return l.tidy(()=>{let r=o.shape[0],n=Xn(l.reshape(l.tile(e.extra_dim,[r,1,1]),[-1,4]),l.reshape(o,[-1,4]));n=l.reshape(n,[r,n.shape[0]/r,4]);let a=l.sigmoid(l.slice(t,[0,0,1],[-1,-1,-1])),s=l.slice(a,[0,0,0],[-1,-1,1]);s=l.reshape(s,[r,s.shape[1]]);let i=l.unstack(n),c=l.unstack(s);return{boxes:i,scores:c}})}var je=b(g());var Oe=b(g());function Ut(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function zo(o,t,e){return je.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),f=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),_=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=je.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,f.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=je.concat([d.classPrediction,u.classPrediction,f.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=Ho(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=zo(a.out,a.conv11,e.prediction_layer);return Go(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return jo(t)}extractParams(t){return Oo(t)}};function Vo(o){let t=new Xt;return t.extractWeights(o),t}function Jn(o){return Vo(o)}var Uo=class extends Xt{};var Xo=.4,Jo=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],Zo=[117.001,114.697,97.404],Ko="tiny_yolov2_model",Qo="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function so(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function ge(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),ge(e)})}var At=b(g());function Pt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),ge(e)})}var io=b(g());function qn(o,t){let e=me(o,t);function r(s,i){let c=io.tensor1d(o(s)),m=io.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=pe(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function tn(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=qn(n,s),p;if(t.withSeparableConvs){let[d,u,f,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,f,"conv1"),et=m(f,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),_t=m(h,y,"conv5"),wt=T?m(y,T,"conv6"):void 0,Dt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Dt,conv8:te}}else{let[d,u,f,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,f,"conv1"),et=c(f,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),_t=c(h,y,"conv5"),wt=c(y,T,"conv6"),Dt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Dt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function Zn(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=de(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function en(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=Zn(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var ft=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var co=class extends S{constructor(t){super("TinyYolov2");so(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Tt(r,e.conv6),r=Tt(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?ge(zt(t,e.conv0,"valid",!1)):Pt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Pt(r,e.conv6):r,r=e.conv7?Pt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new ft(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),f=m.map(h=>this.config.classes[h.label]);return Ar(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Et(d[h],u[h],f[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return en(t,this.config)}extractParams(t){let e=this.config.filterSizes||co.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return tn(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,f]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+Ee(h[y][T][F][0]))/m*i,et=(y+Ee(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,_t=G-it/2,wt=et-X/2,Dt={row:y,col:T,anchor:F},{classScore:te,label:lo}=this.withClassScores?await this.extractPredictedClass(f,Dt):{classScore:1,label:0};v.push({box:new re(_t,wt,_t+it,wt+X),score:L,classScore:L*te,label:lo,...Dt})}}return d.dispose(),u.dispose(),f.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ve=co;ve.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ye=class extends ve{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Xo,classes:["face"],...t?{anchors:qo,meanRgb:Zo}:{anchors:Jo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?Qo:Ko}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Kn(o,t=!0){let e=new ye(t);return e.extractWeights(o),e}var gr=class extends ft{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var He=b(g());var mo=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof mo.Tensor?await ie(t,a):await se(t,a)),i=await e(s);return s.forEach(c=>c instanceof mo.Tensor&&c.dispose()),i}async function Fe(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var rn=.4,on=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],nn=[117.001,114.697,97.404];var Te=class extends ve{constructor(){let t={withSeparableConvs:!0,iouThreshold:rn,classes:["face"],anchors:on,meanRgb:nn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Xt,tinyFaceDetector:new Te,tinyYolov2:new ye,faceLandmark68Net:new he,faceLandmark68TinyNet:new dr,faceRecognitionNet:new be,faceExpressionNet:new cr,ageGenderNet:new pr},an=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),Qn=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ta=(o,t)=>P.tinyYolov2.locateFaces(o,t),sn=o=>P.faceLandmark68Net.detectLandmarks(o),ea=o=>P.faceLandmark68TinyNet.detectLandmarks(o),ra=o=>P.faceRecognitionNet.computeFaceDescriptor(o),oa=o=>P.faceExpressionNet.predictExpressions(o),na=o=>P.ageGenderNet.predictAgeAndGender(o),cn=o=>P.ssdMobilenetv1.load(o),aa=o=>P.tinyFaceDetector.load(o),sa=o=>P.tinyYolov2.load(o),ia=o=>P.faceLandmark68Net.load(o),ca=o=>P.faceLandmark68TinyNet.load(o),ma=o=>P.faceRecognitionNet.load(o),pa=o=>P.faceExpressionNet.load(o),da=o=>P.ageGenderNet.load(o),ua=cn,fa=an,la=sn;var po=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},we=class extends po{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Pe(this,this.input)}},De=class extends po{async run(){let t=await this.parentTask;if(!t)return;let e=await Fe(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new _e(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new Wt(this,this.input)}},Qt=class extends De{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Bt(this,this.input)}};var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Pe=class extends uo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new we(this,this.input)}},_e=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Fe(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new De(this,this.input)}},qt=class extends Pe{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new Wt(this,this.input)}},Zt=class extends _e{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Bt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},Wt=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>lr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Bt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await Fe(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return lr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof He.Tensor?await ie(this.input,e):await se(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof He.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new Wt(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof He.Tensor?await ie(this.input,[e]):await se(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof He.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Bt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},Ye=class extends Pr{async run(){let{input:t,options:e}=this,r=e instanceof gr?n=>P.tinyFaceDetector.locateFaces(n,e):e instanceof Z?n=>P.ssdMobilenetv1.locateFaces(n,e):e instanceof ft?n=>P.tinyYolov2.locateFaces(n,e):null;if(!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return r(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>jt({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new Ye(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new De(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new _e(this.runAndExtendWithFaceDetection(),this.input)}};function ha(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new Ye(o,t)}async function mn(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function xa(o,t={}){return wr(o,new ft(t)).withFaceLandmarks().withFaceDescriptors()}var ba=mn;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof bt)return s;if(s instanceof Float32Array)return new bt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new bt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>bt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function ga(o){let t=new Te;return t.extractWeights(o),t}function pn(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>pn(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var ya=typeof process!="undefined",Fa=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Ta={faceapi:Eo,node:ya,browser:Fa};export{pr as AgeGenderNet,re as BoundingBox,D as Box,tt as ComposableTask,Wt as ComputeAllFaceDescriptorsTask,vr as ComputeFaceDescriptorsTaskBase,Bt as ComputeSingleFaceDescriptorTask,Fr as DetectAllFaceLandmarksTask,Ye as DetectAllFacesTask,yr as DetectFaceLandmarksTaskBase,Pr as DetectFacesTaskBase,Tr as DetectSingleFaceLandmarksTask,_r as DetectSingleFaceTask,A as Dimensions,qr as FACE_EXPRESSION_LABELS,M as FaceDetection,Uo as FaceDetectionNet,cr as FaceExpressionNet,Lt as FaceExpressions,he as FaceLandmark68Net,dr as FaceLandmark68TinyNet,Ao as FaceLandmarkNet,V as FaceLandmarks,bo as FaceLandmarks5,ne as FaceLandmarks68,Me as FaceMatch,Dr as FaceMatcher,be as FaceRecognitionNet,yt as Gender,Ce as LabeledBox,bt as LabeledFaceDescriptors,gt as NetInput,S as NeuralNetwork,Et as ObjectDetection,x as Point,go as PredictedBox,oe as Rect,Xt as SsdMobilenetv1,Z as SsdMobilenetv1Options,Te as TinyFaceDetector,gr as TinyFaceDetectorOptions,ye as TinyYolov2,ft as TinyYolov2Options,ba as allFaces,mn as allFacesSsdMobilenetv1,xa as allFacesTinyYolov2,Gr as awaitMediaLoaded,zr as bufferToImage,ra as computeFaceDescriptor,ae as createCanvas,Le as createCanvasFromMedia,Jn as createFaceDetectionNet,Rn as createFaceRecognitionNet,Vo as createSsdMobilenetv1,ga as createTinyFaceDetector,Kn as createTinyYolov2,wr as detectAllFaces,sn as detectFaceLandmarks,ea as detectFaceLandmarksTiny,la as detectLandmarks,ha as detectSingleFace,to as draw,w as env,fo as euclideanDistance,hr as extendWithAge,lr as extendWithFaceDescriptor,jt as extendWithFaceDetection,mr as extendWithFaceExpressions,le as extendWithFaceLandmarks,xr as extendWithGender,ie as extractFaceTensors,se as extractFaces,Mn as fetchImage,Xr as fetchJson,Cn as fetchNetWeights,Gt as fetchOrThrow,$ as getContext2dOrThrow,Yt as getMediaDimensions,Vr as imageTensorToCanvas,Ur as imageToSquare,vn as inverseSigmoid,kr as iou,qe as isMediaElement,Ie as isMediaLoaded,$n as isWithAge,pt as isWithFaceDetection,Zr as isWithFaceExpressions,Vt as isWithFaceLandmarks,On as isWithGender,da as loadAgeGenderModel,ua as loadFaceDetectionModel,pa as loadFaceExpressionModel,ia as loadFaceLandmarkModel,ca as loadFaceLandmarkTinyModel,ma as loadFaceRecognitionModel,cn as loadSsdMobilenetv1Model,aa as loadTinyFaceDetectorModel,sa as loadTinyYolov2Model,Jr as loadWeightMap,fa as locateFaces,Nn as matchDimensions,Sr as minBbox,P as nets,Ar as nonMaxSuppression,ot as normalize,Wr as padToSquare,na as predictAgeAndGender,oa as recognizeFaceExpressions,pn as resizeResults,Ht as resolveInput,gn as shuffleArray,Ee as sigmoid,an as ssdMobilenetv1,va as tf,Qn as tinyFaceDetector,ta as tinyYolov2,E as toNetInput,Cr as utils,so as validateConfig,Ta as version}; +var dn=Object.create,Ge=Object.defineProperty,un=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty,ln=Object.getOwnPropertyNames,hn=Object.getOwnPropertyDescriptor;var Er=o=>Ge(o,"__esModule",{value:!0});var ho=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Mr=(o,t)=>{for(var e in t)Ge(o,e,{get:t[e],enumerable:!0})},lt=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ln(t))!fn.call(o,r)&&r!=="default"&&Ge(o,r,{get:()=>t[r],enumerable:!(e=hn(t,r))||e.enumerable});return o},b=o=>o&&o.__esModule?o:lt(Er(Ge(o!=null?dn(un(o)):{},"default",{value:o,enumerable:!0})),o);import*as Ma from"@tensorflow/tfjs/dist/index.js";import*as Ca from"@tensorflow/tfjs-backend-wasm";var g=ho(xn=>{Er(xn);lt(xn,Ma);lt(xn,Ca)});var yo=ho((Pn,vo)=>{Er(Pn);Mr(Pn,{isNodejs:()=>_n});function _n(){return typeof global=="object"&&!0&&typeof vo!="undefined"&&typeof process!="undefined"&&!!process.version}});var va=b(g());var to={};Mr(to,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Yr,DrawFaceLandmarks:()=>Qr,DrawFaceLandmarksOptions:()=>Kr,DrawTextField:()=>Ct,DrawTextFieldOptions:()=>Ne,drawContour:()=>ht,drawDetections:()=>En,drawFaceExpressions:()=>In,drawFaceLandmarks:()=>Ln});function ht(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Cr={};Mr(Cr,{computeReshapedDimensions:()=>Lr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Ir,isTensor:()=>Rt,isTensor1D:()=>bn,isTensor2D:()=>Nr,isTensor3D:()=>xt,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>ee,range:()=>ct,round:()=>$t});var xo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Rt(o,t){return o instanceof xo.Tensor&&o.shape.length===t}function bn(o){return Rt(o,1)}function Nr(o){return Rt(o,2)}function xt(o){return Rt(o,3)}function z(o){return Rt(o,4)}function Ir(o){return o%1!=0}function ze(o){return o%2==0}function $t(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function Lr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function ee(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var re=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Et=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Et(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Et{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function kr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Sr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Mt=b(g());function Wr(o,t=!1){return Mt.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let f=o.shape.slice();return f[s]=u,Mt.fill(f,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Mt.cast(u,"float32"));return Mt.concat(d,s)})}function gn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ee(o){return 1/(1+Math.exp(-o))}function vn(o){return Math.log(o/(1-o))}var oe=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var yn=.5,Fn=.43,Tn=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Tn),c=Ot(t),m=Math.floor(Math.max(0,c.x-yn*i)),p=Math.floor(Math.max(0,c.y-Fn*i));return new oe(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Sr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var bo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var ne=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Me=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${$t(this.distance)})`:""}`}};var Ce=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var bt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new bt(t.label,e)}};var go=class extends Ce{static assertIsValidPredictedBox(t,e){if(Ce.assertIsValidLabeledBox(t,e),!ee(t.score)||!ee(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Br(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:t}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Rr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Or=b(yo()),k;function wn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function jr(o){k=o}function Hr(){return $r()?jr(Br()):Or.isNodejs()?jr(Rr()):null}function Dn(o){if(k||Hr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:wn,setEnv:jr,initialize:Hr,createBrowserEnv:Br,createFileSystem:Ue,createNodejsEnv:Rr,monkeyPatch:Dn,isBrowser:$r,isNodejs:Or.isNodejs};Hr();function Ht(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function $(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ht(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ne=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Ct=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Ct?t.text:t,this.anchor=e,this.options=new Ne(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(f+1)*s;r.fillText(u,v,_)})}};var Yr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ne({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Yr(e)}draw(t){let e=$(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Ct([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function En(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${$t(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var fe=b(g());function Ie(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Gr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ie(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function zr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Yt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function ae({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Le(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ie(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Yt(o),a=ae({width:r,height:n});return o instanceof e?$(a).putImageData(o,0,0):$(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Vr(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Ur(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let a=Yt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=ae({width:t,height:t}),p=o instanceof n?o:Le(o),d=Math.abs(i-c)/2,u=e&&i{if(xt(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Le(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Lr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Wr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Ur(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof gt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ht);return r.forEach((n,a)=>{if(!qe(n)&&!xt(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&Gr(n))),new gt(r,Array.isArray(o))}async function se(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Vr(i)}let n=$(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=ae({width:c,height:m});return $(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function ie(o,t){if(!xt(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Gt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Mn(o){let t=await Gt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return zr(e)}async function Xr(o){return(await Gt(o)).json()}async function Cn(o){return new Float32Array(await(await Gt(o)).arrayBuffer())}var Fo=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function Jr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Xr(e);return Fo.io.loadWeights(n,r)}function Nn(o,t,e=!1){let{width:r,height:n}=e?Yt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var It=b(g());var vt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Jr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ce=b(g());function O(o,t,e){return ce.tidy(()=>{let r=ce.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ce.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):O(o,t.conv0,[2,2])),n=O(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=O(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function ke(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):O(o,t.conv0,r?[2,2]:[1,1])),a=O(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=O(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=O(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Nt=b(g());function zt(o,t,e="same",r=!1){return Nt.tidy(()=>{let n=Nt.add(Nt.conv2d(o,t.filters,[1,1],e),t.bias);return r?Nt.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function me(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Se=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function pe(o,t){return(e,r,n)=>{let a=Se.tensor4d(o(3*3*e),[3,3,e,1]),s=Se.tensor4d(o(e*r),[1,1,e,r]),i=Se.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function de(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Rt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=me(o,t),r=pe(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),f=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:f}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function To(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=de(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Po(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Ae=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return It.tidy(()=>{let r=It.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(It.scalar(255)),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=It.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Po(t)}extractParams(t){return To(t)}};var Do=b(g());var ue=b(g());function We(o,t){return ue.tidy(()=>ue.add(ue.matMul(o,t.weights),t.bias))}function _o(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function wo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Be=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Do.tidy(()=>{let r=t instanceof gt?this.faceFeatureExtractor.forwardInput(t):t;return We(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return _o(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),wo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var qr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Lt=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);qr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return qr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends Be{constructor(t=new Ae){super("FaceExpressionNet",t)}forwardInput(t){return fe.tidy(()=>fe.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(fe.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new Lt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Zr(o){return o.expressions instanceof Lt}function mr(o,t){return{...o,...{expressions:t}}}function In(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof Lt?a:Zr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Ct(c.map(d=>`${d.expression} (${$t(d.probability)})`),m).draw(o)})}function Vt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s}}}var Kr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Qr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Kr(e)}draw(t){let e=$(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof ne&&(e.strokeStyle=s,e.lineWidth=a,ht(e,this.faceLandmarks.getJawOutline()),ht(e,this.faceLandmarks.getLeftEyeBrow()),ht(e,this.faceLandmarks.getRightEyeBrow()),ht(e,this.faceLandmarks.getNose()),ht(e,this.faceLandmarks.getLeftEye(),!0),ht(e,this.faceLandmarks.getRightEye(),!0),ht(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Ln(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:Vt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Qr(n).draw(o)})}var Eo="0.12.6";var ut=b(g());var I=b(g());function kn(o,t){let e=me(o,t),r=pe(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Mo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=kn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},f={};ct(t,0,1).forEach(y=>{f[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:f,exit_flow:h}}}function Sn(o,t){let e=j(o,t),r=ar(e),n=de(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Co(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Sn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),f=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:f};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function No(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function eo(o,t,e=!0){let r=e?I.relu(o):o;return r=O(r,t.separable_conv0,[1,1]),r=O(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,No(o,t.expansion_conv,[2,2])),r}function An(o,t){let e=O(I.relu(o),t.separable_conv0,[1,1]);return e=O(I.relu(e),t.separable_conv1,[1,1]),e=O(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var ro=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(No(a,e.entry_flow.conv_in,[2,2]));return s=eo(s,e.entry_flow.reduction_block_0,!1),s=eo(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=An(s,e.middle_flow[`main_block_${i}`])}),s=eo(s,e.exit_flow.reduction_block),s=I.relu(O(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Co(t,this._numMainBlocks)}extractParams(t){return Mo(t,this._numMainBlocks)}};function Io(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Lo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var yt;(function(o){o.FEMALE="female",o.MALE="male"})(yt||(yt={}));var pr=class extends S{constructor(t=new ro(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof gt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=We(n,e.fc.age).as1D(),s=We(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,f=u?yt.MALE:yt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:f,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Io(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Lo(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Re=class extends Be{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:f,height:v}=n[d];return u(f,v)?Math.abs(f-v)/2:0},c=d=>i(d,(u,f)=>ui(d,(u,f)=>fs(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new ne(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var he=class extends Re{constructor(t=new Ae){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var kt=b(g());function ko(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var oo=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return kt.tidy(()=>{let r=kt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(kt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=kt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return ko(t)}extractParams(t){return So(t)}};var dr=class extends Re{constructor(t=new oo){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ao=class extends he{};var U=b(g());var xe=b(g());var ur=b(g());function Wo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function no(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=xe.conv2d(o,a,e,n);return i=xe.add(i,s),i=Wo(i,t.scale),r?xe.relu(i):i}function Bo(o,t){return no(o,t,[1,1],!0)}function ao(o,t){return no(o,t,[1,1],!1)}function fr(o,t){return no(o,t,[2,2],!0,"valid")}var Y=b(g());function Wn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Ir(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),f=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:f}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Ro(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Wn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),f=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:f,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Bn(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function $o(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Bn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),f=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Nr(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:f,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=Bo(o,t.conv1);return e=ao(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function $e(o,t){let e=fr(o,t.conv1);e=ao(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var be=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=fr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=$e(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=$e(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=$e(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=$e(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return $o(t)}extractParams(t){return Ro(t)}};function Rn(o){let t=new be;return t.extractWeights(o),t}function lr(o,t){return{...o,...{descriptor:t}}}function $n(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function On(o){return(o.gender===yt.MALE||o.gender===yt.FEMALE)&&ee(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function jn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:f,batch_norm_variance:v}}function r(c,m,p,d,u){let f=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:f,bias:v}}function n(c,m,p,d){let{filters:u,bias:f}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:f}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),f=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:f,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),f=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),_t=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),wt=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Dt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:f,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:_t},box_predictor_5:{box_encoding_predictor:wt,class_predictor:Dt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Oo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=jn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Hn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),f=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:f}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,f=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,f)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function jo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Hn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!xt(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var Ft=b(g());var St=b(g());function q(o,t,e){return St.tidy(()=>{let r=St.conv2d(o,t.filters,e,"same");return r=St.add(r,t.batch_norm_offset),St.clipByValue(r,0,6)})}var Yn=.0010000000474974513;function Gn(o,t,e){return Ft.tidy(()=>{let r=Ft.depthwiseConv2d(o,t.filters,e,"same");return r=Ft.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Yn),Ft.clipByValue(r,0,6)})}function zn(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Ho(o,t){return Ft.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=zn(i);r=Gn(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function Vn(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),f=(p-c)*(d-m);if(u<=0||f<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+f-T)}function Yo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let f=Vn(o,p.boxIndex,m[u]);if(f!==0&&(p.score*=c(f),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var l=b(g());function Un(o){let t=l.unstack(l.transpose(o,[1,0])),e=[l.sub(t[2],t[0]),l.sub(t[3],t[1])],r=[l.add(t[0],l.div(e[0],l.scalar(2))),l.add(t[1],l.div(e[1],l.scalar(2)))];return{sizes:e,centers:r}}function Xn(o,t){let{sizes:e,centers:r}=Un(o),n=l.unstack(l.transpose(t,[1,0])),a=l.div(l.mul(l.exp(l.div(n[2],l.scalar(5))),e[0]),l.scalar(2)),s=l.add(l.mul(l.div(n[0],l.scalar(10)),e[0]),r[0]),i=l.div(l.mul(l.exp(l.div(n[3],l.scalar(5))),e[1]),l.scalar(2)),c=l.add(l.mul(l.div(n[1],l.scalar(10)),e[1]),r[1]);return l.transpose(l.stack([l.sub(s,a),l.sub(c,i),l.add(s,a),l.add(c,i)]),[1,0])}function Go(o,t,e){return l.tidy(()=>{let r=o.shape[0],n=Xn(l.reshape(l.tile(e.extra_dim,[r,1,1]),[-1,4]),l.reshape(o,[-1,4]));n=l.reshape(n,[r,n.shape[0]/r,4]);let a=l.sigmoid(l.slice(t,[0,0,1],[-1,-1,-1])),s=l.slice(a,[0,0,0],[-1,-1,1]);s=l.reshape(s,[r,s.shape[1]]);let i=l.unstack(n),c=l.unstack(s);return{boxes:i,scores:c}})}var je=b(g());var Oe=b(g());function Ut(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(zt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(zt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function zo(o,t,e){return je.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Ut(t,e.box_predictor_0),u=Ut(o,e.box_predictor_1),f=Ut(n,e.box_predictor_2),v=Ut(s,e.box_predictor_3),_=Ut(c,e.box_predictor_4),h=Ut(p,e.box_predictor_5),y=je.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,f.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=je.concat([d.classPrediction,u.classPrediction,f.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Xt=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=Ho(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=zo(a.out,a.conv11,e.prediction_layer);return Go(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new oe(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return jo(t)}extractParams(t){return Oo(t)}};function Vo(o){let t=new Xt;return t.extractWeights(o),t}function Jn(o){return Vo(o)}var Uo=class extends Xt{};var Xo=.4,Jo=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],Zo=[117.001,114.697,97.404],Ko="tiny_yolov2_model",Qo="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function so(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function ge(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),ge(e)})}var At=b(g());function Pt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),ge(e)})}var io=b(g());function qn(o,t){let e=me(o,t);function r(s,i){let c=io.tensor1d(o(s)),m=io.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=pe(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function tn(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=qn(n,s),p;if(t.withSeparableConvs){let[d,u,f,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,f,"conv1"),et=m(f,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),_t=m(h,y,"conv5"),wt=T?m(y,T,"conv6"):void 0,Dt=F?m(T,F,"conv7"):void 0,te=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Dt,conv8:te}}else{let[d,u,f,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,f,"conv1"),et=c(f,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),_t=c(h,y,"conv5"),wt=c(y,T,"conv6"),Dt=c(T,F,"conv7"),te=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:_t,conv6:wt,conv7:Dt,conv8:te}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function Zn(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=de(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function en(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=Zn(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var ft=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var co=class extends S{constructor(t){super("TinyYolov2");so(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Tt(r,e.conv6),r=Tt(r,e.conv7),zt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?ge(zt(t,e.conv0,"valid",!1)):Pt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Pt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Pt(r,e.conv6):r,r=e.conv7?Pt(r,e.conv7):r,zt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new ft(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),f=m.map(h=>this.config.classes[h.label]);return Ar(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Et(d[h],u[h],f[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return en(t,this.config)}extractParams(t){let e=this.config.filterSizes||co.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return tn(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,f]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+Ee(h[y][T][F][0]))/m*i,et=(y+Ee(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,_t=G-it/2,wt=et-X/2,Dt={row:y,col:T,anchor:F},{classScore:te,label:lo}=this.withClassScores?await this.extractPredictedClass(f,Dt):{classScore:1,label:0};v.push({box:new re(_t,wt,_t+it,wt+X),score:L,classScore:L*te,label:lo,...Dt})}}return d.dispose(),u.dispose(),f.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ve=co;ve.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ye=class extends ve{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Xo,classes:["face"],...t?{anchors:qo,meanRgb:Zo}:{anchors:Jo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?Qo:Ko}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Kn(o,t=!0){let e=new ye(t);return e.extractWeights(o),e}var gr=class extends ft{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var He=b(g());var mo=b(g());async function Jt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Vt(c)?n(c):c.detection),s=r||(t instanceof mo.Tensor?await ie(t,a):await se(t,a)),i=await e(s);return s.forEach(c=>c instanceof mo.Tensor&&c.dispose()),i}async function Fe(o,t,e,r,n){return Jt([o],t,async a=>e(a[0]),r,n)}var rn=.4,on=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],nn=[117.001,114.697,97.404];var Te=class extends ve{constructor(){let t={withSeparableConvs:!0,iouThreshold:rn,classes:["face"],anchors:on,meanRgb:nn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Xt,tinyFaceDetector:new Te,tinyYolov2:new ye,faceLandmark68Net:new he,faceLandmark68TinyNet:new dr,faceRecognitionNet:new be,faceExpressionNet:new cr,ageGenderNet:new pr},an=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),Qn=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ta=(o,t)=>P.tinyYolov2.locateFaces(o,t),sn=o=>P.faceLandmark68Net.detectLandmarks(o),ea=o=>P.faceLandmark68TinyNet.detectLandmarks(o),ra=o=>P.faceRecognitionNet.computeFaceDescriptor(o),oa=o=>P.faceExpressionNet.predictExpressions(o),na=o=>P.ageGenderNet.predictAgeAndGender(o),cn=o=>P.ssdMobilenetv1.load(o),aa=o=>P.tinyFaceDetector.load(o),sa=o=>P.tinyYolov2.load(o),ia=o=>P.faceLandmark68Net.load(o),ca=o=>P.faceLandmark68TinyNet.load(o),ma=o=>P.faceRecognitionNet.load(o),pa=o=>P.faceExpressionNet.load(o),da=o=>P.ageGenderNet.load(o),ua=cn,fa=an,la=sn;var po=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},we=class extends po{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Pe(this,this.input)}},De=class extends po{async run(){let t=await this.parentTask;if(!t)return;let e=await Fe(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new _e(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new Wt(this,this.input)}},Qt=class extends De{withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Bt(this,this.input)}};var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Pe=class extends uo{async run(){let t=await this.parentTask,e=await Jt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new we(this,this.input)}},_e=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Fe(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new De(this,this.input)}},qt=class extends Pe{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptors(){return new Wt(this,this.input)}},Zt=class extends _e{withFaceExpressions(){return new Qt(this,this.input)}withFaceDescriptor(){return new Bt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},Wt=class extends vr{async run(){let t=await this.parentTask;return(await Jt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>lr(t[n],r))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}},Bt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await Fe(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return lr(t,e)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof He.Tensor?await ie(this.input,e):await se(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof He.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptors(){return new Wt(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof He.Tensor?await ie(this.input,[e]):await se(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof He.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Qt(this,this.input)}withAgeAndGender(){return new Zt(this,this.input)}withFaceDescriptor(){return new Bt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},Ye=class extends Pr{async run(){let{input:t,options:e}=this,r=e instanceof gr?n=>P.tinyFaceDetector.locateFaces(n,e):e instanceof Z?n=>P.ssdMobilenetv1.locateFaces(n,e):e instanceof ft?n=>P.tinyYolov2.locateFaces(n,e):null;if(!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return r(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>jt({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new Ye(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new De(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new _e(this.runAndExtendWithFaceDetection(),this.input)}};function ha(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new Ye(o,t)}async function mn(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function xa(o,t={}){return wr(o,new ft(t)).withFaceLandmarks().withFaceDescriptors()}var ba=mn;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof bt)return s;if(s instanceof Float32Array)return new bt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new bt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Me(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>bt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function ga(o){let t=new Te;return t.extractWeights(o),t}function pn(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>pn(n,{width:e,height:r}));if(Vt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var ya=typeof process!="undefined",Fa=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Ta={faceapi:Eo,node:ya,browser:Fa};export{pr as AgeGenderNet,re as BoundingBox,D as Box,tt as ComposableTask,Wt as ComputeAllFaceDescriptorsTask,vr as ComputeFaceDescriptorsTaskBase,Bt as ComputeSingleFaceDescriptorTask,Fr as DetectAllFaceLandmarksTask,Ye as DetectAllFacesTask,yr as DetectFaceLandmarksTaskBase,Pr as DetectFacesTaskBase,Tr as DetectSingleFaceLandmarksTask,_r as DetectSingleFaceTask,A as Dimensions,qr as FACE_EXPRESSION_LABELS,M as FaceDetection,Uo as FaceDetectionNet,cr as FaceExpressionNet,Lt as FaceExpressions,he as FaceLandmark68Net,dr as FaceLandmark68TinyNet,Ao as FaceLandmarkNet,V as FaceLandmarks,bo as FaceLandmarks5,ne as FaceLandmarks68,Me as FaceMatch,Dr as FaceMatcher,be as FaceRecognitionNet,yt as Gender,Ce as LabeledBox,bt as LabeledFaceDescriptors,gt as NetInput,S as NeuralNetwork,Et as ObjectDetection,x as Point,go as PredictedBox,oe as Rect,Xt as SsdMobilenetv1,Z as SsdMobilenetv1Options,Te as TinyFaceDetector,gr as TinyFaceDetectorOptions,ye as TinyYolov2,ft as TinyYolov2Options,ba as allFaces,mn as allFacesSsdMobilenetv1,xa as allFacesTinyYolov2,Gr as awaitMediaLoaded,zr as bufferToImage,ra as computeFaceDescriptor,ae as createCanvas,Le as createCanvasFromMedia,Jn as createFaceDetectionNet,Rn as createFaceRecognitionNet,Vo as createSsdMobilenetv1,ga as createTinyFaceDetector,Kn as createTinyYolov2,wr as detectAllFaces,sn as detectFaceLandmarks,ea as detectFaceLandmarksTiny,la as detectLandmarks,ha as detectSingleFace,to as draw,w as env,fo as euclideanDistance,hr as extendWithAge,lr as extendWithFaceDescriptor,jt as extendWithFaceDetection,mr as extendWithFaceExpressions,le as extendWithFaceLandmarks,xr as extendWithGender,ie as extractFaceTensors,se as extractFaces,Mn as fetchImage,Xr as fetchJson,Cn as fetchNetWeights,Gt as fetchOrThrow,$ as getContext2dOrThrow,Yt as getMediaDimensions,Vr as imageTensorToCanvas,Ur as imageToSquare,vn as inverseSigmoid,kr as iou,qe as isMediaElement,Ie as isMediaLoaded,$n as isWithAge,pt as isWithFaceDetection,Zr as isWithFaceExpressions,Vt as isWithFaceLandmarks,On as isWithGender,da as loadAgeGenderModel,ua as loadFaceDetectionModel,pa as loadFaceExpressionModel,ia as loadFaceLandmarkModel,ca as loadFaceLandmarkTinyModel,ma as loadFaceRecognitionModel,cn as loadSsdMobilenetv1Model,aa as loadTinyFaceDetectorModel,sa as loadTinyYolov2Model,Jr as loadWeightMap,fa as locateFaces,Nn as matchDimensions,Sr as minBbox,P as nets,Ar as nonMaxSuppression,ot as normalize,Wr as padToSquare,na as predictAgeAndGender,oa as recognizeFaceExpressions,pn as resizeResults,Ht as resolveInput,gn as shuffleArray,Ee as sigmoid,an as ssdMobilenetv1,va as tf,Qn as tinyFaceDetector,ta as tinyYolov2,E as toNetInput,Cr as utils,so as validateConfig,Ta as version}; //# sourceMappingURL=face-api.esm-nobundle.js.map diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 518417c..5f0d770 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -5,43 +5,43 @@ author: ' */ -var G_=Object.create,ud=Object.defineProperty,H_=Object.getPrototypeOf,j_=Object.prototype.hasOwnProperty,q_=Object.getOwnPropertyNames,K_=Object.getOwnPropertyDescriptor;var Vw=e=>ud(e,"__esModule",{value:!0});var X_=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),cd=(e,t)=>{for(var n in t)ud(e,n,{get:t[n],enumerable:!0})},Y_=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of q_(t))!j_.call(e,a)&&a!=="default"&&ud(e,a,{get:()=>t[a],enumerable:!(n=K_(t,a))||n.enumerable});return e},Z_=e=>e&&e.__esModule?e:Y_(Vw(ud(e!=null?G_(H_(e)):{},"default",{value:e,enumerable:!0})),e);var V2=X_((ure,W2)=>{Vw(ure);cd(ure,{isNodejs:()=>cre});function cre(){return typeof global=="object"&&!0&&typeof W2!="undefined"&&typeof process!="undefined"&&!!process.version}});var Bg={};cd(Bg,{Abs:()=>So,Acos:()=>Co,Acosh:()=>_o,AdadeltaOptimizer:()=>Lh,AdagradOptimizer:()=>zh,AdamOptimizer:()=>Bh,AdamaxOptimizer:()=>Wh,Add:()=>Lr,AddN:()=>Ss,All:()=>yd,Any:()=>bd,ArgMax:()=>Cs,ArgMin:()=>lc,Asin:()=>Eo,Asinh:()=>Ao,Atan:()=>Fo,Atan2:()=>Do,Atanh:()=>$o,AvgPool:()=>_s,AvgPool3D:()=>uc,AvgPool3DGrad:()=>vd,AvgPoolGrad:()=>xd,BackendWasm:()=>O2,BatchMatMul:()=>Es,BatchToSpaceND:()=>cc,Bincount:()=>wd,BroadcastTo:()=>a0,Callback:()=>OI,CallbackList:()=>Mk,Cast:()=>As,Ceil:()=>Ro,ClipByValue:()=>zr,Complex:()=>kd,ComplexAbs:()=>pc,Concat:()=>Mo,Conv2D:()=>Fs,Conv2DBackpropFilter:()=>Id,Conv2DBackpropInput:()=>$s,Conv3D:()=>dc,Conv3DBackpropFilterV2:()=>Nd,Conv3DBackpropInputV2:()=>Td,Cos:()=>Ds,Cosh:()=>Po,CropAndResize:()=>Oo,Cumsum:()=>Rs,CustomCallback:()=>Ok,DataStorage:()=>hd,DenseBincount:()=>Sd,DepthToSpace:()=>Lo,DepthwiseConv2dNative:()=>Ms,DepthwiseConv2dNativeBackpropFilter:()=>Cd,DepthwiseConv2dNativeBackpropInput:()=>_d,Diag:()=>Ed,Dilation2D:()=>hc,Dilation2DBackpropFilter:()=>Fd,Dilation2DBackpropInput:()=>Ad,ENV:()=>Gg,EarlyStopping:()=>zI,Elu:()=>zo,EluGrad:()=>$d,Environment:()=>t0,Equal:()=>Wo,Erf:()=>Bo,Exp:()=>Os,ExpandDims:()=>Vo,Expm1:()=>Uo,FFT:()=>Dd,Fill:()=>mc,FlipLeftRight:()=>Go,Floor:()=>Ls,FloorDiv:()=>zs,FromPixels:()=>qd,FusedBatchNorm:()=>Bs,FusedConv2D:()=>yi,FusedDepthwiseConv2D:()=>bi,GatherNd:()=>jo,GatherV2:()=>Ho,GraphModel:()=>mN,Greater:()=>qo,GreaterEqual:()=>Ws,History:()=>Pk,IFFT:()=>Rd,Identity:()=>Ko,Imag:()=>Md,InputSpec:()=>Xt,IsFinite:()=>Xo,IsInf:()=>Yo,IsNan:()=>Zo,KernelBackend:()=>sc,LRN:()=>yc,LRNGrad:()=>Od,LayerVariable:()=>Ak,LayersModel:()=>wr,LeakyRelu:()=>Vs,Less:()=>Jo,LessEqual:()=>Qo,LinSpace:()=>Pd,Log:()=>Us,Log1p:()=>el,LogSoftmax:()=>r0,LogicalAnd:()=>tl,LogicalNot:()=>fc,LogicalOr:()=>gc,Max:()=>Gs,MaxPool:()=>js,MaxPool3D:()=>bc,MaxPool3DGrad:()=>zd,MaxPoolGrad:()=>Ld,MaxPoolWithArgmax:()=>Bd,Maximum:()=>Hs,Mean:()=>qs,Min:()=>Ks,Minimum:()=>Xs,MirrorPad:()=>xc,Mod:()=>nl,MomentumOptimizer:()=>Vh,Multinomial:()=>Wd,Multiply:()=>Ys,Neg:()=>al,NonMaxSuppressionV3:()=>sl,NonMaxSuppressionV4:()=>il,NonMaxSuppressionV5:()=>ol,NotEqual:()=>rl,OP_SCOPE_SUFFIX:()=>f0,OneHot:()=>Zs,OnesLike:()=>ll,Optimizer:()=>br,Pack:()=>ul,PadV2:()=>Js,Pool:()=>WE,Pow:()=>Qs,Prelu:()=>ei,Prod:()=>cl,RMSPropOptimizer:()=>Uh,RNN:()=>tr,Range:()=>vc,Rank:()=>Jg,Real:()=>Vd,RealDiv:()=>Ps,Reciprocal:()=>pl,Reduction:()=>dn,Relu:()=>ti,Relu6:()=>ai,Reshape:()=>dl,ResizeBilinear:()=>ni,ResizeBilinearGrad:()=>Gd,ResizeNearestNeighbor:()=>wc,ResizeNearestNeighborGrad:()=>Ud,Reverse:()=>ri,RotateWithOffset:()=>Sl,Round:()=>si,Rsqrt:()=>ii,SGDOptimizer:()=>Kc,ScatterNd:()=>hl,Select:()=>ml,Selu:()=>fl,Sequential:()=>Zl,Sigmoid:()=>li,Sign:()=>bl,Sin:()=>oi,Sinh:()=>yl,Slice:()=>gl,Softmax:()=>pi,Softplus:()=>xl,SpaceToBatchND:()=>kc,SparseToDense:()=>Hd,SplitV:()=>vl,Sqrt:()=>ui,Square:()=>Ic,SquaredDifference:()=>di,Step:()=>Wr,StridedSlice:()=>wl,Sub:()=>hi,Sum:()=>ci,SymbolicTensor:()=>Aa,Tan:()=>kl,Tanh:()=>mi,Tensor:()=>Ae,TensorBuffer:()=>Ot,Tile:()=>Br,TopK:()=>Il,Transpose:()=>fi,Unique:()=>jd,Unpack:()=>Nl,UnsortedSegmentSum:()=>Nc,Variable:()=>Vr,ZerosLike:()=>Tl,_FusedMatMul:()=>gi,abs:()=>Lt,acos:()=>Iy,acosh:()=>Ny,add:()=>Z,addN:()=>Z0,all:()=>lh,any:()=>Rc,argMax:()=>Mc,argMin:()=>Ty,asin:()=>Sy,asinh:()=>Cy,atan:()=>_y,atan2:()=>Ey,atanh:()=>Ay,avgPool:()=>Xn,avgPool3d:()=>Dy,backend:()=>Y0,backend_util:()=>_,basicLSTMCell:()=>g$,batchNorm:()=>fr,batchNorm2d:()=>t1,batchNorm3d:()=>n1,batchNorm4d:()=>a1,batchToSpaceND:()=>Oc,bincount:()=>r1,booleanMaskAsync:()=>vM,broadcastTo:()=>Lc,browser:()=>ki,buffer:()=>Le,callbacks:()=>l4,cast:()=>ce,ceil:()=>Ry,clipByValue:()=>qt,clone:()=>jr,complex:()=>Ur,concat:()=>Qe,concat1d:()=>s1,concat2d:()=>i1,concat3d:()=>o1,concat4d:()=>l1,constraints:()=>ak,conv1d:()=>ch,conv2d:()=>At,conv2dTranspose:()=>ph,conv3d:()=>Py,conv3dTranspose:()=>L$,copyRegisteredKernels:()=>GE,cos:()=>zc,cosh:()=>dh,cosineWindow:()=>lb,cumsum:()=>hh,customGrad:()=>qa,data:()=>gN,denseBincount:()=>c1,deprecationWarn:()=>ky,depthToSpace:()=>Oy,depthwiseConv2d:()=>Yr,deregisterOp:()=>c4,device_util:()=>eh,diag:()=>j$,dilation2d:()=>Ly,disableDeprecationWarnings:()=>_F,dispose:()=>Fe,disposeVariables:()=>EF,div:()=>ve,divNoNan:()=>zy,dot:()=>p1,dropout:()=>$1,elu:()=>Pl,enableDebugMode:()=>CF,enableProdMode:()=>SF,enclosingPowerOfTwo:()=>D1,engine:()=>Kr,env:()=>ee,equal:()=>Zr,erf:()=>By,exp:()=>pn,expandDims:()=>Fn,expm1:()=>Wy,eye:()=>Vy,fft:()=>jc,fill:()=>wn,findBackend:()=>PF,findBackendFactory:()=>OF,floor:()=>Ol,floorDiv:()=>oh,fused:()=>es,gather:()=>Ti,gatherND:()=>F1,gather_util:()=>fy,getBackend:()=>RF,getGradient:()=>Kg,getKernel:()=>Kd,getKernelsForBackend:()=>Xd,grad:()=>wD,grads:()=>kD,greater:()=>ca,greaterEqual:()=>Jr,ifft:()=>Ul,imag:()=>mh,image:()=>Ya,inTopKAsync:()=>FM,initializers:()=>ck,input:()=>Ik,io:()=>Ht,irfft:()=>Eh,isFinite:()=>d1,isInf:()=>h1,isNaN:()=>m1,keep:()=>jt,kernel_impls:()=>Za,layers:()=>kk,leakyRelu:()=>Bc,less:()=>fh,lessEqual:()=>Si,linalg:()=>H1,linspace:()=>f1,loadGraphModel:()=>cV,loadLayersModel:()=>_W,localResponseNormalization:()=>Uy,log:()=>$n,log1p:()=>gh,logSigmoid:()=>y1,logSoftmax:()=>bh,logSumExp:()=>jy,logicalAnd:()=>pa,logicalNot:()=>Wc,logicalOr:()=>xh,logicalXor:()=>w1,losses:()=>jP,matMul:()=>ze,math:()=>F0,max:()=>Yn,maxPool:()=>Ft,maxPool3d:()=>qy,maxPoolWithArgmax:()=>k1,maximum:()=>Ka,mean:()=>St,memory:()=>sh,metrics:()=>RI,min:()=>zl,minimum:()=>Bl,mirrorPad:()=>Ky,mod:()=>Xy,model:()=>SW,models:()=>MI,moments:()=>vh,movingAverage:()=>IM,mul:()=>L,multiRNNCell:()=>ZD,multinomial:()=>I1,neg:()=>Tt,nextFrame:()=>Gh,norm:()=>Dh,notEqual:()=>_i,oneHot:()=>$l,ones:()=>Xa,onesLike:()=>Dn,op:()=>P,outerProduct:()=>nR,pad:()=>Zn,pad1d:()=>sR,pad2d:()=>oR,pad3d:()=>uR,pad4d:()=>pR,pool:()=>N1,pow:()=>gr,prelu:()=>Uc,print:()=>T0,prod:()=>wh,profile:()=>AF,rand:()=>vR,randomGamma:()=>NR,randomNormal:()=>T1,randomUniform:()=>Wl,range:()=>kh,ready:()=>DF,real:()=>Gc,reciprocal:()=>Jy,registerBackend:()=>ih,registerCallbackConstructor:()=>EW,registerGradient:()=>s0,registerKernel:()=>Sc,registerOp:()=>u4,regularizers:()=>PI,relu:()=>Ye,relu6:()=>Ih,removeBackend:()=>MF,reshape:()=>j,reverse:()=>Rn,reverse1d:()=>DR,reverse2d:()=>MR,reverse3d:()=>OR,reverse4d:()=>zR,rfft:()=>qc,round:()=>Qy,rsqrt:()=>Nh,scalar:()=>de,scatterND:()=>A1,scatter_util:()=>gy,selu:()=>Th,separableConv2d:()=>Ei,sequential:()=>CW,serialization:()=>re,setBackend:()=>$F,setPlatform:()=>LF,setWasmPath:()=>Qae,setWasmPaths:()=>ere,setdiff1dAsync:()=>S1,sigmoid:()=>ua,sign:()=>eb,signal:()=>HP,sin:()=>Sh,sinh:()=>Ch,slice:()=>We,slice1d:()=>_h,slice2d:()=>tb,slice3d:()=>Vl,slice4d:()=>Hc,slice_util:()=>cn,softmax:()=>Na,softplus:()=>Ll,spaceToBatchND:()=>Vc,sparseToDense:()=>ob,spectral:()=>GP,split:()=>Mn,sqrt:()=>en,square:()=>lt,squaredDifference:()=>Ah,squeeze:()=>Qr,stack:()=>$t,step:()=>Gl,stridedSlice:()=>nb,sub:()=>fe,sum:()=>Te,sumOutType:()=>Qd,tan:()=>ab,tanh:()=>Ml,tensor:()=>qn,tensor1d:()=>tt,tensor2d:()=>Ta,tensor3d:()=>ah,tensor4d:()=>Sa,tensor5d:()=>pM,tensor6d:()=>dM,tensor_util:()=>Ia,test_util:()=>j0,tidy:()=>D,tile:()=>ja,time:()=>FF,topk:()=>rb,train:()=>Fi,transpose:()=>Ue,truncatedNormal:()=>Fh,unique:()=>$h,unregisterGradient:()=>UE,unregisterKernel:()=>VE,unsortedSegmentSum:()=>sb,unstack:()=>dt,upcastType:()=>la,util:()=>k,valueAndGrad:()=>ID,valueAndGrads:()=>ND,variable:()=>C1,variableGrads:()=>g1,version:()=>lee,version_converter:()=>fN,version_core:()=>X0,version_layers:()=>mm,version_wasm:()=>tre,where:()=>vn,whereAsync:()=>ib,zeros:()=>vt,zerosLike:()=>Ge});var J_=Object.create,pd=Object.defineProperty,Q_=Object.getPrototypeOf,eE=Object.prototype.hasOwnProperty,tE=Object.getOwnPropertyNames,nE=Object.getOwnPropertyDescriptor,aE=e=>pd(e,"__esModule",{value:!0}),un=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)pd(e,n,{get:t[n],enumerable:!0})},rE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of tE(t))!eE.call(e,a)&&a!=="default"&&pd(e,a,{get:()=>t[a],enumerable:!(n=nE(t,a))||n.enumerable});return e},Io=e=>e&&e.__esModule?e:rE(aE(pd(e!=null?J_(Q_(e)):{},"default",{value:e,enumerable:!0})),e),sE=un(()=>{}),iE=un((e,t)=>{(function(n,a,r){function s(c){var u=this,p=l();u.next=function(){var d=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=d-(u.c=d|0)},u.c=1,u.s0=p(" "),u.s1=p(" "),u.s2=p(" "),u.s0-=p(c),u.s0<0&&(u.s0+=1),u.s1-=p(c),u.s1<0&&(u.s1+=1),u.s2-=p(c),u.s2<0&&(u.s2+=1),p=null}function i(c,u){return u.c=c.c,u.s0=c.s0,u.s1=c.s1,u.s2=c.s2,u}function o(c,u){var p=new s(c),d=u&&u.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var c=4022871197,u=function(p){p=p.toString();for(var d=0;d>>0,h-=c,h*=c,c=h>>>0,h-=c,c+=h*4294967296}return(c>>>0)*23283064365386963e-26};return u}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),oE=un((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var d=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^d^d>>>8},l===(l|0)?c.x=l:u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),lE=un((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(d^d<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,l===(l|0)?c.x=l:u+=l;for(var p=0;p>>4),c.next()}function i(l,c){return c.x=l.x,c.y=l.y,c.z=l.z,c.w=l.w,c.v=l.v,c.d=l.d,c}function o(l,c){var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),uE=un((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.x,d=c.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,c.i=d+1&7,m};function u(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}u(c,l)}function i(l,c){return c.x=l.x.slice(),c.i=l.i,c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.x&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),cE=un((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.w,d=c.X,h=c.i,m,f;return c.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,c.i=h,f+(p^p>>>16)|0};function u(p,d){var h,m,f,g,y,b=[],v=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,v=Math.max(v,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}u(c,l)}function i(l,c){return c.i=l.i,c.w=l.w,c.X=l.X.slice(),c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.X&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),pE=un((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.b,h=c.c,m=c.d,f=c.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,c.b=d=d<<20^d>>>12^h,c.c=h=h-m|0,c.d=m<<16^h>>>16^f,c.a=f-d|0},c.a=0,c.b=0,c.c=2654435769|0,c.d=1367130551,l===Math.floor(l)?(c.a=l/4294967296|0,c.b=l|0):u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),dE=un(()=>{}),hE=un((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",c=a.pow(s,i),u=a.pow(2,o),p=u*2,d=s-1,h;function m(N,T,C){var $=[];T=T==!0?{entropy:!0}:T||{};var F=b(y(T.entropy?[N,x(n)]:N==null?v():N,3),$),O=new f($),B=function(){for(var W=O.g(i),G=c,q=0;W=p;)W/=2,G/=2,q>>>=1;return(W+q)/G};return B.int32=function(){return O.g(4)|0},B.quick=function(){return O.g(4)/4294967296},B.double=B,b(x(O.S),n),(T.pass||C||function(W,G,q,H){return H&&(H.S&&g(H,O),W.state=function(){return g(O,{})}),q?(a[l]=W,G):W})(B,F,"global"in T?T.global:this==a,T.state)}a["seed"+l]=m;function f(N){var T,C=N.length,$=this,F=0,O=$.i=$.j=0,B=$.S=[];for(C||(N=[C++]);F{var n=iE(),a=oE(),r=lE(),s=uE(),i=cE(),o=pE(),l=hE();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),mE=un(()=>{}),rc=un(()=>{}),fE=un(()=>{}),gE=un(()=>{}),yE=un((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return Q.buffer!=Je&&An(Q.buffer),_n}function i(){return Q.buffer!=Je&&An(Q.buffer),Qt}function o(){return Q.buffer!=Je&&An(Q.buffer),xn}function l(){return Q.buffer!=Je&&An(Q.buffer),ln}function c(){return Q.buffer!=Je&&An(Q.buffer),za}var u=typeof r!="undefined"?r:{},p={},d;for(d in u)u.hasOwnProperty(d)&&(p[d]=u[d]);var h=[],m="./this.program",f=function(w,S){throw S},g=!1,y=!1,b=!1,v=!1;g=typeof window=="object",y=typeof importScripts=="function",b=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v=!g&&!b&&!y;var x=u.ENVIRONMENT_IS_PTHREAD||!1;x&&(Je=u.buffer,ra=u.DYNAMIC_BASE,ka=u.DYNAMICTOP_PTR);var N="";function T(w){return u.locateFile?u.locateFile(w,N):N+w}var C,$,F,O,B,W;if(b){y?N=rc().dirname(N)+"/":N=__dirname+"/",C=function(w,S){return B||(B=require("fs")),W||(W=rc()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},F=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S},process.argv.length>1&&(m=process.argv[1].replace(/\\/g,"/")),h=process.argv.slice(2),process.on("uncaughtException",function(w){if(!(w instanceof Bw))throw w}),process.on("unhandledRejection",cr),f=function(w){process.exit(w)},u.inspect=function(){return"[Emscripten Module object]"};var G;try{G=fE()}catch(w){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),w}Worker=G.Worker}else v?(typeof read!="undefined"&&(C=function(w){return read(w)}),F=function(w){var S;return typeof readbuffer=="function"?new Uint8Array(readbuffer(w)):(S=read(w,"binary"),ke(typeof S=="object"),S)},typeof scriptArgs!="undefined"?h=scriptArgs:typeof arguments!="undefined"&&(h=arguments),typeof quit=="function"&&(f=function(w){quit(w)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(g||y)&&(y?N=self.location.href:document.currentScript&&(N=document.currentScript.src),typeof a!="undefined"&&a&&(N=a),N.indexOf("blob:")!==0?N=N.substr(0,N.lastIndexOf("/")+1):N="",b?(C=function(w,S){return B||(B=require("fs")),W||(W=rc()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},F=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S}):(C=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.send(null),S.responseText},y&&(F=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.responseType="arraybuffer",S.send(null),new Uint8Array(S.response)}),$=function(w,S,R){var U=new XMLHttpRequest;U.open("GET",w,!0),U.responseType="arraybuffer",U.onload=function(){if(U.status==200||U.status==0&&U.response){S(U.response);return}R()},U.onerror=R,U.send(null)}),O=function(w){document.title=w});b&&typeof performance=="undefined"&&(performance=gE().performance);var q=u.print||console.log.bind(console),H=u.printErr||console.warn.bind(console);for(d in p)p.hasOwnProperty(d)&&(u[d]=p[d]);p=null,u.arguments&&(h=u.arguments),u.thisProgram&&(m=u.thisProgram),u.quit&&(f=u.quit);var K=Atomics.load,X=Atomics.store,ne=Atomics.compareExchange,J;u.wasmBinary&&(J=u.wasmBinary);var se;u.noExitRuntime&&(se=u.noExitRuntime),typeof WebAssembly!="object"&&H("no native wasm support detected");var Q,oe=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),ae,pe=0,ue=0,ge=!1,ye=0;function ke(w,S){w||cr("Assertion failed: "+S)}function Se(w){var S=u["_"+w];return ke(S,"Cannot call unknown function "+w+", make sure it is exported"),S}function Ce(w,S,R,U,he){var le={string:function(jn){var Mr=0;if(jn!=null&&jn!==0){var ac=(jn.length<<2)+1;Mr=xo(ac),ot(jn,Mr,ac)}return Mr},array:function(jn){var Mr=xo(jn.length);return ct(jn,Mr),Mr}};function ie(jn){return S==="string"?Ve(jn):S==="boolean"?Boolean(jn):jn}var xe=Se(w),et=[],Mt=0;if(U)for(var rn=0;rn=U);){var le=w[S++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var ie=w[S++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|ie);continue}var xe=w[S++]&63;if((le&240)==224?le=(le&15)<<12|ie<<6|xe:le=(le&7)<<18|ie<<12|xe<<6|w[S++]&63,le<65536)he+=String.fromCharCode(le);else{var et=le-65536;he+=String.fromCharCode(55296|et>>10,56320|et&1023)}}return he}function Ve(w,S){return w?Ke(i(),w,S):""}function rt(w,S,R,U){if(!(U>0))return 0;for(var he=R,le=R+U-1,ie=0;ie=55296&&xe<=57343){var et=w.charCodeAt(++ie);xe=65536+((xe&1023)<<10)|et&1023}if(xe<=127){if(R>=le)break;S[R++]=xe}else if(xe<=2047){if(R+1>=le)break;S[R++]=192|xe>>6,S[R++]=128|xe&63}else if(xe<=65535){if(R+2>=le)break;S[R++]=224|xe>>12,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}else{if(R+3>=le)break;S[R++]=240|xe>>18,S[R++]=128|xe>>12&63,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}}return S[R]=0,R-he}function ot(w,S,R){return rt(w,i(),S,R)}function He(w){for(var S=0,R=0;R=55296&&U<=57343&&(U=65536+((U&1023)<<10)|w.charCodeAt(++R)&1023),U<=127?++S:U<=2047?S+=2:U<=65535?S+=3:S+=4}return S}function ct(w,S){s().set(w,S)}var pt=65536;function Gn(w,S){return w%S>0&&(w+=S-w%S),w}var Je,_n,Qt,En,na,xn,ln,aa,za;function An(w){Je=w,u.HEAP8=_n=new Int8Array(w),u.HEAP16=En=new Int16Array(w),u.HEAP32=xn=new Int32Array(w),u.HEAPU8=Qt=new Uint8Array(w),u.HEAPU16=na=new Uint16Array(w),u.HEAPU32=ln=new Uint32Array(w),u.HEAPF32=aa=new Float32Array(w),u.HEAPF64=za=new Float64Array(w)}var uo=5256480,zu=uo,wa=13600,ra=5256480,ka=12672,co=u.INITIAL_MEMORY||16777216;if(x)Q=u.wasmMemory,Je=u.buffer;else if(u.wasmMemory)Q=u.wasmMemory;else if(Q=new WebAssembly.Memory({initial:co/pt,maximum:2147483648/pt,shared:!0}),!(Q.buffer instanceof SharedArrayBuffer))throw H("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),b&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Q&&(Je=Q.buffer),co=Je.byteLength,An(Je),x||(o()[ka>>2]=ra);function po(w){for(;w.length>0;){var S=w.shift();if(typeof S=="function"){S(u);continue}var R=S.func;typeof R=="number"?S.arg===void 0?u.dynCall_v(R):u.dynCall_vi(R,S.arg):R(S.arg===void 0?null:S.arg)}}var ys=[],Bu=[],Ff=[],Wu=[],Vp=[],Vu=!1;x&&(Vu=!0);function sa(){if(!x){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)Rf(u.preRun.shift());po(ys)}}function Up(){Vu=!0,po(Bu)}function $f(){x||po(Ff)}function Df(){if(!x){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)bs(u.postRun.shift());po(Vp)}}function Rf(w){ys.unshift(w)}function bs(w){Vp.unshift(w)}var ho=Math.ceil,Mf=Math.floor,ur=0,Uu=null,xs=null;function Pf(w){ke(!x,"addRunDependency cannot be used in a pthread worker"),ur++,u.monitorRunDependencies&&u.monitorRunDependencies(ur)}function Of(w){if(ur--,u.monitorRunDependencies&&u.monitorRunDependencies(ur),ur==0&&(Uu!==null&&(clearInterval(Uu),Uu=null),xs)){var S=xs;xs=null,S()}}u.preloadedImages={},u.preloadedAudios={};function cr(w){throw u.onAbort&&u.onAbort(w),x&&console.error("Pthread aborting at "+new Error().stack),w+="",q(w),H(w),ge=!0,ye=1,w="abort("+w+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(w)}function Gu(w,S){return String.prototype.startsWith?w.startsWith(S):w.indexOf(S)===0}var Lf="data:application/octet-stream;base64,";function Gp(w){return Gu(w,Lf)}var zf="file://";function Hp(w){return Gu(w,zf)}var ia="tfjs-backend-wasm-threaded-simd.wasm";Gp(ia)||(ia=T(ia));function jp(){try{if(J)return new Uint8Array(J);if(F)return F(ia);throw"both async and sync fetching of the wasm failed"}catch(w){cr(w)}}function Bf(){return!J&&(g||y)&&typeof fetch=="function"&&!Hp(ia)?fetch(ia,{credentials:"same-origin"}).then(function(w){if(!w.ok)throw"failed to load wasm binary file at '"+ia+"'";return w.arrayBuffer()}).catch(function(){return jp()}):new Promise(function(w,S){w(jp())})}function Wf(){var w={a:$g};function S(ie,xe){var et=ie.exports;if(u.asm=et,ae=xe,!x){var Mt=me.unusedWorkers.length;me.unusedWorkers.forEach(function(rn){me.loadWasmModuleToWorker(rn,function(){--Mt||Of("wasm-instantiate")})})}}x||Pf("wasm-instantiate");function R(ie){S(ie.instance,ie.module)}function U(ie){return Bf().then(function(xe){return WebAssembly.instantiate(xe,w)}).then(ie,function(xe){H("failed to asynchronously prepare wasm: "+xe),cr(xe)})}function he(){if(!J&&typeof WebAssembly.instantiateStreaming=="function"&&!Gp(ia)&&!Hp(ia)&&typeof fetch=="function")fetch(ia,{credentials:"same-origin"}).then(function(ie){var xe=WebAssembly.instantiateStreaming(ie,w);return xe.then(R,function(et){H("wasm streaming compile failed: "+et),H("falling back to ArrayBuffer instantiation"),U(R)})});else return U(R)}if(u.instantiateWasm)try{var le=u.instantiateWasm(w,S);return le}catch(ie){return H("Module.instantiateWasm callback failed with error: "+ie),!1}return he(),{}}var Vf={};function Uf(){me.initRuntime()}x||Bu.push({func:function(){qu()}});var qp=0,Kp=0,Xp=0;function mo(w,S,R){w=w|0,S=S|0,R=R|0,qp=w,Xp=S,Kp=R}u.__register_pthread_ptr=mo;var Hu={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},fo=13584;function go(w,S){if(w<=0||w>s().length||w&!0||S<0)return-28;if(S==0)return 0;S>=2147483647&&(S=Infinity);var R=Atomics.load(o(),fo>>2),U=0;if(R==w){var he=Atomics.compareExchange(o(),fo>>2,R,0);if(he==R&&(--S,U=1,S<=0))return 1}var le=Atomics.notify(o(),w>>2,S);if(le>=0)return le+U;throw"Atomics.notify returned an unexpected value "+le}u._emscripten_futex_wake=go;function Gf(w){if(x)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _kill_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];S.worker.terminate(),me.freeThreadData(S),me.runningWorkers.splice(me.runningWorkers.indexOf(S.worker),1),S.worker.pthread=void 0}function Hf(w){if(x)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var S=me.pthreads[w];S.worker.postMessage({cmd:"cancel"})}function jf(w){if(x)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];if(S){var R=S.worker;me.returnWorkerToPool(R)}}var me={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){mo(me.mainThreadBlock,!y,1),Pw(me.mainThreadBlock)},initMainThreadBlock:function(){for(var w=8,S=0;S>2]=me.mainThreadBlock;var R=me.mainThreadBlock+156;o()[R>>2]=R;for(var U=13072,S=0;S<128;++S)l()[U/4+S]=0;Atomics.store(l(),me.mainThreadBlock+104>>2,U),Atomics.store(l(),me.mainThreadBlock+40>>2,me.mainThreadBlock),Atomics.store(l(),me.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(me.exitHandlers!==null){for(;me.exitHandlers.length>0;)me.exitHandlers.pop()();me.exitHandlers=null}x&&pe&&Mw()},threadExit:function(w){var S=Ba();S&&(Atomics.store(l(),S+4>>2,w),Atomics.store(l(),S+0>>2,1),Atomics.store(l(),S+60>>2,1),Atomics.store(l(),S+64>>2,0),me.runExitHandlers(),go(S+0,2147483647),mo(0,0,0),pe=0,x&&postMessage({cmd:"exit"}))},threadCancel:function(){me.runExitHandlers(),Atomics.store(l(),pe+4>>2,-1),Atomics.store(l(),pe+0>>2,1),go(pe+0,2147483647),pe=ue=0,mo(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var w in me.pthreads){var S=me.pthreads[w];S&&S.worker&&me.returnWorkerToPool(S.worker)}me.pthreads={};for(var R=0;R>2];o()[w.threadInfoStruct+104>>2]=0,Qu(S),Qu(w.threadInfoStruct)}w.threadInfoStruct=0,w.allocatedOwnStack&&w.stackBase&&Qu(w.stackBase),w.stackBase=0,w.worker&&(w.worker.pthread=null)}},returnWorkerToPool:function(w){delete me.pthreads[w.pthread.thread],me.unusedWorkers.push(w),me.runningWorkers.splice(me.runningWorkers.indexOf(w),1),me.freeThreadData(w.pthread),w.pthread=void 0},receiveObjectTransfer:function(w){},loadWasmModuleToWorker:function(w,S){w.onmessage=function(R){var U=R.data,he=U.cmd;if(w.pthread&&(me.currentProxiedOperationCallerThread=w.pthread.threadInfoStruct),U.targetThread&&U.targetThread!=Ba()){var le=me.pthreads[U.targetThread];le?le.worker.postMessage(R.data,U.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+U.targetThread+", but that thread no longer exists!"),me.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Mg();else if(he==="spawnThread")td(R.data);else if(he==="cleanupThread")jf(U.thread);else if(he==="killThread")Gf(U.thread);else if(he==="cancelThread")Hf(U.thread);else if(he==="loaded")w.loaded=!0,S&&S(w),w.runPthread&&(w.runPthread(),delete w.runPthread);else if(he==="print")q("Thread "+U.threadId+": "+U.text);else if(he==="printErr")H("Thread "+U.threadId+": "+U.text);else if(he==="alert")alert("Thread "+U.threadId+": "+U.text);else if(he==="exit"){var ie=w.pthread&&Atomics.load(l(),w.pthread.thread+68>>2);ie&&me.returnWorkerToPool(w)}else he==="cancelDone"?me.returnWorkerToPool(w):he==="objectTransfer"?me.receiveObjectTransfer(R.data):R.data.target==="setimmediate"?w.postMessage(R.data):H("worker sent an unknown command "+he);me.currentProxiedOperationCallerThread=void 0},w.onerror=function(R){H("pthread sent an error! "+R.filename+":"+R.lineno+": "+R.message)},b&&(w.on("message",function(R){w.onmessage({data:R})}),w.on("error",function(R){w.onerror(R)}),w.on("exit",function(R){console.log("worker exited - TODO: update the worker queue?")})),w.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||a,wasmMemory:Q,wasmModule:ae,DYNAMIC_BASE:ra,DYNAMICTOP_PTR:ka})},allocateUnusedWorker:function(){var w=T("tfjs-backend-wasm-threaded-simd.worker.js");me.unusedWorkers.push(new Worker(w))},getNewWorker:function(){return me.unusedWorkers.length==0&&(me.allocateUnusedWorker(),me.loadWasmModuleToWorker(me.unusedWorkers[0])),me.unusedWorkers.length>0?me.unusedWorkers.pop():null},busySpinWait:function(w){for(var S=performance.now()+w;performance.now()>2]=w,w}function Jf(w,S){if(x)return $r(1,1,w,S);Wu.unshift({func:w,arg:S})}function Qf(w,S){if(w==S)postMessage({cmd:"processQueuedMainThreadWork"});else if(x)postMessage({targetThread:w,cmd:"processThreadQueue"});else{var R=me.pthreads[w],U=R&&R.worker;if(!U)return;U.postMessage({cmd:"processThreadQueue"})}return 1}function eg(){cr()}function tg(w,S){w=w|0,S=S|0}function ng(w,S,R){if(w<=0||w>s().length||w&!0)return-28;if(y){var U=Atomics.wait(o(),w>>2,S,R);if(U==="timed-out")return-73;if(U==="not-equal")return-6;if(U==="ok")return 0;throw"Atomics.wait returned an unexpected value "+U}else{var he=Atomics.load(o(),w>>2);if(S!=he)return-6;var le=performance.now(),ie=le+R;Atomics.store(o(),fo>>2,w);for(var xe=w;w==xe;){if(le=performance.now(),le>ie)return-73;Mg(),w=Atomics.load(o(),fo>>2)}return 0}}function ag(){return Xp|0}function rg(){return Kp|0}function sg(w,S,R){i().copyWithin(w,S,S+R)}function ig(){return navigator.hardwareConcurrency}function $r(w,S){for(var R=arguments.length-2,U=ec(),he=xo(R*8),le=he>>3,ie=0;ie>3]),S+=8):(S=S+3&~3,R.push(o()[S>>2]),S+=4);return R}function og(w,S,R){ws.length=S;for(var U=R>>3,he=0;he>>16),An(Q.buffer),1}catch(S){}}function cg(w){w=w>>>0;var S=lg();if(w<=S)return!1;var R=65536,U=2147483648;if(w>U)return!1;for(var he=16777216,le=1;le<=4;le*=2){var ie=S*(1+.2/le);ie=Math.min(ie,w+100663296);var xe=Math.min(U,Gn(Math.max(he,w,ie),R)),et=ug(xe);if(et)return!0}return!1}var Pe={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var w=Pe.eventHandlers.length-1;w>=0;--w)Pe._removeHandler(w);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(Wu.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(w,S,R){function U(ie,xe){if(ie.length!=xe.length)return!1;for(var et in ie)if(ie[et]!=xe[et])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==w&&U(le.argsList,R))return}Pe.deferredCalls.push({targetFunction:w,precedence:S,argsList:R}),Pe.deferredCalls.sort(function(ie,xe){return ie.precedence>2]=R,o()[ie+4>>2]=U,o()[ie+8>>2]=he,Pg(w,637534208,S,U,ie),vo(le)},getTargetThreadForEventCallback:function(w){switch(w){case 1:return 0;case 2:return me.currentProxiedOperationCallerThread;default:return w}},getNodeNameForTarget:function(w){return w?w==window?"#window":w==screen?"#screen":w&&w.nodeName?w.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function pg(w){var S=He(w)+1,R=Ju(S);return ot(w,R,S),R}function dg(w,S,R,U){var he=ec(),le=xo(12),ie=0;S&&(ie=pg(S)),o()[le>>2]=ie,o()[le+4>>2]=R,o()[le+8>>2]=U,Pg(w,657457152,0,ie,le),vo(he)}function hg(w,S,R,U){S=S?Ve(S):"",dg(w,S,R,U)}function mg(w){return w>2?Ve(w):w}var fg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function gg(w){w=mg(w);var S=fg[w]||(typeof document!="undefined"?document.querySelector(w):void 0);return S}function ju(w){return gg(w)}function Yp(w,S,R){var U=ju(w);if(!U)return-4;if(U.canvasSharedPtr&&(o()[U.canvasSharedPtr>>2]=S,o()[U.canvasSharedPtr+4>>2]=R),U.offscreenCanvas||!U.controlTransferredOffscreen){U.offscreenCanvas&&(U=U.offscreenCanvas);var he=!1;if(U.GLctxObject&&U.GLctxObject.GLctx){var le=U.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===U.width&&le[3]===U.height}U.width=S,U.height=R,he&&U.GLctxObject.GLctx.viewport(0,0,S,R)}else if(U.canvasSharedPtr){var ie=o()[U.canvasSharedPtr+8>>2];return hg(ie,w,S,R),1}else return-4;return 0}function Zp(w,S,R){return x?$r(2,1,w,S,R):Yp(w,S,R)}function yg(w,S,R){var U=ju(w);return U?Yp(w,S,R):Zp(w,S,R)}function bg(w){w=w|0}function xg(w,S){w=w|0,S=S|0}function vg(w){var S=w.getExtension("ANGLE_instanced_arrays");if(S)return w.vertexAttribDivisor=function(R,U){S.vertexAttribDivisorANGLE(R,U)},w.drawArraysInstanced=function(R,U,he,le){S.drawArraysInstancedANGLE(R,U,he,le)},w.drawElementsInstanced=function(R,U,he,le,ie){S.drawElementsInstancedANGLE(R,U,he,le,ie)},1}function wg(w){var S=w.getExtension("OES_vertex_array_object");if(S)return w.createVertexArray=function(){return S.createVertexArrayOES()},w.deleteVertexArray=function(R){S.deleteVertexArrayOES(R)},w.bindVertexArray=function(R){S.bindVertexArrayOES(R)},w.isVertexArray=function(R){return S.isVertexArrayOES(R)},1}function kg(w){var S=w.getExtension("WEBGL_draw_buffers");if(S)return w.drawBuffers=function(R,U){S.drawBuffersWEBGL(R,U)},1}var Be={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var w=new Float32Array(Be.MINI_TEMP_BUFFER_SIZE),S=0;S>2]:-1;he+=Ve(o()[R+le*4>>2],ie<0?void 0:ie)}return he},createContext:function(w,S){var R=w.getContext("webgl",S);if(!R)return 0;var U=Be.registerContext(R,S);return U},registerContext:function(w,S){var R=Ju(8);o()[R+4>>2]=Ba();var U={handle:R,attributes:S,version:S.majorVersion,GLctx:w};return w.canvas&&(w.canvas.GLctxObject=U),Be.contexts[R]=U,(typeof S.enableExtensionsByDefault=="undefined"||S.enableExtensionsByDefault)&&Be.initExtensions(U),R},makeContextCurrent:function(w){return Be.currentContext=Be.contexts[w],u.ctx=Dr=Be.currentContext&&Be.currentContext.GLctx,!(w&&!Dr)},getContext:function(w){return Be.contexts[w]},deleteContext:function(w){Be.currentContext===Be.contexts[w]&&(Be.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(Be.contexts[w].GLctx.canvas),Be.contexts[w]&&Be.contexts[w].GLctx.canvas&&(Be.contexts[w].GLctx.canvas.GLctxObject=void 0),Qu(Be.contexts[w].handle),Be.contexts[w]=null},initExtensions:function(w){if(w||(w=Be.currentContext),!w.initExtensionsDone){w.initExtensionsDone=!0;var S=w.GLctx;vg(S),wg(S),kg(S),S.disjointTimerQueryExt=S.getExtension("EXT_disjoint_timer_query");var R=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],U=S.getSupportedExtensions()||[];U.forEach(function(he){R.indexOf(he)!=-1&&S.getExtension(he)})}},populateUniformTable:function(w){for(var S=Be.programs[w],R=Be.programInfos[w]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},U=R.uniforms,he=Dr.getProgramParameter(S,35718),le=0;le>2;R.alpha=!!o()[U+(0>>2)],R.depth=!!o()[U+(4>>2)],R.stencil=!!o()[U+(8>>2)],R.antialias=!!o()[U+(12>>2)],R.premultipliedAlpha=!!o()[U+(16>>2)],R.preserveDrawingBuffer=!!o()[U+(20>>2)];var he=o()[U+(24>>2)];R.powerPreference=Ig[he],R.failIfMajorPerformanceCaveat=!!o()[U+(28>>2)],R.majorVersion=o()[U+(32>>2)],R.minorVersion=o()[U+(36>>2)],R.enableExtensionsByDefault=o()[U+(40>>2)],R.explicitSwapControl=o()[U+(44>>2)],R.proxyContextToMainThread=o()[U+(48>>2)],R.renderViaOffscreenBackBuffer=o()[U+(52>>2)];var le=ju(w);if(!le)return-4;if(R.explicitSwapControl)return-1;var ie=Be.createContext(le,R);return ie}function Tg(w,S){return Ng(w,S)}var ks={splitPath:function(w){var S=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return S.exec(w).slice(1)},normalizeArray:function(w,S){for(var R=0,U=w.length-1;U>=0;U--){var he=w[U];he==="."?w.splice(U,1):he===".."?(w.splice(U,1),R++):R&&(w.splice(U,1),R--)}if(S)for(;R;R--)w.unshift("..");return w},normalize:function(w){var S=w.charAt(0)==="/",R=w.substr(-1)==="/";return w=ks.normalizeArray(w.split("/").filter(function(U){return!!U}),!S).join("/"),!w&&!S&&(w="."),w&&R&&(w+="/"),(S?"/":"")+w},dirname:function(w){var S=ks.splitPath(w),R=S[0],U=S[1];return!R&&!U?".":(U&&(U=U.substr(0,U.length-1)),R+U)},basename:function(w){if(w==="/")return"/";var S=w.lastIndexOf("/");return S===-1?w:w.substr(S+1)},extname:function(w){return ks.splitPath(w)[3]},join:function(){var w=Array.prototype.slice.call(arguments,0);return ks.normalize(w.join("/"))},join2:function(w,S){return ks.normalize(w+"/"+S)}},bo={mappings:{},buffers:[null,[],[]],printChar:function(w,S){var R=bo.buffers[w];S===0||S===10?((w===1?q:H)(Ke(R,0)),R.length=0):R.push(S)},varargs:void 0,get:function(){bo.varargs+=4;var w=o()[bo.varargs-4>>2];return w},getStr:function(w){var S=Ve(w);return S},get64:function(w,S){return w}};function Jp(w){return x?$r(3,1,w):0}function Qp(w,S,R,U,he){if(x)return $r(4,1,w,S,R,U,he)}function ed(w,S,R,U){if(x)return $r(5,1,w,S,R,U);for(var he=0,le=0;le>2],xe=o()[S+(le*8+4)>>2],et=0;et>2]=he,0}function Sg(w){var S=me.exitHandlers.pop();w&&S()}function Cg(w,S){me.exitHandlers===null&&(me.exitHandlers=[]),me.exitHandlers.push(function(){zw(w,S)})}function td(w){if(x)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var S=me.getNewWorker();if(S.pthread!==void 0)throw"Internal error!";if(!w.pthread_ptr)throw"Internal error, no pthread ptr!";me.runningWorkers.push(S);for(var R=Ju(128*4),U=0;U<128;++U)o()[R+U*4>>2]=0;var he=w.stackBase+w.stackSize,le=me.pthreads[w.pthread_ptr]={worker:S,stackBase:w.stackBase,stackSize:w.stackSize,allocatedOwnStack:w.allocatedOwnStack,thread:w.pthread_ptr,threadInfoStruct:w.pthread_ptr},ie=le.threadInfoStruct>>2;Atomics.store(l(),ie+(0>>2),0),Atomics.store(l(),ie+(4>>2),0),Atomics.store(l(),ie+(8>>2),0),Atomics.store(l(),ie+(68>>2),w.detached),Atomics.store(l(),ie+(104>>2),R),Atomics.store(l(),ie+(48>>2),0),Atomics.store(l(),ie+(40>>2),le.threadInfoStruct),Atomics.store(l(),ie+(44>>2),42),Atomics.store(l(),ie+(108>>2),w.stackSize),Atomics.store(l(),ie+(84>>2),w.stackSize),Atomics.store(l(),ie+(80>>2),he),Atomics.store(l(),ie+(108+8>>2),he),Atomics.store(l(),ie+(108+12>>2),w.detached),Atomics.store(l(),ie+(108+20>>2),w.schedPolicy),Atomics.store(l(),ie+(108+24>>2),w.schedPrio);var xe=Dw(),et=xe+40;Atomics.store(l(),ie+(176>>2),et),S.pthread=le;var Mt={cmd:"run",start_routine:w.startRoutine,arg:w.arg,threadInfoStruct:w.pthread_ptr,selfThreadId:w.pthread_ptr,parentThreadId:w.parent_pthread_ptr,stackBase:w.stackBase,stackSize:w.stackSize};S.runPthread=function(){Mt.time=performance.now(),S.postMessage(Mt,w.transferList)},S.loaded&&(S.runPthread(),delete S.runPthread)}function _g(w,S,R){if(!S&&!R)return Hu.EINVAL;if(!w)return H("pthread_getschedparam called with a null thread pointer!"),Hu.ESRCH;var U=o()[w+12>>2];if(U!==w)return H("pthread_getschedparam attempted on thread "+w+", which does not point to a valid thread, or does not exist anymore!"),Hu.ESRCH;var he=Atomics.load(l(),w+108+20>>2),le=Atomics.load(l(),w+108+24>>2);return S&&(o()[S>>2]=he),R&&(o()[R>>2]=le),0}function Ba(){return qp|0}u._pthread_self=Ba;function Eg(w,S,R,U){if(typeof SharedArrayBuffer=="undefined")return H("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!w)return H("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(x&&(he.length===0||le))return Ow(687865856,w,S,R,U);if(le)return le;var ie=0,xe=0,et=0,Mt=0,rn=0;if(S){ie=o()[S>>2],ie+=81920,xe=o()[S+8>>2],et=o()[S+12>>2]!==0;var wo=o()[S+16>>2]===0;if(wo){var nc=o()[S+20>>2],jn=o()[S+24>>2],Mr=me.currentProxiedOperationCallerThread?me.currentProxiedOperationCallerThread:Ba();_g(Mr,S+20,S+24),Mt=o()[S+20>>2],rn=o()[S+24>>2],o()[S+20>>2]=nc,o()[S+24>>2]=jn}else Mt=o()[S+20>>2],rn=o()[S+24>>2]}else ie=2097152;var ac=xe==0;ac?xe=Rw(16,ie):(xe-=ie,ke(xe>0));for(var ko=Ju(232),Lg=0;Lg<232>>2;++Lg)l()[(ko>>2)+Lg]=0;o()[w>>2]=ko,o()[ko+12>>2]=ko;var Ww=ko+156;o()[Ww>>2]=Ww;var zg={stackBase:xe,stackSize:ie,allocatedOwnStack:ac,schedPolicy:Mt,schedPrio:rn,detached:et,startRoutine:R,pthread_ptr:ko,parent_pthread_ptr:Ba(),arg:U,transferList:he};return x?(zg.cmd="spawnThread",postMessage(zg,he)):td(zg),0}function Ag(w){return w=+w,w>=0?+Mf(w+.5):+ho(w-.5)}function nd(w){if(x)return $r(6,1,w);switch(w){case 30:return 16384;case 85:var S=2147483648;return S/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return Zf(28),-1}x?me.initWorker():me.initMainThreadBlock();var Dr;Be.init();var Fg=[null,Jf,Zp,Jp,Qp,ed,nd],$g={e:Xf,r:Yf,w:Qf,a:eg,l:tg,d:ng,c:go,h:vs,g:ag,x:rg,q:sg,B:ig,t:og,A:cg,u:yg,k:bg,s:xg,v:Tg,m:Jp,o:Qp,i:ed,p:Uf,memory:Q||u.wasmMemory,y:Sg,z:Cg,j:Eg,b:Ba,f:Ag,n:nd,table:oe},ad=Wf();u.asm=ad;var qu=u.___wasm_call_ctors=function(){return(qu=u.___wasm_call_ctors=u.asm.C).apply(null,arguments)},Ku=u._init=function(){return(Ku=u._init=u.asm.D).apply(null,arguments)},rd=u._register_tensor=function(){return(rd=u._register_tensor=u.asm.E).apply(null,arguments)},Is=u._dispose_data=function(){return(Is=u._dispose_data=u.asm.F).apply(null,arguments)},Xu=u._dispose=function(){return(Xu=u._dispose=u.asm.G).apply(null,arguments)},Dg=u._Abs=function(){return(Dg=u._Abs=u.asm.H).apply(null,arguments)},Rg=u._Add=function(){return(Rg=u._Add=u.asm.I).apply(null,arguments)},Yu=u._AddN=function(){return(Yu=u._AddN=u.asm.J).apply(null,arguments)},sd=u._ArgMax=function(){return(sd=u._ArgMax=u.asm.K).apply(null,arguments)},id=u._AvgPool=function(){return(id=u._AvgPool=u.asm.L).apply(null,arguments)},V=u._BatchMatMul=function(){return(V=u._BatchMatMul=u.asm.M).apply(null,arguments)},te=u._ClipByValue=function(){return(te=u._ClipByValue=u.asm.N).apply(null,arguments)},Ie=u._Conv2D=function(){return(Ie=u._Conv2D=u.asm.O).apply(null,arguments)},_e=u._Conv2DBackpropInput=function(){return(_e=u._Conv2DBackpropInput=u.asm.P).apply(null,arguments)},at=u._Cos=function(){return(at=u._Cos=u.asm.Q).apply(null,arguments)},_t=u._CropAndResize=function(){return(_t=u._CropAndResize=u.asm.R).apply(null,arguments)},Xe=u._Cumsum=function(){return(Xe=u._Cumsum=u.asm.S).apply(null,arguments)},je=u._DepthToSpace=function(){return(je=u._DepthToSpace=u.asm.T).apply(null,arguments)},Ut=u._DepthwiseConv2dNative=function(){return(Ut=u._DepthwiseConv2dNative=u.asm.U).apply(null,arguments)},pr=u._Equal=function(){return(pr=u._Equal=u.asm.V).apply(null,arguments)},dr=u._Exp=function(){return(dr=u._Exp=u.asm.W).apply(null,arguments)},od=u._FlipLeftRight=function(){return(od=u._FlipLeftRight=u.asm.X).apply(null,arguments)},Zu=u._Floor=function(){return(Zu=u._Floor=u.asm.Y).apply(null,arguments)},Hn=u._FloorDiv=function(){return(Hn=u._FloorDiv=u.asm.Z).apply(null,arguments)},Rr=u._FusedBatchNorm=function(){return(Rr=u._FusedBatchNorm=u.asm._).apply(null,arguments)},ld=u._FusedConv2D=function(){return(ld=u._FusedConv2D=u.asm.$).apply(null,arguments)},AC=u._FusedDepthwiseConv2D=function(){return(AC=u._FusedDepthwiseConv2D=u.asm.aa).apply(null,arguments)},FC=u._Gather=function(){return(FC=u._Gather=u.asm.ba).apply(null,arguments)},$C=u._GatherNd=function(){return($C=u._GatherNd=u.asm.ca).apply(null,arguments)},DC=u._Greater=function(){return(DC=u._Greater=u.asm.da).apply(null,arguments)},RC=u._GreaterEqual=function(){return(RC=u._GreaterEqual=u.asm.ea).apply(null,arguments)},MC=u._LeakyRelu=function(){return(MC=u._LeakyRelu=u.asm.fa).apply(null,arguments)},PC=u._Less=function(){return(PC=u._Less=u.asm.ga).apply(null,arguments)},OC=u._LessEqual=function(){return(OC=u._LessEqual=u.asm.ha).apply(null,arguments)},LC=u._Log=function(){return(LC=u._Log=u.asm.ia).apply(null,arguments)},zC=u._LogicalAnd=function(){return(zC=u._LogicalAnd=u.asm.ja).apply(null,arguments)},BC=u._Max=function(){return(BC=u._Max=u.asm.ka).apply(null,arguments)},WC=u._MaxPool=function(){return(WC=u._MaxPool=u.asm.la).apply(null,arguments)},VC=u._Maximum=function(){return(VC=u._Maximum=u.asm.ma).apply(null,arguments)},UC=u._Mean=function(){return(UC=u._Mean=u.asm.na).apply(null,arguments)},GC=u._Min=function(){return(GC=u._Min=u.asm.oa).apply(null,arguments)},HC=u._Minimum=function(){return(HC=u._Minimum=u.asm.pa).apply(null,arguments)},jC=u._Multiply=function(){return(jC=u._Multiply=u.asm.qa).apply(null,arguments)},qC=u._Neg=function(){return(qC=u._Neg=u.asm.ra).apply(null,arguments)},KC=u._NonMaxSuppressionV3=function(){return(KC=u._NonMaxSuppressionV3=u.asm.sa).apply(null,arguments)},XC=u._NonMaxSuppressionV4=function(){return(XC=u._NonMaxSuppressionV4=u.asm.ta).apply(null,arguments)},YC=u._NonMaxSuppressionV5=function(){return(YC=u._NonMaxSuppressionV5=u.asm.ua).apply(null,arguments)},ZC=u._NotEqual=function(){return(ZC=u._NotEqual=u.asm.va).apply(null,arguments)},JC=u._OneHot=function(){return(JC=u._OneHot=u.asm.wa).apply(null,arguments)},QC=u._PadV2=function(){return(QC=u._PadV2=u.asm.xa).apply(null,arguments)},e_=u._Pow=function(){return(e_=u._Pow=u.asm.ya).apply(null,arguments)},t_=u._Prelu=function(){return(t_=u._Prelu=u.asm.za).apply(null,arguments)},n_=u._Prod=function(){return(n_=u._Prod=u.asm.Aa).apply(null,arguments)},a_=u._RealDiv=function(){return(a_=u._RealDiv=u.asm.Ba).apply(null,arguments)},r_=u._Relu=function(){return(r_=u._Relu=u.asm.Ca).apply(null,arguments)},s_=u._Relu6=function(){return(s_=u._Relu6=u.asm.Da).apply(null,arguments)},i_=u._ResizeBilinear=function(){return(i_=u._ResizeBilinear=u.asm.Ea).apply(null,arguments)},o_=u._Reverse=function(){return(o_=u._Reverse=u.asm.Fa).apply(null,arguments)},l_=u._RotateWithOffset=function(){return(l_=u._RotateWithOffset=u.asm.Ga).apply(null,arguments)},u_=u._Round=function(){return(u_=u._Round=u.asm.Ha).apply(null,arguments)},c_=u._Rsqrt=function(){return(c_=u._Rsqrt=u.asm.Ia).apply(null,arguments)},p_=u._ScatterNd=function(){return(p_=u._ScatterNd=u.asm.Ja).apply(null,arguments)},d_=u._SelectV2=function(){return(d_=u._SelectV2=u.asm.Ka).apply(null,arguments)},h_=u._Sigmoid=function(){return(h_=u._Sigmoid=u.asm.La).apply(null,arguments)},m_=u._Sin=function(){return(m_=u._Sin=u.asm.Ma).apply(null,arguments)},f_=u._Softmax=function(){return(f_=u._Softmax=u.asm.Na).apply(null,arguments)},g_=u._Sqrt=function(){return(g_=u._Sqrt=u.asm.Oa).apply(null,arguments)},y_=u._Square=function(){return(y_=u._Square=u.asm.Pa).apply(null,arguments)},b_=u._SquaredDifference=function(){return(b_=u._SquaredDifference=u.asm.Qa).apply(null,arguments)},x_=u._Step=function(){return(x_=u._Step=u.asm.Ra).apply(null,arguments)},v_=u._StridedSlice=function(){return(v_=u._StridedSlice=u.asm.Sa).apply(null,arguments)},w_=u._Sub=function(){return(w_=u._Sub=u.asm.Ta).apply(null,arguments)},k_=u._Sum=function(){return(k_=u._Sum=u.asm.Ua).apply(null,arguments)},I_=u._Tanh=function(){return(I_=u._Tanh=u.asm.Va).apply(null,arguments)},N_=u._Tile=function(){return(N_=u._Tile=u.asm.Wa).apply(null,arguments)},T_=u._TopK=function(){return(T_=u._TopK=u.asm.Xa).apply(null,arguments)},S_=u._Transpose=function(){return(S_=u._Transpose=u.asm.Ya).apply(null,arguments)},C_=u.__FusedMatMul=function(){return(C_=u.__FusedMatMul=u.asm.Za).apply(null,arguments)},Ju=u._malloc=function(){return(Ju=u._malloc=u.asm._a).apply(null,arguments)},Qu=u._free=function(){return(Qu=u._free=u.asm.$a).apply(null,arguments)},__=u.___em_js__initPthreadsJS=function(){return(__=u.___em_js__initPthreadsJS=u.asm.ab).apply(null,arguments)},$w=u.___errno_location=function(){return($w=u.___errno_location=u.asm.bb).apply(null,arguments)},Dw=u._emscripten_get_global_libc=function(){return(Dw=u._emscripten_get_global_libc=u.asm.cb).apply(null,arguments)},Rw=u._memalign=function(){return(Rw=u._memalign=u.asm.db).apply(null,arguments)},Mw=u.___pthread_tsd_run_dtors=function(){return(Mw=u.___pthread_tsd_run_dtors=u.asm.eb).apply(null,arguments)},Mg=u._emscripten_main_thread_process_queued_calls=function(){return(Mg=u._emscripten_main_thread_process_queued_calls=u.asm.fb).apply(null,arguments)},E_=u._emscripten_current_thread_process_queued_calls=function(){return(E_=u._emscripten_current_thread_process_queued_calls=u.asm.gb).apply(null,arguments)},Pw=u._emscripten_register_main_browser_thread_id=function(){return(Pw=u._emscripten_register_main_browser_thread_id=u.asm.hb).apply(null,arguments)},A_=u._emscripten_main_browser_thread_id=function(){return(A_=u._emscripten_main_browser_thread_id=u.asm.ib).apply(null,arguments)},F_=u._emscripten_async_run_in_main_thread=function(){return(F_=u._emscripten_async_run_in_main_thread=u.asm.jb).apply(null,arguments)},$_=u._emscripten_sync_run_in_main_thread=function(){return($_=u._emscripten_sync_run_in_main_thread=u.asm.kb).apply(null,arguments)},D_=u._emscripten_sync_run_in_main_thread_0=function(){return(D_=u._emscripten_sync_run_in_main_thread_0=u.asm.lb).apply(null,arguments)},R_=u._emscripten_sync_run_in_main_thread_1=function(){return(R_=u._emscripten_sync_run_in_main_thread_1=u.asm.mb).apply(null,arguments)},M_=u._emscripten_sync_run_in_main_thread_2=function(){return(M_=u._emscripten_sync_run_in_main_thread_2=u.asm.nb).apply(null,arguments)},P_=u._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(P_=u._emscripten_sync_run_in_main_thread_xprintf_varargs=u.asm.ob).apply(null,arguments)},O_=u._emscripten_sync_run_in_main_thread_3=function(){return(O_=u._emscripten_sync_run_in_main_thread_3=u.asm.pb).apply(null,arguments)},Ow=u._emscripten_sync_run_in_main_thread_4=function(){return(Ow=u._emscripten_sync_run_in_main_thread_4=u.asm.qb).apply(null,arguments)},L_=u._emscripten_sync_run_in_main_thread_5=function(){return(L_=u._emscripten_sync_run_in_main_thread_5=u.asm.rb).apply(null,arguments)},z_=u._emscripten_sync_run_in_main_thread_6=function(){return(z_=u._emscripten_sync_run_in_main_thread_6=u.asm.sb).apply(null,arguments)},B_=u._emscripten_sync_run_in_main_thread_7=function(){return(B_=u._emscripten_sync_run_in_main_thread_7=u.asm.tb).apply(null,arguments)},Lw=u._emscripten_run_in_main_runtime_thread_js=function(){return(Lw=u._emscripten_run_in_main_runtime_thread_js=u.asm.ub).apply(null,arguments)},Pg=u._emscripten_async_queue_on_thread_=function(){return(Pg=u._emscripten_async_queue_on_thread_=u.asm.vb).apply(null,arguments)},W_=u._emscripten_tls_init=function(){return(W_=u._emscripten_tls_init=u.asm.wb).apply(null,arguments)},ec=u.stackSave=function(){return(ec=u.stackSave=u.asm.xb).apply(null,arguments)},xo=u.stackAlloc=function(){return(xo=u.stackAlloc=u.asm.yb).apply(null,arguments)},vo=u.stackRestore=function(){return(vo=u.stackRestore=u.asm.zb).apply(null,arguments)},zw=u.dynCall_vi=function(){return(zw=u.dynCall_vi=u.asm.Ab).apply(null,arguments)},V_=u.dynCall_v=function(){return(V_=u.dynCall_v=u.asm.Bb).apply(null,arguments)},U_=u.dynCall_ii=function(){return(U_=u.dynCall_ii=u.asm.Cb).apply(null,arguments)};u.asm=ad,u.cwrap=Re,u.PThread=me,u.PThread=me,u._pthread_self=Ba,u.wasmMemory=Q,u.ExitStatus=Bw;var tc;u.then=function(w){if(tc)w(u);else{var S=u.onRuntimeInitialized;u.onRuntimeInitialized=function(){S&&S(),w(u)}}return u};function Bw(w){this.name="ExitStatus",this.message="Program terminated with exit("+w+")",this.status=w}xs=function w(){tc||Og(),tc||(xs=w)};function Og(w){if(w=w||h,ur>0||(sa(),ur>0))return;function S(){tc||(tc=!0,u.calledRun=!0,!ge&&(Up(),$f(),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Df()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),S()},1)):S()}if(u.run=Og,u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return x||(se=!0),x||Og(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),bE=un((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i={},o;for(o in s)s.hasOwnProperty(o)&&(i[o]=s[o]);var l=[],c="./this.program",u=function(V,te){throw te},p=!1,d=!1,h=!1,m=!1;p=typeof window=="object",d=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",m=!p&&!h&&!d;var f="";function g(V){return s.locateFile?s.locateFile(V,f):f+V}var y,b,v,x,N,T;h?(d?f=rc().dirname(f)+"/":f=__dirname+"/",y=function(V,te){return N||(N=require("fs")),T||(T=rc()),V=T.normalize(V),N.readFileSync(V,te?null:"utf8")},v=function(V){var te=y(V,!0);return te.buffer||(te=new Uint8Array(te)),H(te.buffer),te},process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),l=process.argv.slice(2),process.on("uncaughtException",function(V){if(!(V instanceof Xu))throw V}),process.on("unhandledRejection",ys),u=function(V){process.exit(V)},s.inspect=function(){return"[Emscripten Module object]"}):m?(typeof read!="undefined"&&(y=function(V){return read(V)}),v=function(V){var te;return typeof readbuffer=="function"?new Uint8Array(readbuffer(V)):(te=read(V,"binary"),H(typeof te=="object"),te)},typeof scriptArgs!="undefined"?l=scriptArgs:typeof arguments!="undefined"&&(l=arguments),typeof quit=="function"&&(u=function(V){quit(V)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(p||d)&&(d?f=self.location.href:document.currentScript&&(f=document.currentScript.src),a&&(f=a),f.indexOf("blob:")!==0?f=f.substr(0,f.lastIndexOf("/")+1):f="",y=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.send(null),te.responseText},d&&(v=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.responseType="arraybuffer",te.send(null),new Uint8Array(te.response)}),b=function(V,te,Ie){var _e=new XMLHttpRequest;_e.open("GET",V,!0),_e.responseType="arraybuffer",_e.onload=function(){if(_e.status==200||_e.status==0&&_e.response){te(_e.response);return}Ie()},_e.onerror=Ie,_e.send(null)},x=function(V){document.title=V});var C=s.print||console.log.bind(console),$=s.printErr||console.warn.bind(console);for(o in i)i.hasOwnProperty(o)&&(s[o]=i[o]);i=null,s.arguments&&(l=s.arguments),s.thisProgram&&(c=s.thisProgram),s.quit&&(u=s.quit);var F;s.wasmBinary&&(F=s.wasmBinary);var O;s.noExitRuntime&&(O=s.noExitRuntime),typeof WebAssembly!="object"&&$("no native wasm support detected");var B,W=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),G=!1,q=0;function H(V,te){V||ys("Assertion failed: "+te)}function K(V){var te=s["_"+V];return H(te,"Cannot call unknown function "+V+", make sure it is exported"),te}function X(V,te,Ie,_e,at){var _t={string:function(Hn){var Rr=0;if(Hn!=null&&Hn!==0){var ld=(Hn.length<<2)+1;Rr=Ku(ld),ae(Hn,Rr,ld)}return Rr},array:function(Hn){var Rr=Ku(Hn.length);return pe(Hn,Rr),Rr}};function Xe(Hn){return te==="string"?Q(Hn):te==="boolean"?Boolean(Hn):Hn}var je=K(V),Ut=[],pr=0;if(_e)for(var dr=0;dr<_e.length;dr++){var od=_t[Ie[dr]];od?(pr===0&&(pr=qu()),Ut[dr]=od(_e[dr])):Ut[dr]=_e[dr]}var Zu=je.apply(null,Ut);return Zu=Xe(Zu),pr!==0&&rd(pr),Zu}function ne(V,te,Ie,_e){Ie=Ie||[];var at=Ie.every(function(Xe){return Xe==="number"}),_t=te!=="string";return _t&&at&&!_e?K(V):function(){return X(V,te,Ie,arguments,_e)}}var J=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function se(V,te,Ie){for(var _e=te+Ie,at=te;V[at]&&!(at>=_e);)++at;if(at-te>16&&V.subarray&&J)return J.decode(V.subarray(te,at));for(var _t="";te>10,56320|pr&1023)}}return _t}function Q(V,te){return V?se(ye,V,te):""}function oe(V,te,Ie,_e){if(!(_e>0))return 0;for(var at=Ie,_t=Ie+_e-1,Xe=0;Xe=55296&&je<=57343){var Ut=V.charCodeAt(++Xe);je=65536+((je&1023)<<10)|Ut&1023}if(je<=127){if(Ie>=_t)break;te[Ie++]=je}else if(je<=2047){if(Ie+1>=_t)break;te[Ie++]=192|je>>6,te[Ie++]=128|je&63}else if(je<=65535){if(Ie+2>=_t)break;te[Ie++]=224|je>>12,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}else{if(Ie+3>=_t)break;te[Ie++]=240|je>>18,te[Ie++]=128|je>>12&63,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}}return te[Ie]=0,Ie-at}function ae(V,te,Ie){return oe(V,ye,te,Ie)}function pe(V,te){ge.set(V,te)}var ue,ge,ye,ke,Se,Ce,Re,Ke,Ve;function rt(V){ue=V,s.HEAP8=ge=new Int8Array(V),s.HEAP16=ke=new Int16Array(V),s.HEAP32=Ce=new Int32Array(V),s.HEAPU8=ye=new Uint8Array(V),s.HEAPU16=Se=new Uint16Array(V),s.HEAPU32=Re=new Uint32Array(V),s.HEAPF32=Ke=new Float32Array(V),s.HEAPF64=Ve=new Float64Array(V)}var ot=s.INITIAL_MEMORY||16777216;function He(V){for(;V.length>0;){var te=V.shift();if(typeof te=="function"){te(s);continue}var Ie=te.func;typeof Ie=="number"?te.arg===void 0?s.dynCall_v(Ie):s.dynCall_vi(Ie,te.arg):Ie(te.arg===void 0?null:te.arg)}}var ct=[],pt=[],Gn=[],Je=[],_n=!1,Qt=!1;function En(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)za(s.preRun.shift());He(ct)}function na(){_n=!0,He(pt)}function xn(){He(Gn)}function ln(){Qt=!0}function aa(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)An(s.postRun.shift());He(Je)}function za(V){ct.unshift(V)}function An(V){Je.unshift(V)}var uo=Math.ceil,zu=Math.floor,wa=0,ra=null,ka=null;function co(V){wa++,s.monitorRunDependencies&&s.monitorRunDependencies(wa)}function po(V){if(wa--,s.monitorRunDependencies&&s.monitorRunDependencies(wa),wa==0&&(ra!==null&&(clearInterval(ra),ra=null),ka)){var te=ka;ka=null,te()}}s.preloadedImages={},s.preloadedAudios={};function ys(V){throw s.onAbort&&s.onAbort(V),V+="",C(V),$(V),G=!0,q=1,V="abort("+V+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(V)}function Bu(V,te){return String.prototype.startsWith?V.startsWith(te):V.indexOf(te)===0}var Ff="data:application/octet-stream;base64,";function Wu(V){return Bu(V,Ff)}var Vp="file://";function Vu(V){return Bu(V,Vp)}var sa="tfjs-backend-wasm.wasm";Wu(sa)||(sa=g(sa));function Up(){try{if(F)return new Uint8Array(F);if(v)return v(sa);throw"both async and sync fetching of the wasm failed"}catch(V){ys(V)}}function $f(){return!F&&(p||d)&&typeof fetch=="function"&&!Vu(sa)?fetch(sa,{credentials:"same-origin"}).then(function(V){if(!V.ok)throw"failed to load wasm binary file at '"+sa+"'";return V.arrayBuffer()}).catch(function(){return Up()}):new Promise(function(V,te){V(Up())})}function Df(){var V={env:cr,wasi_snapshot_preview1:cr};function te(Xe,je){var Ut=Xe.exports;s.asm=Ut,B=Ut.memory,rt(B.buffer),po("wasm-instantiate")}co("wasm-instantiate");function Ie(Xe){te(Xe.instance)}function _e(Xe){return $f().then(function(je){return WebAssembly.instantiate(je,V)}).then(Xe,function(je){$("failed to asynchronously prepare wasm: "+je),ys(je)})}function at(){if(!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Wu(sa)&&!Vu(sa)&&typeof fetch=="function")fetch(sa,{credentials:"same-origin"}).then(function(Xe){var je=WebAssembly.instantiateStreaming(Xe,V);return je.then(Ie,function(Ut){$("wasm streaming compile failed: "+Ut),$("falling back to ArrayBuffer instantiation"),_e(Ie)})});else return _e(Ie)}if(s.instantiateWasm)try{var _t=s.instantiateWasm(V,te);return _t}catch(Xe){return $("Module.instantiateWasm callback failed with error: "+Xe),!1}return at(),{}}pt.push();function Rf(V){rt(B.buffer)}var bs={splitPath:function(V){var te=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return te.exec(V).slice(1)},normalizeArray:function(V,te){for(var Ie=0,_e=V.length-1;_e>=0;_e--){var at=V[_e];at==="."?V.splice(_e,1):at===".."?(V.splice(_e,1),Ie++):Ie&&(V.splice(_e,1),Ie--)}if(te)for(;Ie;Ie--)V.unshift("..");return V},normalize:function(V){var te=V.charAt(0)==="/",Ie=V.substr(-1)==="/";return V=bs.normalizeArray(V.split("/").filter(function(_e){return!!_e}),!te).join("/"),!V&&!te&&(V="."),V&&Ie&&(V+="/"),(te?"/":"")+V},dirname:function(V){var te=bs.splitPath(V),Ie=te[0],_e=te[1];return!Ie&&!_e?".":(_e&&(_e=_e.substr(0,_e.length-1)),Ie+_e)},basename:function(V){if(V==="/")return"/";var te=V.lastIndexOf("/");return te===-1?V:V.substr(te+1)},extname:function(V){return bs.splitPath(V)[3]},join:function(){var V=Array.prototype.slice.call(arguments,0);return bs.normalize(V.join("/"))},join2:function(V,te){return bs.normalize(V+"/"+te)}},ho={mappings:{},buffers:[null,[],[]],printChar:function(V,te){var Ie=ho.buffers[V];te===0||te===10?((V===1?C:$)(se(Ie,0)),Ie.length=0):Ie.push(te)},varargs:void 0,get:function(){ho.varargs+=4;var V=Ce[ho.varargs-4>>2];return V},getStr:function(V){var te=Q(V);return te},get64:function(V,te){return V}};function Mf(V){return 0}function ur(V,te,Ie,_e,at){}function Uu(V,te,Ie,_e){for(var at=0,_t=0;_t>2],je=Ce[te+(_t*8+4)>>2],Ut=0;Ut>2]=at,0}function xs(V){sd(V)}function Pf(V){xs(V)}function Of(V){return V=+V,V>=0?+zu(V+.5):+uo(V-.5)}var cr={emscripten_notify_memory_growth:Rf,fd_close:Mf,fd_seek:ur,fd_write:Uu,proc_exit:Pf,roundf:Of},Gu=Df();s.asm=Gu;var Lf=s._init=function(){return(Lf=s._init=s.asm.init).apply(null,arguments)},Gp=s._register_tensor=function(){return(Gp=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},zf=s._dispose_data=function(){return(zf=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Hp=s._dispose=function(){return(Hp=s._dispose=s.asm.dispose).apply(null,arguments)},ia=s._Abs=function(){return(ia=s._Abs=s.asm.Abs).apply(null,arguments)},jp=s._Add=function(){return(jp=s._Add=s.asm.Add).apply(null,arguments)},Bf=s._AddN=function(){return(Bf=s._AddN=s.asm.AddN).apply(null,arguments)},Wf=s._ArgMax=function(){return(Wf=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Vf=s._AvgPool=function(){return(Vf=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Uf=s._BatchMatMul=function(){return(Uf=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},qp=s._ClipByValue=function(){return(qp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Kp=s._Conv2D=function(){return(Kp=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Xp=s._Conv2DBackpropInput=function(){return(Xp=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},mo=s._Cos=function(){return(mo=s._Cos=s.asm.Cos).apply(null,arguments)},Hu=s._CropAndResize=function(){return(Hu=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},fo=s._Cumsum=function(){return(fo=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},go=s._DepthToSpace=function(){return(go=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Gf=s._DepthwiseConv2dNative=function(){return(Gf=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Hf=s._Equal=function(){return(Hf=s._Equal=s.asm.Equal).apply(null,arguments)},jf=s._Exp=function(){return(jf=s._Exp=s.asm.Exp).apply(null,arguments)},me=s._FlipLeftRight=function(){return(me=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},qf=s._Floor=function(){return(qf=s._Floor=s.asm.Floor).apply(null,arguments)},Kf=s._FloorDiv=function(){return(Kf=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Xf=s._FusedBatchNorm=function(){return(Xf=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},Yf=s._FusedConv2D=function(){return(Yf=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},vs=s._FusedDepthwiseConv2D=function(){return(vs=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Zf=s._Gather=function(){return(Zf=s._Gather=s.asm.Gather).apply(null,arguments)},Jf=s._GatherNd=function(){return(Jf=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Qf=s._Greater=function(){return(Qf=s._Greater=s.asm.Greater).apply(null,arguments)},eg=s._GreaterEqual=function(){return(eg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},tg=s._LeakyRelu=function(){return(tg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},ng=s._Less=function(){return(ng=s._Less=s.asm.Less).apply(null,arguments)},ag=s._LessEqual=function(){return(ag=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},rg=s._Log=function(){return(rg=s._Log=s.asm.Log).apply(null,arguments)},sg=s._LogicalAnd=function(){return(sg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},ig=s._Max=function(){return(ig=s._Max=s.asm.Max).apply(null,arguments)},$r=s._MaxPool=function(){return($r=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},ws=s._Maximum=function(){return(ws=s._Maximum=s.asm.Maximum).apply(null,arguments)},yo=s._Mean=function(){return(yo=s._Mean=s.asm.Mean).apply(null,arguments)},og=s._Min=function(){return(og=s._Min=s.asm.Min).apply(null,arguments)},lg=s._Minimum=function(){return(lg=s._Minimum=s.asm.Minimum).apply(null,arguments)},ug=s._Multiply=function(){return(ug=s._Multiply=s.asm.Multiply).apply(null,arguments)},cg=s._Neg=function(){return(cg=s._Neg=s.asm.Neg).apply(null,arguments)},Pe=s._NonMaxSuppressionV3=function(){return(Pe=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},pg=s._NonMaxSuppressionV4=function(){return(pg=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},dg=s._NonMaxSuppressionV5=function(){return(dg=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},hg=s._NotEqual=function(){return(hg=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},mg=s._OneHot=function(){return(mg=s._OneHot=s.asm.OneHot).apply(null,arguments)},fg=s._PadV2=function(){return(fg=s._PadV2=s.asm.PadV2).apply(null,arguments)},gg=s._Pow=function(){return(gg=s._Pow=s.asm.Pow).apply(null,arguments)},ju=s._Prelu=function(){return(ju=s._Prelu=s.asm.Prelu).apply(null,arguments)},Yp=s._Prod=function(){return(Yp=s._Prod=s.asm.Prod).apply(null,arguments)},Zp=s._RealDiv=function(){return(Zp=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},yg=s._Relu=function(){return(yg=s._Relu=s.asm.Relu).apply(null,arguments)},bg=s._Relu6=function(){return(bg=s._Relu6=s.asm.Relu6).apply(null,arguments)},xg=s._ResizeBilinear=function(){return(xg=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},vg=s._Reverse=function(){return(vg=s._Reverse=s.asm.Reverse).apply(null,arguments)},wg=s._RotateWithOffset=function(){return(wg=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},kg=s._Round=function(){return(kg=s._Round=s.asm.Round).apply(null,arguments)},Be=s._Rsqrt=function(){return(Be=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ig=s._ScatterNd=function(){return(Ig=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ng=s._SelectV2=function(){return(Ng=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Tg=s._Sigmoid=function(){return(Tg=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},ks=s._Sin=function(){return(ks=s._Sin=s.asm.Sin).apply(null,arguments)},bo=s._Softmax=function(){return(bo=s._Softmax=s.asm.Softmax).apply(null,arguments)},Jp=s._Sqrt=function(){return(Jp=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Qp=s._Square=function(){return(Qp=s._Square=s.asm.Square).apply(null,arguments)},ed=s._SquaredDifference=function(){return(ed=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Sg=s._Step=function(){return(Sg=s._Step=s.asm.Step).apply(null,arguments)},Cg=s._StridedSlice=function(){return(Cg=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},td=s._Sub=function(){return(td=s._Sub=s.asm.Sub).apply(null,arguments)},_g=s._Sum=function(){return(_g=s._Sum=s.asm.Sum).apply(null,arguments)},Ba=s._Tanh=function(){return(Ba=s._Tanh=s.asm.Tanh).apply(null,arguments)},Eg=s._Tile=function(){return(Eg=s._Tile=s.asm.Tile).apply(null,arguments)},Ag=s._TopK=function(){return(Ag=s._TopK=s.asm.TopK).apply(null,arguments)},nd=s._Transpose=function(){return(nd=s._Transpose=s.asm.Transpose).apply(null,arguments)},Dr=s.__FusedMatMul=function(){return(Dr=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Fg=s._malloc=function(){return(Fg=s._malloc=s.asm.malloc).apply(null,arguments)},$g=s._free=function(){return($g=s._free=s.asm.free).apply(null,arguments)},ad=s.__start=function(){return(ad=s.__start=s.asm._start).apply(null,arguments)},qu=s.stackSave=function(){return(qu=s.stackSave=s.asm.stackSave).apply(null,arguments)},Ku=s.stackAlloc=function(){return(Ku=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},rd=s.stackRestore=function(){return(rd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)};s.asm=Gu,s.cwrap=ne;var Is;s.then=function(V){if(Is)V(s);else{var te=s.onRuntimeInitialized;s.onRuntimeInitialized=function(){te&&te(),V(s)}}return s};function Xu(V){this.name="ExitStatus",this.message="Program terminated with exit("+V+")",this.status=V}var Dg=!1;ka=function V(){Is||Yu(),Is||(ka=V)};function Rg(V){var te=s.__start;try{te();var Ie=0;sd(Ie,!0)}catch(at){if(at instanceof Xu)return;if(at=="unwind"){O=!0;return}else{var _e=at;at&&typeof at=="object"&&at.stack&&(_e=[at,at.stack]),$("exception thrown: "+_e),u(1,at)}}finally{Dg=!0}}function Yu(V){if(V=V||l,wa>0||(En(),wa>0))return;function te(){Is||(Is=!0,s.calledRun=!0,!G&&(na(),xn(),s.onRuntimeInitialized&&s.onRuntimeInitialized(),id&&Rg(V),aa()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),te()},1)):te()}s.run=Yu;function sd(V,te){te&&O&&V===0||(O||(G=!0,q=V,ln(),s.onExit&&s.onExit(V)),u(V,new Xu(V)))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();var id=!0;return s.noInitialRun&&(id=!1),O=!0,Yu(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),xE=1e-7,vE=1e-4,hd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},sc=class{decComplexRef(e){}time(e){return Wa("time")}read(e){return Wa("read")}readSync(e){return Wa("readSync")}numDataIds(){return Wa("numDataIds")}disposeData(e){return Wa("disposeData")}write(e,t,n){return Wa("write")}move(e,t,n,a){return Wa("move")}memory(){return Wa("memory")}floatPrecision(){return Wa("floatPrecision")}epsilon(){return this.floatPrecision()===32?xE:vE}dispose(){return Wa("dispose")}};function Wa(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function Uw(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function wE(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function ic(e,t,n){return Math.max(e,Math.min(t,n))}function kE(e){return e%2==0?e:e+1}function IE(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ns(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Ts(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||on(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function FE(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function oa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>Gt(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function Gw(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:oa(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function Hw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function jw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function qw(e,t){for(let n=0;nt+=n.length),t}function Pr(e){return typeof e=="string"||e instanceof String}function Zw(e){return typeof e=="boolean"}function Jw(e){return typeof e=="number"}function md(e){return Array.isArray(e)?md(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":Jw(e)?"float32":Pr(e)?"string":Zw(e)?"bool":"float32"}function Or(e){return!!(e&&e.constructor&&e.call&&e.apply)}function fd(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function Qw(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return Qw(0,e,t)}function Wg(e,t){let n=gd(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return To(e,new Float32Array(n));if(t==="int32")return To(e,new Int32Array(n));if(t==="bool")return To(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Vg(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function RE(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=OE(n,a)})}};function PE(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(LE(t,a[0],a[1]),a.join("="))),t}function LE(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function OE(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ee(){return Gg}var Gg=null;function zE(e){Gg=e}var Hg;function n0(){if(Hg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Hg=e}return Hg}function BE(){let e=n0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function jg(e,t){let n=BE();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var So="Abs",Co="Acos",_o="Acosh",Lr="Add",Ss="AddN",yd="All",bd="Any",Cs="ArgMax",lc="ArgMin",Eo="Asin",Ao="Asinh",Fo="Atan",$o="Atanh",Do="Atan2",_s="AvgPool",xd="AvgPoolGrad",uc="AvgPool3D",vd="AvgPool3DGrad",Es="BatchMatMul",cc="BatchToSpaceND",wd="Bincount",a0="BroadcastTo",As="Cast",Ro="Ceil",zr="ClipByValue",kd="Complex",pc="ComplexAbs",Mo="Concat",Fs="Conv2D",Id="Conv2DBackpropFilter",$s="Conv2DBackpropInput",dc="Conv3D",Nd="Conv3DBackpropFilterV2",Td="Conv3DBackpropInputV2",Ds="Cos",Po="Cosh",Rs="Cumsum",Oo="CropAndResize",Sd="DenseBincount",Lo="DepthToSpace",Ms="DepthwiseConv2dNative",Cd="DepthwiseConv2dNativeBackpropFilter",_d="DepthwiseConv2dNativeBackpropInput",Ed="Diag",hc="Dilation2D",Ad="Dilation2DBackpropInput",Fd="Dilation2DBackpropFilter",Ps="RealDiv",zo="Elu",$d="EluGrad",Bo="Erf",Wo="Equal",Os="Exp",Vo="ExpandDims",Uo="Expm1",Dd="FFT",mc="Fill",Go="FlipLeftRight",Ls="Floor",zs="FloorDiv",Bs="FusedBatchNorm",Ho="GatherV2",jo="GatherNd",qo="Greater",Ws="GreaterEqual",Ko="Identity",Rd="IFFT",Md="Imag",Xo="IsFinite",Yo="IsInf",Zo="IsNan",Vs="LeakyRelu",Jo="Less",Qo="LessEqual",Pd="LinSpace",Us="Log",el="Log1p",tl="LogicalAnd",fc="LogicalNot",gc="LogicalOr",r0="LogSoftmax",yc="LRN",Od="LRNGrad",Gs="Max",Hs="Maximum",js="MaxPool",Ld="MaxPoolGrad",bc="MaxPool3D",zd="MaxPool3DGrad",Bd="MaxPoolWithArgmax",qs="Mean",Ks="Min",Xs="Minimum",xc="MirrorPad",nl="Mod",Wd="Multinomial",Ys="Multiply",al="Neg",rl="NotEqual",sl="NonMaxSuppressionV3",il="NonMaxSuppressionV4",ol="NonMaxSuppressionV5",ll="OnesLike",Zs="OneHot",ul="Pack",Js="PadV2",WE="Pool",Qs="Pow",ei="Prelu",cl="Prod",vc="Range",Vd="Real",pl="Reciprocal",ti="Relu",dl="Reshape",wc="ResizeNearestNeighbor",Ud="ResizeNearestNeighborGrad",ni="ResizeBilinear",Gd="ResizeBilinearGrad",ai="Relu6",ri="Reverse",si="Round",ii="Rsqrt",hl="ScatterNd",ml="Select",fl="Selu",gl="Slice",oi="Sin",yl="Sinh",bl="Sign",li="Sigmoid",xl="Softplus",ui="Sqrt",ci="Sum",kc="SpaceToBatchND",vl="SplitV",pi="Softmax",di="SquaredDifference",Ic="Square",hi="Sub",Hd="SparseToDense",wl="StridedSlice",kl="Tan",mi="Tanh",Br="Tile",Il="TopK",fi="Transpose",jd="Unique",Nl="Unpack",Nc="UnsortedSegmentSum",Tl="ZerosLike",Wr="Step",qd="FromPixels",Sl="RotateWithOffset",gi="_FusedMatMul",yi="FusedConv2D",bi="FusedDepthwiseConv2D",Cl=jg("kernelRegistry",()=>new Map),Tc=jg("gradRegistry",()=>new Map);function Kd(e,t){let n=qg(e,t);return Cl.get(n)}function Kg(e){return Tc.get(e)}function Xd(e){let t=Cl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function Sc(e){let{kernelName:t,backendName:n}=e,a=qg(t,n);Cl.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Cl.set(a,e)}function s0(e){let{kernelName:t}=e;Tc.has(t)&&ee().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Tc.set(t,e)}function VE(e,t){let n=qg(e,t);if(!Cl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Cl.delete(n)}function UE(e){if(!Tc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Tc.delete(e)}function GE(e,t){Xd(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Sc(a)})}function qg(e,t){return`${t}_${e}`}var k={};Oe(k,{arraysEqual:()=>hr,assert:()=>A,assertNonNegativeIntegerDimensions:()=>Vg,assertNonNull:()=>Ns,assertShapesMatch:()=>sn,bytesFromStringArray:()=>Yw,bytesPerElement:()=>Xw,checkConversionForErrors:()=>qw,clamp:()=>ic,computeStrides:()=>No,createScalarValue:()=>HE,createShuffledIndices:()=>EE,decodeString:()=>Zd,distSquared:()=>TE,encodeString:()=>Cc,fetch:()=>jE,flatten:()=>Ts,getArrayFromDType:()=>jw,getTypedArrayFromDType:()=>Hw,hasEncodingLoss:()=>$E,indexToLoc:()=>ME,inferDtype:()=>md,inferFromImplicitShape:()=>FE,isBoolean:()=>Zw,isFunction:()=>Or,isInt:()=>Gt,isNumber:()=>Jw,isPromise:()=>Ug,isScalarShape:()=>SE,isString:()=>Pr,isTypedArray:()=>on,isValidDtype:()=>Kw,locToIndex:()=>RE,makeOnesTypedArray:()=>Wg,makeZerosNestedTypedArray:()=>DE,makeZerosTypedArray:()=>gd,nearestDivisor:()=>fd,nearestLargerEven:()=>kE,now:()=>Xg,parseAxisParam:()=>oa,randUniform:()=>NE,repeatedTry:()=>AE,rightPad:()=>oc,shuffle:()=>Uw,shuffleCombo:()=>wE,sizeFromShape:()=>Pt,sizeToSquarishShape:()=>_E,squeezeShape:()=>Gw,sum:()=>IE,tanh:()=>CE,toNestedArray:()=>To,toTypedArray:()=>Yd});function HE(e,t){return t==="string"?Cc(e):Yd([e],t)}function qE(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Yd(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Ts(e)),ee().getBool("DEBUG")&&qw(e,t),qE(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s=this.backendTimer.time(r);if(ee().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{KE(l,o.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(i=>i.kernelMs),extraInfo:s.then(i=>i.getExtraProfileInfo!=null?i.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function KE(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${u} %c${c} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function ZE(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[c.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let c=e[l],u=c.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let c=e[l.id];c!=null?i.push(c):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let c=n(()=>o[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);let u=s.inputs[l];if(!hr(c.shape,u.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${u.shape}'`);if(e[u.id]==null)e[u.id]=c;else{let p=e[u.id];e[u.id]=a(p,c),p.dispose()}}}}var i0=20,_c=3,Yg=7;function eA(e,t,n,a){let r=No(t),s=QE(e,t,n,r),i=t.length,o=Jd(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(c=>" "+c).join(` +var Y_=Object.create,dd=Object.defineProperty,Z_=Object.getPrototypeOf,J_=Object.prototype.hasOwnProperty,Q_=Object.getOwnPropertyNames,eE=Object.getOwnPropertyDescriptor;var Kw=e=>dd(e,"__esModule",{value:!0});var tE=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),hd=(e,t)=>{for(var n in t)dd(e,n,{get:t[n],enumerable:!0})},nE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Q_(t))!J_.call(e,a)&&a!=="default"&&dd(e,a,{get:()=>t[a],enumerable:!(n=eE(t,a))||n.enumerable});return e},aE=e=>e&&e.__esModule?e:nE(Kw(dd(e!=null?Y_(Z_(e)):{},"default",{value:e,enumerable:!0})),e);var K2=tE((hre,q2)=>{Kw(hre);hd(hre,{isNodejs:()=>mre});function mre(){return typeof global=="object"&&!0&&typeof q2!="undefined"&&typeof process!="undefined"&&!!process.version}});var Ug={};hd(Ug,{Abs:()=>_o,Acos:()=>Eo,Acosh:()=>Ao,AdadeltaOptimizer:()=>Wh,AdagradOptimizer:()=>Vh,AdamOptimizer:()=>Uh,AdamaxOptimizer:()=>Gh,Add:()=>zr,AddN:()=>Ss,All:()=>vd,Any:()=>wd,ArgMax:()=>Cs,ArgMin:()=>oc,Asin:()=>Fo,Asinh:()=>$o,Atan:()=>Do,Atan2:()=>Mo,Atanh:()=>Ro,AvgPool:()=>_s,AvgPool3D:()=>lc,AvgPool3DGrad:()=>Id,AvgPoolGrad:()=>kd,BackendWasm:()=>U2,BatchMatMul:()=>Es,BatchToSpaceND:()=>uc,Bincount:()=>Nd,BroadcastTo:()=>l0,Callback:()=>VI,CallbackList:()=>Bk,Cast:()=>As,Ceil:()=>Fs,ClipByValue:()=>Br,Complex:()=>Td,ComplexAbs:()=>cc,Concat:()=>Po,Conv2D:()=>$s,Conv2DBackpropFilter:()=>Sd,Conv2DBackpropInput:()=>Ds,Conv3D:()=>pc,Conv3DBackpropFilterV2:()=>Cd,Conv3DBackpropInputV2:()=>_d,Cos:()=>Rs,Cosh:()=>Oo,CropAndResize:()=>Lo,Cumsum:()=>Ms,CustomCallback:()=>Vk,DataStorage:()=>gd,DenseBincount:()=>Ed,DepthToSpace:()=>zo,DepthwiseConv2dNative:()=>Ps,DepthwiseConv2dNativeBackpropFilter:()=>Ad,DepthwiseConv2dNativeBackpropInput:()=>Fd,Diag:()=>$d,Dilation2D:()=>dc,Dilation2DBackpropFilter:()=>Rd,Dilation2DBackpropInput:()=>Dd,ENV:()=>Kg,EarlyStopping:()=>GI,Elu:()=>Bo,EluGrad:()=>Md,Environment:()=>i0,Equal:()=>Vo,Erf:()=>Wo,Exp:()=>Ls,ExpandDims:()=>Uo,Expm1:()=>Go,FFT:()=>Pd,Fill:()=>hc,FlipLeftRight:()=>Ho,Floor:()=>zs,FloorDiv:()=>Bs,FromPixels:()=>Yd,FusedBatchNorm:()=>Ws,FusedConv2D:()=>xi,FusedDepthwiseConv2D:()=>vi,GatherNd:()=>qo,GatherV2:()=>jo,GraphModel:()=>vN,Greater:()=>Ko,GreaterEqual:()=>Vs,History:()=>Wk,IFFT:()=>Od,Identity:()=>Us,Imag:()=>Ld,InputSpec:()=>Xt,IsFinite:()=>Xo,IsInf:()=>Yo,IsNan:()=>Zo,KernelBackend:()=>rc,LRN:()=>gc,LRNGrad:()=>Bd,LayerVariable:()=>Mk,LayersModel:()=>kr,LeakyRelu:()=>Gs,Less:()=>Jo,LessEqual:()=>Qo,LinSpace:()=>zd,Log:()=>Hs,Log1p:()=>el,LogSoftmax:()=>u0,LogicalAnd:()=>tl,LogicalNot:()=>mc,LogicalOr:()=>fc,Max:()=>js,MaxPool:()=>Ks,MaxPool3D:()=>yc,MaxPool3DGrad:()=>Vd,MaxPoolGrad:()=>Wd,MaxPoolWithArgmax:()=>Ud,Maximum:()=>qs,Mean:()=>Xs,Min:()=>Ys,Minimum:()=>Zs,MirrorPad:()=>bc,Mod:()=>nl,MomentumOptimizer:()=>Hh,Multinomial:()=>Gd,Multiply:()=>Js,Neg:()=>al,NonMaxSuppressionV3:()=>sl,NonMaxSuppressionV4:()=>il,NonMaxSuppressionV5:()=>ol,NotEqual:()=>rl,OP_SCOPE_SUFFIX:()=>v0,OneHot:()=>Qs,OnesLike:()=>ll,Optimizer:()=>xr,Pack:()=>ul,PadV2:()=>ei,Pool:()=>qE,Pow:()=>ti,Prelu:()=>ni,Prod:()=>cl,RMSPropOptimizer:()=>jh,RNN:()=>nr,Range:()=>xc,Rank:()=>ty,Real:()=>Hd,RealDiv:()=>Os,Reciprocal:()=>pl,Reduction:()=>dn,Relu:()=>ai,Relu6:()=>si,Reshape:()=>dl,ResizeBilinear:()=>ri,ResizeBilinearGrad:()=>qd,ResizeNearestNeighbor:()=>vc,ResizeNearestNeighborGrad:()=>jd,Reverse:()=>ii,RotateWithOffset:()=>Sl,Round:()=>oi,Rsqrt:()=>li,SGDOptimizer:()=>Kc,ScatterNd:()=>hl,Select:()=>ml,Selu:()=>fl,Sequential:()=>Zl,Sigmoid:()=>ci,Sign:()=>bl,Sin:()=>ui,Sinh:()=>yl,Slice:()=>gl,Softmax:()=>hi,Softplus:()=>xl,SpaceToBatchND:()=>wc,SparseToDense:()=>Kd,SplitV:()=>vl,Sqrt:()=>pi,Square:()=>kc,SquaredDifference:()=>mi,Step:()=>Vr,StridedSlice:()=>wl,Sub:()=>fi,Sum:()=>di,SymbolicTensor:()=>Fa,Tan:()=>kl,Tanh:()=>gi,Tensor:()=>Ae,TensorBuffer:()=>Ot,Tile:()=>Wr,TopK:()=>Il,Transpose:()=>yi,Unique:()=>Xd,Unpack:()=>Nl,UnsortedSegmentSum:()=>Ic,Variable:()=>Ur,ZerosLike:()=>Tl,_FusedMatMul:()=>bi,abs:()=>Lt,acos:()=>Sy,acosh:()=>Cy,add:()=>Z,addN:()=>n1,all:()=>ph,any:()=>Rc,argMax:()=>Mc,argMin:()=>_y,asin:()=>Ey,asinh:()=>Ay,atan:()=>Fy,atan2:()=>$y,atanh:()=>Dy,avgPool:()=>Xn,avgPool3d:()=>Py,backend:()=>t1,backend_util:()=>_,basicLSTMCell:()=>k$,batchNorm:()=>gr,batchNorm2d:()=>i1,batchNorm3d:()=>o1,batchNorm4d:()=>l1,batchToSpaceND:()=>Oc,bincount:()=>u1,booleanMaskAsync:()=>SM,broadcastTo:()=>Lc,browser:()=>Ni,buffer:()=>Le,callbacks:()=>m4,cast:()=>ce,ceil:()=>Oy,clipByValue:()=>qt,clone:()=>qr,complex:()=>Gr,concat:()=>Qe,concat1d:()=>c1,concat2d:()=>p1,concat3d:()=>d1,concat4d:()=>h1,constraints:()=>lk,conv1d:()=>hh,conv2d:()=>At,conv2dTranspose:()=>mh,conv3d:()=>zy,conv3dTranspose:()=>G$,copyRegisteredKernels:()=>YE,cos:()=>zc,cosh:()=>fh,cosineWindow:()=>pb,cumsum:()=>gh,customGrad:()=>Ka,data:()=>kN,denseBincount:()=>f1,deprecationWarn:()=>Ty,depthToSpace:()=>By,depthwiseConv2d:()=>Yr,deregisterOp:()=>g4,device_util:()=>ah,diag:()=>J$,dilation2d:()=>Wy,disableDeprecationWarnings:()=>RF,dispose:()=>Fe,disposeVariables:()=>MF,div:()=>ve,divNoNan:()=>Vy,dot:()=>g1,dropout:()=>O1,elu:()=>Pl,enableDebugMode:()=>DF,enableProdMode:()=>$F,enclosingPowerOfTwo:()=>L1,engine:()=>Ha,env:()=>ee,equal:()=>Zr,erf:()=>Uy,exp:()=>pn,expandDims:()=>$n,expm1:()=>Gy,eye:()=>Hy,fft:()=>jc,fill:()=>wn,findBackend:()=>VF,findBackendFactory:()=>UF,floor:()=>Ol,floorDiv:()=>ch,fused:()=>es,gather:()=>Ci,gatherND:()=>P1,gather_util:()=>by,getBackend:()=>BF,getGradient:()=>Jg,getKernel:()=>Zd,getKernelsForBackend:()=>Jd,grad:()=>CD,grads:()=>_D,greater:()=>pa,greaterEqual:()=>Jr,ifft:()=>Ul,imag:()=>yh,image:()=>Za,inTopKAsync:()=>OM,initializers:()=>fk,input:()=>_k,io:()=>Ht,irfft:()=>$h,isFinite:()=>y1,isInf:()=>b1,isNaN:()=>x1,keep:()=>jt,kernel_impls:()=>Ja,layers:()=>Ck,leakyRelu:()=>Bc,less:()=>bh,lessEqual:()=>_i,linalg:()=>Y1,linspace:()=>v1,loadGraphModel:()=>fV,loadLayersModel:()=>RW,localResponseNormalization:()=>jy,log:()=>Dn,log1p:()=>xh,logSigmoid:()=>k1,logSoftmax:()=>wh,logSumExp:()=>Xy,logicalAnd:()=>da,logicalNot:()=>Wc,logicalOr:()=>kh,logicalXor:()=>S1,losses:()=>JP,matMul:()=>ze,math:()=>P0,max:()=>Yn,maxPool:()=>Ft,maxPool3d:()=>Yy,maxPoolWithArgmax:()=>C1,maximum:()=>Xa,mean:()=>St,memory:()=>lh,metrics:()=>zI,min:()=>zl,minimum:()=>Bl,mirrorPad:()=>Zy,mod:()=>Jy,model:()=>$W,models:()=>BI,moments:()=>Ih,movingAverage:()=>EM,mul:()=>L,multiRNNCell:()=>aR,multinomial:()=>_1,neg:()=>Tt,nextFrame:()=>qh,norm:()=>Ph,notEqual:()=>Ai,oneHot:()=>$l,ones:()=>Ya,onesLike:()=>Rn,op:()=>O,outerProduct:()=>lR,pad:()=>Zn,pad1d:()=>pR,pad2d:()=>hR,pad3d:()=>fR,pad4d:()=>yR,pool:()=>E1,pow:()=>yr,prelu:()=>Uc,print:()=>A0,prod:()=>Nh,profile:()=>PF,rand:()=>SR,randomGamma:()=>AR,randomNormal:()=>A1,randomUniform:()=>Wl,range:()=>Th,ready:()=>zF,real:()=>Gc,reciprocal:()=>tb,registerBackend:()=>uh,registerCallbackConstructor:()=>MW,registerGradient:()=>c0,registerKernel:()=>Tc,registerOp:()=>f4,regularizers:()=>WI,relu:()=>Ye,relu6:()=>Sh,removeBackend:()=>WF,reshape:()=>H,reverse:()=>Mn,reverse1d:()=>zR,reverse2d:()=>WR,reverse3d:()=>UR,reverse4d:()=>HR,rfft:()=>qc,round:()=>nb,rsqrt:()=>Ch,scalar:()=>de,scatterND:()=>M1,scatter_util:()=>xy,selu:()=>_h,separableConv2d:()=>Fi,sequential:()=>DW,serialization:()=>re,setBackend:()=>LF,setPlatform:()=>GF,setWasmPath:()=>are,setWasmPaths:()=>rre,setdiff1dAsync:()=>F1,sigmoid:()=>ca,sign:()=>ab,signal:()=>ZP,sin:()=>Eh,sinh:()=>Ah,slice:()=>We,slice1d:()=>Fh,slice2d:()=>rb,slice3d:()=>Vl,slice4d:()=>Hc,slice_util:()=>cn,softmax:()=>Ta,softplus:()=>Ll,spaceToBatchND:()=>Vc,sparseToDense:()=>cb,spectral:()=>YP,split:()=>Pn,sqrt:()=>en,square:()=>lt,squaredDifference:()=>Dh,squeeze:()=>Qr,stack:()=>$t,step:()=>Gl,stridedSlice:()=>sb,sub:()=>fe,sum:()=>Te,sumOutType:()=>nh,tan:()=>ib,tanh:()=>Ml,tensor:()=>qn,tensor1d:()=>tt,tensor2d:()=>Sa,tensor3d:()=>ih,tensor4d:()=>Ca,tensor5d:()=>yM,tensor6d:()=>bM,tensor_util:()=>Na,test_util:()=>Z0,tidy:()=>D,tile:()=>qa,time:()=>OF,topk:()=>ob,train:()=>Di,transpose:()=>Ue,truncatedNormal:()=>Rh,unique:()=>Mh,unregisterGradient:()=>XE,unregisterKernel:()=>KE,unsortedSegmentSum:()=>lb,unstack:()=>dt,upcastType:()=>ua,util:()=>k,valueAndGrad:()=>ED,valueAndGrads:()=>AD,variable:()=>$1,variableGrads:()=>w1,version:()=>pee,version_converter:()=>wN,version_core:()=>e1,version_layers:()=>ym,version_wasm:()=>sre,where:()=>vn,whereAsync:()=>ub,zeros:()=>vt,zerosLike:()=>Ge});var rE=Object.create,md=Object.defineProperty,sE=Object.getPrototypeOf,iE=Object.prototype.hasOwnProperty,oE=Object.getOwnPropertyNames,lE=Object.getOwnPropertyDescriptor,uE=e=>md(e,"__esModule",{value:!0}),un=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)md(e,n,{get:t[n],enumerable:!0})},cE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of oE(t))!iE.call(e,a)&&a!=="default"&&md(e,a,{get:()=>t[a],enumerable:!(n=lE(t,a))||n.enumerable});return e},To=e=>e&&e.__esModule?e:cE(uE(md(e!=null?rE(sE(e)):{},"default",{value:e,enumerable:!0})),e),pE=un(()=>{}),dE=un((e,t)=>{(function(n,a,r){function s(c){var u=this,p=l();u.next=function(){var d=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=d-(u.c=d|0)},u.c=1,u.s0=p(" "),u.s1=p(" "),u.s2=p(" "),u.s0-=p(c),u.s0<0&&(u.s0+=1),u.s1-=p(c),u.s1<0&&(u.s1+=1),u.s2-=p(c),u.s2<0&&(u.s2+=1),p=null}function i(c,u){return u.c=c.c,u.s0=c.s0,u.s1=c.s1,u.s2=c.s2,u}function o(c,u){var p=new s(c),d=u&&u.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var c=4022871197,u=function(p){p=p.toString();for(var d=0;d>>0,h-=c,h*=c,c=h>>>0,h-=c,c+=h*4294967296}return(c>>>0)*23283064365386963e-26};return u}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),hE=un((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var d=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^d^d>>>8},l===(l|0)?c.x=l:u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),mE=un((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(d^d<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,l===(l|0)?c.x=l:u+=l;for(var p=0;p>>4),c.next()}function i(l,c){return c.x=l.x,c.y=l.y,c.z=l.z,c.w=l.w,c.v=l.v,c.d=l.d,c}function o(l,c){var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),fE=un((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.x,d=c.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,c.i=d+1&7,m};function u(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}u(c,l)}function i(l,c){return c.x=l.x.slice(),c.i=l.i,c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.x&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),gE=un((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.w,d=c.X,h=c.i,m,f;return c.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,c.i=h,f+(p^p>>>16)|0};function u(p,d){var h,m,f,g,y,b=[],v=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,v=Math.max(v,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}u(c,l)}function i(l,c){return c.i=l.i,c.w=l.w,c.X=l.X.slice(),c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.X&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),yE=un((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.b,h=c.c,m=c.d,f=c.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,c.b=d=d<<20^d>>>12^h,c.c=h=h-m|0,c.d=m<<16^h>>>16^f,c.a=f-d|0},c.a=0,c.b=0,c.c=2654435769|0,c.d=1367130551,l===Math.floor(l)?(c.a=l/4294967296|0,c.b=l|0):u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),bE=un(()=>{}),xE=un((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",c=a.pow(s,i),u=a.pow(2,o),p=u*2,d=s-1,h;function m(N,T,C){var F=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[N,x(n)]:N==null?v():N,3),F),P=new f(F),B=function(){for(var W=P.g(i),G=c,q=0;W=p;)W/=2,G/=2,q>>>=1;return(W+q)/G};return B.int32=function(){return P.g(4)|0},B.quick=function(){return P.g(4)/4294967296},B.double=B,b(x(P.S),n),(T.pass||C||function(W,G,q,j){return j&&(j.S&&g(j,P),W.state=function(){return g(P,{})}),q?(a[l]=W,G):W})(B,$,"global"in T?T.global:this==a,T.state)}a["seed"+l]=m;function f(N){var T,C=N.length,F=this,$=0,P=F.i=F.j=0,B=F.S=[];for(C||(N=[C++]);${var n=dE(),a=hE(),r=mE(),s=fE(),i=gE(),o=yE(),l=xE();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),vE=un(()=>{}),ac=un(()=>{}),wE=un(()=>{}),kE=un(()=>{}),IE=un((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return Q.buffer!=Je&&Fn(Q.buffer),En}function i(){return Q.buffer!=Je&&Fn(Q.buffer),Qt}function o(){return Q.buffer!=Je&&Fn(Q.buffer),xn}function l(){return Q.buffer!=Je&&Fn(Q.buffer),ln}function c(){return Q.buffer!=Je&&Fn(Q.buffer),Ba}var u=typeof r!="undefined"?r:{},p={},d;for(d in u)u.hasOwnProperty(d)&&(p[d]=u[d]);var h=[],m="./this.program",f=function(w,S){throw S},g=!1,y=!1,b=!1,v=!1;g=typeof window=="object",y=typeof importScripts=="function",b=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v=!g&&!b&&!y;var x=u.ENVIRONMENT_IS_PTHREAD||!1;x&&(Je=u.buffer,ra=u.DYNAMIC_BASE,Ia=u.DYNAMICTOP_PTR);var N="";function T(w){return u.locateFile?u.locateFile(w,N):N+w}var C,F,$,P,B,W;if(b){y?N=ac().dirname(N)+"/":N=__dirname+"/",C=function(w,S){return B||(B=require("fs")),W||(W=ac()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},$=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S},process.argv.length>1&&(m=process.argv[1].replace(/\\/g,"/")),h=process.argv.slice(2),process.on("uncaughtException",function(w){if(!(w instanceof jw))throw w}),process.on("unhandledRejection",pr),f=function(w){process.exit(w)},u.inspect=function(){return"[Emscripten Module object]"};var G;try{G=wE()}catch(w){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),w}Worker=G.Worker}else v?(typeof read!="undefined"&&(C=function(w){return read(w)}),$=function(w){var S;return typeof readbuffer=="function"?new Uint8Array(readbuffer(w)):(S=read(w,"binary"),ke(typeof S=="object"),S)},typeof scriptArgs!="undefined"?h=scriptArgs:typeof arguments!="undefined"&&(h=arguments),typeof quit=="function"&&(f=function(w){quit(w)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(g||y)&&(y?N=self.location.href:document.currentScript&&(N=document.currentScript.src),typeof a!="undefined"&&a&&(N=a),N.indexOf("blob:")!==0?N=N.substr(0,N.lastIndexOf("/")+1):N="",b?(C=function(w,S){return B||(B=require("fs")),W||(W=ac()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},$=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S}):(C=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.send(null),S.responseText},y&&($=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.responseType="arraybuffer",S.send(null),new Uint8Array(S.response)}),F=function(w,S,R){var U=new XMLHttpRequest;U.open("GET",w,!0),U.responseType="arraybuffer",U.onload=function(){if(U.status==200||U.status==0&&U.response){S(U.response);return}R()},U.onerror=R,U.send(null)}),P=function(w){document.title=w});b&&typeof performance=="undefined"&&(performance=kE().performance);var q=u.print||console.log.bind(console),j=u.printErr||console.warn.bind(console);for(d in p)p.hasOwnProperty(d)&&(u[d]=p[d]);p=null,u.arguments&&(h=u.arguments),u.thisProgram&&(m=u.thisProgram),u.quit&&(f=u.quit);var X=Atomics.load,K=Atomics.store,ne=Atomics.compareExchange,J;u.wasmBinary&&(J=u.wasmBinary);var se;u.noExitRuntime&&(se=u.noExitRuntime),typeof WebAssembly!="object"&&j("no native wasm support detected");var Q,oe=new WebAssembly.Table({initial:171,maximum:171+0,element:"anyfunc"}),ae,pe=0,ue=0,ge=!1,ye=0;function ke(w,S){w||pr("Assertion failed: "+S)}function Se(w){var S=u["_"+w];return ke(S,"Cannot call unknown function "+w+", make sure it is exported"),S}function Ce(w,S,R,U,he){var le={string:function(jn){var Pr=0;if(jn!=null&&jn!==0){var nc=(jn.length<<2)+1;Pr=wo(nc),ot(jn,Pr,nc)}return Pr},array:function(jn){var Pr=wo(jn.length);return ct(jn,Pr),Pr}};function ie(jn){return S==="string"?Ve(jn):S==="boolean"?Boolean(jn):jn}var xe=Se(w),et=[],Mt=0;if(U)for(var rn=0;rn=U);){var le=w[S++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var ie=w[S++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|ie);continue}var xe=w[S++]&63;if((le&240)==224?le=(le&15)<<12|ie<<6|xe:le=(le&7)<<18|ie<<12|xe<<6|w[S++]&63,le<65536)he+=String.fromCharCode(le);else{var et=le-65536;he+=String.fromCharCode(55296|et>>10,56320|et&1023)}}return he}function Ve(w,S){return w?Ke(i(),w,S):""}function rt(w,S,R,U){if(!(U>0))return 0;for(var he=R,le=R+U-1,ie=0;ie=55296&&xe<=57343){var et=w.charCodeAt(++ie);xe=65536+((xe&1023)<<10)|et&1023}if(xe<=127){if(R>=le)break;S[R++]=xe}else if(xe<=2047){if(R+1>=le)break;S[R++]=192|xe>>6,S[R++]=128|xe&63}else if(xe<=65535){if(R+2>=le)break;S[R++]=224|xe>>12,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}else{if(R+3>=le)break;S[R++]=240|xe>>18,S[R++]=128|xe>>12&63,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}}return S[R]=0,R-he}function ot(w,S,R){return rt(w,i(),S,R)}function He(w){for(var S=0,R=0;R=55296&&U<=57343&&(U=65536+((U&1023)<<10)|w.charCodeAt(++R)&1023),U<=127?++S:U<=2047?S+=2:U<=65535?S+=3:S+=4}return S}function ct(w,S){s().set(w,S)}var pt=65536;function Gn(w,S){return w%S>0&&(w+=S-w%S),w}var Je,En,Qt,An,na,xn,ln,aa,Ba;function Fn(w){Je=w,u.HEAP8=En=new Int8Array(w),u.HEAP16=An=new Int16Array(w),u.HEAP32=xn=new Int32Array(w),u.HEAPU8=Qt=new Uint8Array(w),u.HEAPU16=na=new Uint16Array(w),u.HEAPU32=ln=new Uint32Array(w),u.HEAPF32=aa=new Float32Array(w),u.HEAPF64=Ba=new Float64Array(w)}var po=5256464,zu=po,ka=13584,ra=5256464,Ia=12656,ho=u.INITIAL_MEMORY||16777216;if(x)Q=u.wasmMemory,Je=u.buffer;else if(u.wasmMemory)Q=u.wasmMemory;else if(Q=new WebAssembly.Memory({initial:ho/pt,maximum:2147483648/pt,shared:!0}),!(Q.buffer instanceof SharedArrayBuffer))throw j("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),b&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Q&&(Je=Q.buffer),ho=Je.byteLength,Fn(Je),x||(o()[Ia>>2]=ra);function mo(w){for(;w.length>0;){var S=w.shift();if(typeof S=="function"){S(u);continue}var R=S.func;typeof R=="number"?S.arg===void 0?u.dynCall_v(R):u.dynCall_vi(R,S.arg):R(S.arg===void 0?null:S.arg)}}var ys=[],Bu=[],Rf=[],Wu=[],Up=[],Vu=!1;x&&(Vu=!0);function sa(){if(!x){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)Of(u.preRun.shift());mo(ys)}}function Gp(){Vu=!0,mo(Bu)}function Mf(){x||mo(Rf)}function Pf(){if(!x){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)bs(u.postRun.shift());mo(Up)}}function Of(w){ys.unshift(w)}function bs(w){Up.unshift(w)}var fo=Math.ceil,Lf=Math.floor,cr=0,Uu=null,xs=null;function zf(w){ke(!x,"addRunDependency cannot be used in a pthread worker"),cr++,u.monitorRunDependencies&&u.monitorRunDependencies(cr)}function Bf(w){if(cr--,u.monitorRunDependencies&&u.monitorRunDependencies(cr),cr==0&&(Uu!==null&&(clearInterval(Uu),Uu=null),xs)){var S=xs;xs=null,S()}}u.preloadedImages={},u.preloadedAudios={};function pr(w){throw u.onAbort&&u.onAbort(w),x&&console.error("Pthread aborting at "+new Error().stack),w+="",q(w),j(w),ge=!0,ye=1,w="abort("+w+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(w)}function Gu(w,S){return String.prototype.startsWith?w.startsWith(S):w.indexOf(S)===0}var Wf="data:application/octet-stream;base64,";function Hp(w){return Gu(w,Wf)}var Vf="file://";function jp(w){return Gu(w,Vf)}var ia="tfjs-backend-wasm-threaded-simd.wasm";Hp(ia)||(ia=T(ia));function qp(){try{if(J)return new Uint8Array(J);if($)return $(ia);throw"both async and sync fetching of the wasm failed"}catch(w){pr(w)}}function Uf(){return!J&&(g||y)&&typeof fetch=="function"&&!jp(ia)?fetch(ia,{credentials:"same-origin"}).then(function(w){if(!w.ok)throw"failed to load wasm binary file at '"+ia+"'";return w.arrayBuffer()}).catch(function(){return qp()}):new Promise(function(w,S){w(qp())})}function Gf(){var w={a:Mg};function S(ie,xe){var et=ie.exports;if(u.asm=et,ae=xe,!x){var Mt=me.unusedWorkers.length;me.unusedWorkers.forEach(function(rn){me.loadWasmModuleToWorker(rn,function(){--Mt||Bf("wasm-instantiate")})})}}x||zf("wasm-instantiate");function R(ie){S(ie.instance,ie.module)}function U(ie){return Uf().then(function(xe){return WebAssembly.instantiate(xe,w)}).then(ie,function(xe){j("failed to asynchronously prepare wasm: "+xe),pr(xe)})}function he(){if(!J&&typeof WebAssembly.instantiateStreaming=="function"&&!Hp(ia)&&!jp(ia)&&typeof fetch=="function")fetch(ia,{credentials:"same-origin"}).then(function(ie){var xe=WebAssembly.instantiateStreaming(ie,w);return xe.then(R,function(et){j("wasm streaming compile failed: "+et),j("falling back to ArrayBuffer instantiation"),U(R)})});else return U(R)}if(u.instantiateWasm)try{var le=u.instantiateWasm(w,S);return le}catch(ie){return j("Module.instantiateWasm callback failed with error: "+ie),!1}return he(),{}}var Hf={};function jf(){me.initRuntime()}x||Bu.push({func:function(){sd()}});var Kp=0,Xp=0,Yp=0;function go(w,S,R){w=w|0,S=S|0,R=R|0,Kp=w,Yp=S,Xp=R}u.__register_pthread_ptr=go;var Hu={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},yo=13568;function bo(w,S){if(w<=0||w>s().length||w&!0||S<0)return-28;if(S==0)return 0;S>=2147483647&&(S=Infinity);var R=Atomics.load(o(),yo>>2),U=0;if(R==w){var he=Atomics.compareExchange(o(),yo>>2,R,0);if(he==R&&(--S,U=1,S<=0))return 1}var le=Atomics.notify(o(),w>>2,S);if(le>=0)return le+U;throw"Atomics.notify returned an unexpected value "+le}u._emscripten_futex_wake=bo;function qf(w){if(x)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _kill_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];S.worker.terminate(),me.freeThreadData(S),me.runningWorkers.splice(me.runningWorkers.indexOf(S.worker),1),S.worker.pthread=void 0}function Kf(w){if(x)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var S=me.pthreads[w];S.worker.postMessage({cmd:"cancel"})}function Xf(w){if(x)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];if(S){var R=S.worker;me.returnWorkerToPool(R)}}var me={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){go(me.mainThreadBlock,!y,1),Vw(me.mainThreadBlock)},initMainThreadBlock:function(){for(var w=8,S=0;S>2]=me.mainThreadBlock;var R=me.mainThreadBlock+156;o()[R>>2]=R;for(var U=13056,S=0;S<128;++S)l()[U/4+S]=0;Atomics.store(l(),me.mainThreadBlock+104>>2,U),Atomics.store(l(),me.mainThreadBlock+40>>2,me.mainThreadBlock),Atomics.store(l(),me.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(me.exitHandlers!==null){for(;me.exitHandlers.length>0;)me.exitHandlers.pop()();me.exitHandlers=null}x&&pe&&Ww()},threadExit:function(w){var S=Wa();S&&(Atomics.store(l(),S+4>>2,w),Atomics.store(l(),S+0>>2,1),Atomics.store(l(),S+60>>2,1),Atomics.store(l(),S+64>>2,0),me.runExitHandlers(),bo(S+0,2147483647),go(0,0,0),pe=0,x&&postMessage({cmd:"exit"}))},threadCancel:function(){me.runExitHandlers(),Atomics.store(l(),pe+4>>2,-1),Atomics.store(l(),pe+0>>2,1),bo(pe+0,2147483647),pe=ue=0,go(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var w in me.pthreads){var S=me.pthreads[w];S&&S.worker&&me.returnWorkerToPool(S.worker)}me.pthreads={};for(var R=0;R>2];o()[w.threadInfoStruct+104>>2]=0,Ju(S),Ju(w.threadInfoStruct)}w.threadInfoStruct=0,w.allocatedOwnStack&&w.stackBase&&Ju(w.stackBase),w.stackBase=0,w.worker&&(w.worker.pthread=null)}},returnWorkerToPool:function(w){delete me.pthreads[w.pthread.thread],me.unusedWorkers.push(w),me.runningWorkers.splice(me.runningWorkers.indexOf(w),1),me.freeThreadData(w.pthread),w.pthread=void 0},receiveObjectTransfer:function(w){},loadWasmModuleToWorker:function(w,S){w.onmessage=function(R){var U=R.data,he=U.cmd;if(w.pthread&&(me.currentProxiedOperationCallerThread=w.pthread.threadInfoStruct),U.targetThread&&U.targetThread!=Wa()){var le=me.pthreads[U.targetThread];le?le.worker.postMessage(R.data,U.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+U.targetThread+", but that thread no longer exists!"),me.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Lg();else if(he==="spawnThread")nd(R.data);else if(he==="cleanupThread")Xf(U.thread);else if(he==="killThread")qf(U.thread);else if(he==="cancelThread")Kf(U.thread);else if(he==="loaded")w.loaded=!0,S&&S(w),w.runPthread&&(w.runPthread(),delete w.runPthread);else if(he==="print")q("Thread "+U.threadId+": "+U.text);else if(he==="printErr")j("Thread "+U.threadId+": "+U.text);else if(he==="alert")alert("Thread "+U.threadId+": "+U.text);else if(he==="exit"){var ie=w.pthread&&Atomics.load(l(),w.pthread.thread+68>>2);ie&&me.returnWorkerToPool(w)}else he==="cancelDone"?me.returnWorkerToPool(w):he==="objectTransfer"?me.receiveObjectTransfer(R.data):R.data.target==="setimmediate"?w.postMessage(R.data):j("worker sent an unknown command "+he);me.currentProxiedOperationCallerThread=void 0},w.onerror=function(R){j("pthread sent an error! "+R.filename+":"+R.lineno+": "+R.message)},b&&(w.on("message",function(R){w.onmessage({data:R})}),w.on("error",function(R){w.onerror(R)}),w.on("exit",function(R){console.log("worker exited - TODO: update the worker queue?")})),w.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||a,wasmMemory:Q,wasmModule:ae,DYNAMIC_BASE:ra,DYNAMICTOP_PTR:Ia})},allocateUnusedWorker:function(){var w=T("tfjs-backend-wasm-threaded-simd.worker.js");me.unusedWorkers.push(new Worker(w))},getNewWorker:function(){return me.unusedWorkers.length==0&&(me.allocateUnusedWorker(),me.loadWasmModuleToWorker(me.unusedWorkers[0])),me.unusedWorkers.length>0?me.unusedWorkers.pop():null},busySpinWait:function(w){for(var S=performance.now()+w;performance.now()>2]=w,w}function tg(w,S){if(x)return Dr(1,1,w,S);Wu.unshift({func:w,arg:S})}function ng(w,S){if(w==S)postMessage({cmd:"processQueuedMainThreadWork"});else if(x)postMessage({targetThread:w,cmd:"processThreadQueue"});else{var R=me.pthreads[w],U=R&&R.worker;if(!U)return;U.postMessage({cmd:"processThreadQueue"})}return 1}function ag(){pr()}function rg(w,S){w=w|0,S=S|0}function sg(w,S,R){if(w<=0||w>s().length||w&!0)return-28;if(y){var U=Atomics.wait(o(),w>>2,S,R);if(U==="timed-out")return-73;if(U==="not-equal")return-6;if(U==="ok")return 0;throw"Atomics.wait returned an unexpected value "+U}else{var he=Atomics.load(o(),w>>2);if(S!=he)return-6;var le=performance.now(),ie=le+R;Atomics.store(o(),yo>>2,w);for(var xe=w;w==xe;){if(le=performance.now(),le>ie)return-73;Lg(),w=Atomics.load(o(),yo>>2)}return 0}}function ig(){return Yp|0}function og(){return Xp|0}function lg(w,S,R){i().copyWithin(w,S,S+R)}function ug(){return navigator.hardwareConcurrency}function Dr(w,S){for(var R=arguments.length-2,U=Qu(),he=wo(R*8),le=he>>3,ie=0;ie>3]),S+=8):(S=S+3&~3,R.push(o()[S>>2]),S+=4);return R}function cg(w,S,R){ws.length=S;for(var U=R>>3,he=0;he>>16),Fn(Q.buffer),1}catch(S){}}function hg(w){w=w>>>0;var S=pg();if(w<=S)return!1;var R=65536,U=2147483648;if(w>U)return!1;for(var he=16777216,le=1;le<=4;le*=2){var ie=S*(1+.2/le);ie=Math.min(ie,w+100663296);var xe=Math.min(U,Gn(Math.max(he,w,ie),R)),et=dg(xe);if(et)return!0}return!1}var Pe={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var w=Pe.eventHandlers.length-1;w>=0;--w)Pe._removeHandler(w);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(Wu.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(w,S,R){function U(ie,xe){if(ie.length!=xe.length)return!1;for(var et in ie)if(ie[et]!=xe[et])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==w&&U(le.argsList,R))return}Pe.deferredCalls.push({targetFunction:w,precedence:S,argsList:R}),Pe.deferredCalls.sort(function(ie,xe){return ie.precedence>2]=R,o()[ie+4>>2]=U,o()[ie+8>>2]=he,zg(w,637534208,S,U,ie),ko(le)},getTargetThreadForEventCallback:function(w){switch(w){case 1:return 0;case 2:return me.currentProxiedOperationCallerThread;default:return w}},getNodeNameForTarget:function(w){return w?w==window?"#window":w==screen?"#screen":w&&w.nodeName?w.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function mg(w){var S=He(w)+1,R=Zu(S);return ot(w,R,S),R}function fg(w,S,R,U){var he=Qu(),le=wo(12),ie=0;S&&(ie=mg(S)),o()[le>>2]=ie,o()[le+4>>2]=R,o()[le+8>>2]=U,zg(w,657457152,0,ie,le),ko(he)}function gg(w,S,R,U){S=S?Ve(S):"",fg(w,S,R,U)}function yg(w){return w>2?Ve(w):w}var bg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function xg(w){w=yg(w);var S=bg[w]||(typeof document!="undefined"?document.querySelector(w):void 0);return S}function ju(w){return xg(w)}function Zp(w,S,R){var U=ju(w);if(!U)return-4;if(U.canvasSharedPtr&&(o()[U.canvasSharedPtr>>2]=S,o()[U.canvasSharedPtr+4>>2]=R),U.offscreenCanvas||!U.controlTransferredOffscreen){U.offscreenCanvas&&(U=U.offscreenCanvas);var he=!1;if(U.GLctxObject&&U.GLctxObject.GLctx){var le=U.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===U.width&&le[3]===U.height}U.width=S,U.height=R,he&&U.GLctxObject.GLctx.viewport(0,0,S,R)}else if(U.canvasSharedPtr){var ie=o()[U.canvasSharedPtr+8>>2];return gg(ie,w,S,R),1}else return-4;return 0}function Jp(w,S,R){return x?Dr(2,1,w,S,R):Zp(w,S,R)}function vg(w,S,R){var U=ju(w);return U?Zp(w,S,R):Jp(w,S,R)}function wg(w){w=w|0}function kg(w,S){w=w|0,S=S|0}function Ig(w){var S=w.getExtension("ANGLE_instanced_arrays");if(S)return w.vertexAttribDivisor=function(R,U){S.vertexAttribDivisorANGLE(R,U)},w.drawArraysInstanced=function(R,U,he,le){S.drawArraysInstancedANGLE(R,U,he,le)},w.drawElementsInstanced=function(R,U,he,le,ie){S.drawElementsInstancedANGLE(R,U,he,le,ie)},1}function Ng(w){var S=w.getExtension("OES_vertex_array_object");if(S)return w.createVertexArray=function(){return S.createVertexArrayOES()},w.deleteVertexArray=function(R){S.deleteVertexArrayOES(R)},w.bindVertexArray=function(R){S.bindVertexArrayOES(R)},w.isVertexArray=function(R){return S.isVertexArrayOES(R)},1}function Tg(w){var S=w.getExtension("WEBGL_draw_buffers");if(S)return w.drawBuffers=function(R,U){S.drawBuffersWEBGL(R,U)},1}var Be={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var w=new Float32Array(Be.MINI_TEMP_BUFFER_SIZE),S=0;S>2]:-1;he+=Ve(o()[R+le*4>>2],ie<0?void 0:ie)}return he},createContext:function(w,S){var R=w.getContext("webgl",S);if(!R)return 0;var U=Be.registerContext(R,S);return U},registerContext:function(w,S){var R=Zu(8);o()[R+4>>2]=Wa();var U={handle:R,attributes:S,version:S.majorVersion,GLctx:w};return w.canvas&&(w.canvas.GLctxObject=U),Be.contexts[R]=U,(typeof S.enableExtensionsByDefault=="undefined"||S.enableExtensionsByDefault)&&Be.initExtensions(U),R},makeContextCurrent:function(w){return Be.currentContext=Be.contexts[w],u.ctx=Rr=Be.currentContext&&Be.currentContext.GLctx,!(w&&!Rr)},getContext:function(w){return Be.contexts[w]},deleteContext:function(w){Be.currentContext===Be.contexts[w]&&(Be.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(Be.contexts[w].GLctx.canvas),Be.contexts[w]&&Be.contexts[w].GLctx.canvas&&(Be.contexts[w].GLctx.canvas.GLctxObject=void 0),Ju(Be.contexts[w].handle),Be.contexts[w]=null},initExtensions:function(w){if(w||(w=Be.currentContext),!w.initExtensionsDone){w.initExtensionsDone=!0;var S=w.GLctx;Ig(S),Ng(S),Tg(S),S.disjointTimerQueryExt=S.getExtension("EXT_disjoint_timer_query");var R=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],U=S.getSupportedExtensions()||[];U.forEach(function(he){R.indexOf(he)!=-1&&S.getExtension(he)})}},populateUniformTable:function(w){for(var S=Be.programs[w],R=Be.programInfos[w]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},U=R.uniforms,he=Rr.getProgramParameter(S,35718),le=0;le>2;R.alpha=!!o()[U+(0>>2)],R.depth=!!o()[U+(4>>2)],R.stencil=!!o()[U+(8>>2)],R.antialias=!!o()[U+(12>>2)],R.premultipliedAlpha=!!o()[U+(16>>2)],R.preserveDrawingBuffer=!!o()[U+(20>>2)];var he=o()[U+(24>>2)];R.powerPreference=Sg[he],R.failIfMajorPerformanceCaveat=!!o()[U+(28>>2)],R.majorVersion=o()[U+(32>>2)],R.minorVersion=o()[U+(36>>2)],R.enableExtensionsByDefault=o()[U+(40>>2)],R.explicitSwapControl=o()[U+(44>>2)],R.proxyContextToMainThread=o()[U+(48>>2)],R.renderViaOffscreenBackBuffer=o()[U+(52>>2)];var le=ju(w);if(!le)return-4;if(R.explicitSwapControl)return-1;var ie=Be.createContext(le,R);return ie}function _g(w,S){return Cg(w,S)}var ks={splitPath:function(w){var S=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return S.exec(w).slice(1)},normalizeArray:function(w,S){for(var R=0,U=w.length-1;U>=0;U--){var he=w[U];he==="."?w.splice(U,1):he===".."?(w.splice(U,1),R++):R&&(w.splice(U,1),R--)}if(S)for(;R;R--)w.unshift("..");return w},normalize:function(w){var S=w.charAt(0)==="/",R=w.substr(-1)==="/";return w=ks.normalizeArray(w.split("/").filter(function(U){return!!U}),!S).join("/"),!w&&!S&&(w="."),w&&R&&(w+="/"),(S?"/":"")+w},dirname:function(w){var S=ks.splitPath(w),R=S[0],U=S[1];return!R&&!U?".":(U&&(U=U.substr(0,U.length-1)),R+U)},basename:function(w){if(w==="/")return"/";var S=w.lastIndexOf("/");return S===-1?w:w.substr(S+1)},extname:function(w){return ks.splitPath(w)[3]},join:function(){var w=Array.prototype.slice.call(arguments,0);return ks.normalize(w.join("/"))},join2:function(w,S){return ks.normalize(w+"/"+S)}},vo={mappings:{},buffers:[null,[],[]],printChar:function(w,S){var R=vo.buffers[w];S===0||S===10?((w===1?q:j)(Ke(R,0)),R.length=0):R.push(S)},varargs:void 0,get:function(){vo.varargs+=4;var w=o()[vo.varargs-4>>2];return w},getStr:function(w){var S=Ve(w);return S},get64:function(w,S){return w}};function Qp(w){return x?Dr(3,1,w):0}function ed(w,S,R,U,he){if(x)return Dr(4,1,w,S,R,U,he)}function td(w,S,R,U){if(x)return Dr(5,1,w,S,R,U);for(var he=0,le=0;le>2],xe=o()[S+(le*8+4)>>2],et=0;et>2]=he,0}function Eg(w){var S=me.exitHandlers.pop();w&&S()}function Ag(w,S){me.exitHandlers===null&&(me.exitHandlers=[]),me.exitHandlers.push(function(){Hw(w,S)})}function nd(w){if(x)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var S=me.getNewWorker();if(S.pthread!==void 0)throw"Internal error!";if(!w.pthread_ptr)throw"Internal error, no pthread ptr!";me.runningWorkers.push(S);for(var R=Zu(128*4),U=0;U<128;++U)o()[R+U*4>>2]=0;var he=w.stackBase+w.stackSize,le=me.pthreads[w.pthread_ptr]={worker:S,stackBase:w.stackBase,stackSize:w.stackSize,allocatedOwnStack:w.allocatedOwnStack,thread:w.pthread_ptr,threadInfoStruct:w.pthread_ptr},ie=le.threadInfoStruct>>2;Atomics.store(l(),ie+(0>>2),0),Atomics.store(l(),ie+(4>>2),0),Atomics.store(l(),ie+(8>>2),0),Atomics.store(l(),ie+(68>>2),w.detached),Atomics.store(l(),ie+(104>>2),R),Atomics.store(l(),ie+(48>>2),0),Atomics.store(l(),ie+(40>>2),le.threadInfoStruct),Atomics.store(l(),ie+(44>>2),42),Atomics.store(l(),ie+(108>>2),w.stackSize),Atomics.store(l(),ie+(84>>2),w.stackSize),Atomics.store(l(),ie+(80>>2),he),Atomics.store(l(),ie+(108+8>>2),he),Atomics.store(l(),ie+(108+12>>2),w.detached),Atomics.store(l(),ie+(108+20>>2),w.schedPolicy),Atomics.store(l(),ie+(108+24>>2),w.schedPrio);var xe=zw(),et=xe+40;Atomics.store(l(),ie+(176>>2),et),S.pthread=le;var Mt={cmd:"run",start_routine:w.startRoutine,arg:w.arg,threadInfoStruct:w.pthread_ptr,selfThreadId:w.pthread_ptr,parentThreadId:w.parent_pthread_ptr,stackBase:w.stackBase,stackSize:w.stackSize};S.runPthread=function(){Mt.time=performance.now(),S.postMessage(Mt,w.transferList)},S.loaded&&(S.runPthread(),delete S.runPthread)}function Fg(w,S,R){if(!S&&!R)return Hu.EINVAL;if(!w)return j("pthread_getschedparam called with a null thread pointer!"),Hu.ESRCH;var U=o()[w+12>>2];if(U!==w)return j("pthread_getschedparam attempted on thread "+w+", which does not point to a valid thread, or does not exist anymore!"),Hu.ESRCH;var he=Atomics.load(l(),w+108+20>>2),le=Atomics.load(l(),w+108+24>>2);return S&&(o()[S>>2]=he),R&&(o()[R>>2]=le),0}function Wa(){return Kp|0}u._pthread_self=Wa;function $g(w,S,R,U){if(typeof SharedArrayBuffer=="undefined")return j("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!w)return j("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(x&&(he.length===0||le))return Uw(687865856,w,S,R,U);if(le)return le;var ie=0,xe=0,et=0,Mt=0,rn=0;if(S){ie=o()[S>>2],ie+=81920,xe=o()[S+8>>2],et=o()[S+12>>2]!==0;var Io=o()[S+16>>2]===0;if(Io){var tc=o()[S+20>>2],jn=o()[S+24>>2],Pr=me.currentProxiedOperationCallerThread?me.currentProxiedOperationCallerThread:Wa();Fg(Pr,S+20,S+24),Mt=o()[S+20>>2],rn=o()[S+24>>2],o()[S+20>>2]=tc,o()[S+24>>2]=jn}else Mt=o()[S+20>>2],rn=o()[S+24>>2]}else ie=2097152;var nc=xe==0;nc?xe=Bw(16,ie):(xe-=ie,ke(xe>0));for(var No=Zu(232),Wg=0;Wg<232>>2;++Wg)l()[(No>>2)+Wg]=0;o()[w>>2]=No,o()[No+12>>2]=No;var qw=No+156;o()[qw>>2]=qw;var Vg={stackBase:xe,stackSize:ie,allocatedOwnStack:nc,schedPolicy:Mt,schedPrio:rn,detached:et,startRoutine:R,pthread_ptr:No,parent_pthread_ptr:Wa(),arg:U,transferList:he};return x?(Vg.cmd="spawnThread",postMessage(Vg,he)):nd(Vg),0}function Dg(w){return w=+w,w>=0?+Lf(w+.5):+fo(w-.5)}function ad(w){if(x)return Dr(6,1,w);switch(w){case 30:return 16384;case 85:var S=2147483648;return S/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return eg(28),-1}x?me.initWorker():me.initMainThreadBlock();var Rr;Be.init();var Rg=[null,tg,Jp,Qp,ed,td,ad],Mg={e:Jf,r:Qf,w:ng,a:ag,l:rg,d:sg,c:bo,h:vs,g:ig,x:og,q:lg,B:ug,t:cg,A:hg,u:vg,k:wg,s:kg,v:_g,m:Qp,o:ed,i:td,p:jf,memory:Q||u.wasmMemory,y:Eg,z:Ag,j:$g,b:Wa,f:Dg,n:ad,table:oe},rd=Gf();u.asm=rd;var sd=u.___wasm_call_ctors=function(){return(sd=u.___wasm_call_ctors=u.asm.C).apply(null,arguments)},id=u._init=function(){return(id=u._init=u.asm.D).apply(null,arguments)},qu=u._register_tensor=function(){return(qu=u._register_tensor=u.asm.E).apply(null,arguments)},od=u._dispose_data=function(){return(od=u._dispose_data=u.asm.F).apply(null,arguments)},Is=u._dispose=function(){return(Is=u._dispose=u.asm.G).apply(null,arguments)},Ku=u._Abs=function(){return(Ku=u._Abs=u.asm.H).apply(null,arguments)},Pg=u._Add=function(){return(Pg=u._Add=u.asm.I).apply(null,arguments)},Og=u._AddN=function(){return(Og=u._AddN=u.asm.J).apply(null,arguments)},Xu=u._ArgMax=function(){return(Xu=u._ArgMax=u.asm.K).apply(null,arguments)},ld=u._AvgPool=function(){return(ld=u._AvgPool=u.asm.L).apply(null,arguments)},ud=u._BatchMatMul=function(){return(ud=u._BatchMatMul=u.asm.M).apply(null,arguments)},V=u._Ceil=function(){return(V=u._Ceil=u.asm.N).apply(null,arguments)},te=u._ClipByValue=function(){return(te=u._ClipByValue=u.asm.O).apply(null,arguments)},Ie=u._Conv2D=function(){return(Ie=u._Conv2D=u.asm.P).apply(null,arguments)},_e=u._Conv2DBackpropInput=function(){return(_e=u._Conv2DBackpropInput=u.asm.Q).apply(null,arguments)},at=u._Cos=function(){return(at=u._Cos=u.asm.R).apply(null,arguments)},_t=u._CropAndResize=function(){return(_t=u._CropAndResize=u.asm.S).apply(null,arguments)},Xe=u._Cumsum=function(){return(Xe=u._Cumsum=u.asm.T).apply(null,arguments)},je=u._DepthToSpace=function(){return(je=u._DepthToSpace=u.asm.U).apply(null,arguments)},Ut=u._DepthwiseConv2dNative=function(){return(Ut=u._DepthwiseConv2dNative=u.asm.V).apply(null,arguments)},dr=u._Equal=function(){return(dr=u._Equal=u.asm.W).apply(null,arguments)},hr=u._Exp=function(){return(hr=u._Exp=u.asm.X).apply(null,arguments)},cd=u._FlipLeftRight=function(){return(cd=u._FlipLeftRight=u.asm.Y).apply(null,arguments)},Yu=u._Floor=function(){return(Yu=u._Floor=u.asm.Z).apply(null,arguments)},Hn=u._FloorDiv=function(){return(Hn=u._FloorDiv=u.asm._).apply(null,arguments)},Mr=u._FusedBatchNorm=function(){return(Mr=u._FusedBatchNorm=u.asm.$).apply(null,arguments)},pd=u._FusedConv2D=function(){return(pd=u._FusedConv2D=u.asm.aa).apply(null,arguments)},PC=u._FusedDepthwiseConv2D=function(){return(PC=u._FusedDepthwiseConv2D=u.asm.ba).apply(null,arguments)},OC=u._Gather=function(){return(OC=u._Gather=u.asm.ca).apply(null,arguments)},LC=u._GatherNd=function(){return(LC=u._GatherNd=u.asm.da).apply(null,arguments)},zC=u._Greater=function(){return(zC=u._Greater=u.asm.ea).apply(null,arguments)},BC=u._GreaterEqual=function(){return(BC=u._GreaterEqual=u.asm.fa).apply(null,arguments)},WC=u._LeakyRelu=function(){return(WC=u._LeakyRelu=u.asm.ga).apply(null,arguments)},VC=u._Less=function(){return(VC=u._Less=u.asm.ha).apply(null,arguments)},UC=u._LessEqual=function(){return(UC=u._LessEqual=u.asm.ia).apply(null,arguments)},GC=u._Log=function(){return(GC=u._Log=u.asm.ja).apply(null,arguments)},HC=u._LogicalAnd=function(){return(HC=u._LogicalAnd=u.asm.ka).apply(null,arguments)},jC=u._Max=function(){return(jC=u._Max=u.asm.la).apply(null,arguments)},qC=u._MaxPool=function(){return(qC=u._MaxPool=u.asm.ma).apply(null,arguments)},KC=u._Maximum=function(){return(KC=u._Maximum=u.asm.na).apply(null,arguments)},XC=u._Mean=function(){return(XC=u._Mean=u.asm.oa).apply(null,arguments)},YC=u._Min=function(){return(YC=u._Min=u.asm.pa).apply(null,arguments)},ZC=u._Minimum=function(){return(ZC=u._Minimum=u.asm.qa).apply(null,arguments)},JC=u._Multiply=function(){return(JC=u._Multiply=u.asm.ra).apply(null,arguments)},QC=u._Neg=function(){return(QC=u._Neg=u.asm.sa).apply(null,arguments)},e_=u._NonMaxSuppressionV3=function(){return(e_=u._NonMaxSuppressionV3=u.asm.ta).apply(null,arguments)},t_=u._NonMaxSuppressionV4=function(){return(t_=u._NonMaxSuppressionV4=u.asm.ua).apply(null,arguments)},n_=u._NonMaxSuppressionV5=function(){return(n_=u._NonMaxSuppressionV5=u.asm.va).apply(null,arguments)},a_=u._NotEqual=function(){return(a_=u._NotEqual=u.asm.wa).apply(null,arguments)},r_=u._OneHot=function(){return(r_=u._OneHot=u.asm.xa).apply(null,arguments)},s_=u._PadV2=function(){return(s_=u._PadV2=u.asm.ya).apply(null,arguments)},i_=u._Pow=function(){return(i_=u._Pow=u.asm.za).apply(null,arguments)},o_=u._Prelu=function(){return(o_=u._Prelu=u.asm.Aa).apply(null,arguments)},l_=u._Prod=function(){return(l_=u._Prod=u.asm.Ba).apply(null,arguments)},u_=u._RealDiv=function(){return(u_=u._RealDiv=u.asm.Ca).apply(null,arguments)},c_=u._Relu=function(){return(c_=u._Relu=u.asm.Da).apply(null,arguments)},p_=u._Relu6=function(){return(p_=u._Relu6=u.asm.Ea).apply(null,arguments)},d_=u._ResizeBilinear=function(){return(d_=u._ResizeBilinear=u.asm.Fa).apply(null,arguments)},h_=u._Reverse=function(){return(h_=u._Reverse=u.asm.Ga).apply(null,arguments)},m_=u._RotateWithOffset=function(){return(m_=u._RotateWithOffset=u.asm.Ha).apply(null,arguments)},f_=u._Round=function(){return(f_=u._Round=u.asm.Ia).apply(null,arguments)},g_=u._Rsqrt=function(){return(g_=u._Rsqrt=u.asm.Ja).apply(null,arguments)},y_=u._ScatterNd=function(){return(y_=u._ScatterNd=u.asm.Ka).apply(null,arguments)},b_=u._SelectV2=function(){return(b_=u._SelectV2=u.asm.La).apply(null,arguments)},x_=u._Sigmoid=function(){return(x_=u._Sigmoid=u.asm.Ma).apply(null,arguments)},v_=u._Sin=function(){return(v_=u._Sin=u.asm.Na).apply(null,arguments)},w_=u._Softmax=function(){return(w_=u._Softmax=u.asm.Oa).apply(null,arguments)},k_=u._Sqrt=function(){return(k_=u._Sqrt=u.asm.Pa).apply(null,arguments)},I_=u._Square=function(){return(I_=u._Square=u.asm.Qa).apply(null,arguments)},N_=u._SquaredDifference=function(){return(N_=u._SquaredDifference=u.asm.Ra).apply(null,arguments)},T_=u._Step=function(){return(T_=u._Step=u.asm.Sa).apply(null,arguments)},S_=u._StridedSlice=function(){return(S_=u._StridedSlice=u.asm.Ta).apply(null,arguments)},C_=u._Sub=function(){return(C_=u._Sub=u.asm.Ua).apply(null,arguments)},__=u._Sum=function(){return(__=u._Sum=u.asm.Va).apply(null,arguments)},E_=u._Tanh=function(){return(E_=u._Tanh=u.asm.Wa).apply(null,arguments)},A_=u._Tile=function(){return(A_=u._Tile=u.asm.Xa).apply(null,arguments)},F_=u._TopK=function(){return(F_=u._TopK=u.asm.Ya).apply(null,arguments)},$_=u._Transpose=function(){return($_=u._Transpose=u.asm.Za).apply(null,arguments)},D_=u.__FusedMatMul=function(){return(D_=u.__FusedMatMul=u.asm._a).apply(null,arguments)},Zu=u._malloc=function(){return(Zu=u._malloc=u.asm.$a).apply(null,arguments)},Ju=u._free=function(){return(Ju=u._free=u.asm.ab).apply(null,arguments)},Lw=u.___errno_location=function(){return(Lw=u.___errno_location=u.asm.bb).apply(null,arguments)},zw=u._emscripten_get_global_libc=function(){return(zw=u._emscripten_get_global_libc=u.asm.cb).apply(null,arguments)},R_=u.___em_js__initPthreadsJS=function(){return(R_=u.___em_js__initPthreadsJS=u.asm.db).apply(null,arguments)},Bw=u._memalign=function(){return(Bw=u._memalign=u.asm.eb).apply(null,arguments)},Ww=u.___pthread_tsd_run_dtors=function(){return(Ww=u.___pthread_tsd_run_dtors=u.asm.fb).apply(null,arguments)},Lg=u._emscripten_main_thread_process_queued_calls=function(){return(Lg=u._emscripten_main_thread_process_queued_calls=u.asm.gb).apply(null,arguments)},M_=u._emscripten_current_thread_process_queued_calls=function(){return(M_=u._emscripten_current_thread_process_queued_calls=u.asm.hb).apply(null,arguments)},Vw=u._emscripten_register_main_browser_thread_id=function(){return(Vw=u._emscripten_register_main_browser_thread_id=u.asm.ib).apply(null,arguments)},P_=u._emscripten_main_browser_thread_id=function(){return(P_=u._emscripten_main_browser_thread_id=u.asm.jb).apply(null,arguments)},O_=u._emscripten_async_run_in_main_thread=function(){return(O_=u._emscripten_async_run_in_main_thread=u.asm.kb).apply(null,arguments)},L_=u._emscripten_sync_run_in_main_thread=function(){return(L_=u._emscripten_sync_run_in_main_thread=u.asm.lb).apply(null,arguments)},z_=u._emscripten_sync_run_in_main_thread_0=function(){return(z_=u._emscripten_sync_run_in_main_thread_0=u.asm.mb).apply(null,arguments)},B_=u._emscripten_sync_run_in_main_thread_1=function(){return(B_=u._emscripten_sync_run_in_main_thread_1=u.asm.nb).apply(null,arguments)},W_=u._emscripten_sync_run_in_main_thread_2=function(){return(W_=u._emscripten_sync_run_in_main_thread_2=u.asm.ob).apply(null,arguments)},V_=u._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(V_=u._emscripten_sync_run_in_main_thread_xprintf_varargs=u.asm.pb).apply(null,arguments)},U_=u._emscripten_sync_run_in_main_thread_3=function(){return(U_=u._emscripten_sync_run_in_main_thread_3=u.asm.qb).apply(null,arguments)},Uw=u._emscripten_sync_run_in_main_thread_4=function(){return(Uw=u._emscripten_sync_run_in_main_thread_4=u.asm.rb).apply(null,arguments)},G_=u._emscripten_sync_run_in_main_thread_5=function(){return(G_=u._emscripten_sync_run_in_main_thread_5=u.asm.sb).apply(null,arguments)},H_=u._emscripten_sync_run_in_main_thread_6=function(){return(H_=u._emscripten_sync_run_in_main_thread_6=u.asm.tb).apply(null,arguments)},j_=u._emscripten_sync_run_in_main_thread_7=function(){return(j_=u._emscripten_sync_run_in_main_thread_7=u.asm.ub).apply(null,arguments)},Gw=u._emscripten_run_in_main_runtime_thread_js=function(){return(Gw=u._emscripten_run_in_main_runtime_thread_js=u.asm.vb).apply(null,arguments)},zg=u._emscripten_async_queue_on_thread_=function(){return(zg=u._emscripten_async_queue_on_thread_=u.asm.wb).apply(null,arguments)},q_=u._emscripten_tls_init=function(){return(q_=u._emscripten_tls_init=u.asm.xb).apply(null,arguments)},Qu=u.stackSave=function(){return(Qu=u.stackSave=u.asm.yb).apply(null,arguments)},wo=u.stackAlloc=function(){return(wo=u.stackAlloc=u.asm.zb).apply(null,arguments)},ko=u.stackRestore=function(){return(ko=u.stackRestore=u.asm.Ab).apply(null,arguments)},Hw=u.dynCall_vi=function(){return(Hw=u.dynCall_vi=u.asm.Bb).apply(null,arguments)},K_=u.dynCall_v=function(){return(K_=u.dynCall_v=u.asm.Cb).apply(null,arguments)},X_=u.dynCall_ii=function(){return(X_=u.dynCall_ii=u.asm.Db).apply(null,arguments)};u.asm=rd,u.cwrap=Re,u.PThread=me,u.PThread=me,u._pthread_self=Wa,u.wasmMemory=Q,u.ExitStatus=jw;var ec;u.then=function(w){if(ec)w(u);else{var S=u.onRuntimeInitialized;u.onRuntimeInitialized=function(){S&&S(),w(u)}}return u};function jw(w){this.name="ExitStatus",this.message="Program terminated with exit("+w+")",this.status=w}xs=function w(){ec||Bg(),ec||(xs=w)};function Bg(w){if(w=w||h,cr>0||(sa(),cr>0))return;function S(){ec||(ec=!0,u.calledRun=!0,!ge&&(Gp(),Mf(),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Pf()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),S()},1)):S()}if(u.run=Bg,u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return x||(se=!0),x||Bg(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),NE=un((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i={},o;for(o in s)s.hasOwnProperty(o)&&(i[o]=s[o]);var l=[],c="./this.program",u=function(V,te){throw te},p=!1,d=!1,h=!1,m=!1;p=typeof window=="object",d=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",m=!p&&!h&&!d;var f="";function g(V){return s.locateFile?s.locateFile(V,f):f+V}var y,b,v,x,N,T;h?(d?f=ac().dirname(f)+"/":f=__dirname+"/",y=function(V,te){return N||(N=require("fs")),T||(T=ac()),V=T.normalize(V),N.readFileSync(V,te?null:"utf8")},v=function(V){var te=y(V,!0);return te.buffer||(te=new Uint8Array(te)),j(te.buffer),te},process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),l=process.argv.slice(2),process.on("uncaughtException",function(V){if(!(V instanceof Ku))throw V}),process.on("unhandledRejection",ys),u=function(V){process.exit(V)},s.inspect=function(){return"[Emscripten Module object]"}):m?(typeof read!="undefined"&&(y=function(V){return read(V)}),v=function(V){var te;return typeof readbuffer=="function"?new Uint8Array(readbuffer(V)):(te=read(V,"binary"),j(typeof te=="object"),te)},typeof scriptArgs!="undefined"?l=scriptArgs:typeof arguments!="undefined"&&(l=arguments),typeof quit=="function"&&(u=function(V){quit(V)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(p||d)&&(d?f=self.location.href:document.currentScript&&(f=document.currentScript.src),a&&(f=a),f.indexOf("blob:")!==0?f=f.substr(0,f.lastIndexOf("/")+1):f="",y=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.send(null),te.responseText},d&&(v=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.responseType="arraybuffer",te.send(null),new Uint8Array(te.response)}),b=function(V,te,Ie){var _e=new XMLHttpRequest;_e.open("GET",V,!0),_e.responseType="arraybuffer",_e.onload=function(){if(_e.status==200||_e.status==0&&_e.response){te(_e.response);return}Ie()},_e.onerror=Ie,_e.send(null)},x=function(V){document.title=V});var C=s.print||console.log.bind(console),F=s.printErr||console.warn.bind(console);for(o in i)i.hasOwnProperty(o)&&(s[o]=i[o]);i=null,s.arguments&&(l=s.arguments),s.thisProgram&&(c=s.thisProgram),s.quit&&(u=s.quit);var $;s.wasmBinary&&($=s.wasmBinary);var P;s.noExitRuntime&&(P=s.noExitRuntime),typeof WebAssembly!="object"&&F("no native wasm support detected");var B,W=new WebAssembly.Table({initial:153,maximum:153+0,element:"anyfunc"}),G=!1,q=0;function j(V,te){V||ys("Assertion failed: "+te)}function X(V){var te=s["_"+V];return j(te,"Cannot call unknown function "+V+", make sure it is exported"),te}function K(V,te,Ie,_e,at){var _t={string:function(Hn){var Mr=0;if(Hn!=null&&Hn!==0){var pd=(Hn.length<<2)+1;Mr=qu(pd),ae(Hn,Mr,pd)}return Mr},array:function(Hn){var Mr=qu(Hn.length);return pe(Hn,Mr),Mr}};function Xe(Hn){return te==="string"?Q(Hn):te==="boolean"?Boolean(Hn):Hn}var je=X(V),Ut=[],dr=0;if(_e)for(var hr=0;hr<_e.length;hr++){var cd=_t[Ie[hr]];cd?(dr===0&&(dr=id()),Ut[hr]=cd(_e[hr])):Ut[hr]=_e[hr]}var Yu=je.apply(null,Ut);return Yu=Xe(Yu),dr!==0&&od(dr),Yu}function ne(V,te,Ie,_e){Ie=Ie||[];var at=Ie.every(function(Xe){return Xe==="number"}),_t=te!=="string";return _t&&at&&!_e?X(V):function(){return K(V,te,Ie,arguments,_e)}}var J=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function se(V,te,Ie){for(var _e=te+Ie,at=te;V[at]&&!(at>=_e);)++at;if(at-te>16&&V.subarray&&J)return J.decode(V.subarray(te,at));for(var _t="";te>10,56320|dr&1023)}}return _t}function Q(V,te){return V?se(ye,V,te):""}function oe(V,te,Ie,_e){if(!(_e>0))return 0;for(var at=Ie,_t=Ie+_e-1,Xe=0;Xe=55296&&je<=57343){var Ut=V.charCodeAt(++Xe);je=65536+((je&1023)<<10)|Ut&1023}if(je<=127){if(Ie>=_t)break;te[Ie++]=je}else if(je<=2047){if(Ie+1>=_t)break;te[Ie++]=192|je>>6,te[Ie++]=128|je&63}else if(je<=65535){if(Ie+2>=_t)break;te[Ie++]=224|je>>12,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}else{if(Ie+3>=_t)break;te[Ie++]=240|je>>18,te[Ie++]=128|je>>12&63,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}}return te[Ie]=0,Ie-at}function ae(V,te,Ie){return oe(V,ye,te,Ie)}function pe(V,te){ge.set(V,te)}var ue,ge,ye,ke,Se,Ce,Re,Ke,Ve;function rt(V){ue=V,s.HEAP8=ge=new Int8Array(V),s.HEAP16=ke=new Int16Array(V),s.HEAP32=Ce=new Int32Array(V),s.HEAPU8=ye=new Uint8Array(V),s.HEAPU16=Se=new Uint16Array(V),s.HEAPU32=Re=new Uint32Array(V),s.HEAPF32=Ke=new Float32Array(V),s.HEAPF64=Ve=new Float64Array(V)}var ot=s.INITIAL_MEMORY||16777216;function He(V){for(;V.length>0;){var te=V.shift();if(typeof te=="function"){te(s);continue}var Ie=te.func;typeof Ie=="number"?te.arg===void 0?s.dynCall_v(Ie):s.dynCall_vi(Ie,te.arg):Ie(te.arg===void 0?null:te.arg)}}var ct=[],pt=[],Gn=[],Je=[],En=!1,Qt=!1;function An(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Ba(s.preRun.shift());He(ct)}function na(){En=!0,He(pt)}function xn(){He(Gn)}function ln(){Qt=!0}function aa(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Fn(s.postRun.shift());He(Je)}function Ba(V){ct.unshift(V)}function Fn(V){Je.unshift(V)}var po=Math.ceil,zu=Math.floor,ka=0,ra=null,Ia=null;function ho(V){ka++,s.monitorRunDependencies&&s.monitorRunDependencies(ka)}function mo(V){if(ka--,s.monitorRunDependencies&&s.monitorRunDependencies(ka),ka==0&&(ra!==null&&(clearInterval(ra),ra=null),Ia)){var te=Ia;Ia=null,te()}}s.preloadedImages={},s.preloadedAudios={};function ys(V){throw s.onAbort&&s.onAbort(V),V+="",C(V),F(V),G=!0,q=1,V="abort("+V+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(V)}function Bu(V,te){return String.prototype.startsWith?V.startsWith(te):V.indexOf(te)===0}var Rf="data:application/octet-stream;base64,";function Wu(V){return Bu(V,Rf)}var Up="file://";function Vu(V){return Bu(V,Up)}var sa="tfjs-backend-wasm.wasm";Wu(sa)||(sa=g(sa));function Gp(){try{if($)return new Uint8Array($);if(v)return v(sa);throw"both async and sync fetching of the wasm failed"}catch(V){ys(V)}}function Mf(){return!$&&(p||d)&&typeof fetch=="function"&&!Vu(sa)?fetch(sa,{credentials:"same-origin"}).then(function(V){if(!V.ok)throw"failed to load wasm binary file at '"+sa+"'";return V.arrayBuffer()}).catch(function(){return Gp()}):new Promise(function(V,te){V(Gp())})}function Pf(){var V={env:pr,wasi_snapshot_preview1:pr};function te(Xe,je){var Ut=Xe.exports;s.asm=Ut,B=Ut.memory,rt(B.buffer),mo("wasm-instantiate")}ho("wasm-instantiate");function Ie(Xe){te(Xe.instance)}function _e(Xe){return Mf().then(function(je){return WebAssembly.instantiate(je,V)}).then(Xe,function(je){F("failed to asynchronously prepare wasm: "+je),ys(je)})}function at(){if(!$&&typeof WebAssembly.instantiateStreaming=="function"&&!Wu(sa)&&!Vu(sa)&&typeof fetch=="function")fetch(sa,{credentials:"same-origin"}).then(function(Xe){var je=WebAssembly.instantiateStreaming(Xe,V);return je.then(Ie,function(Ut){F("wasm streaming compile failed: "+Ut),F("falling back to ArrayBuffer instantiation"),_e(Ie)})});else return _e(Ie)}if(s.instantiateWasm)try{var _t=s.instantiateWasm(V,te);return _t}catch(Xe){return F("Module.instantiateWasm callback failed with error: "+Xe),!1}return at(),{}}pt.push();function Of(V){rt(B.buffer)}var bs={splitPath:function(V){var te=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return te.exec(V).slice(1)},normalizeArray:function(V,te){for(var Ie=0,_e=V.length-1;_e>=0;_e--){var at=V[_e];at==="."?V.splice(_e,1):at===".."?(V.splice(_e,1),Ie++):Ie&&(V.splice(_e,1),Ie--)}if(te)for(;Ie;Ie--)V.unshift("..");return V},normalize:function(V){var te=V.charAt(0)==="/",Ie=V.substr(-1)==="/";return V=bs.normalizeArray(V.split("/").filter(function(_e){return!!_e}),!te).join("/"),!V&&!te&&(V="."),V&&Ie&&(V+="/"),(te?"/":"")+V},dirname:function(V){var te=bs.splitPath(V),Ie=te[0],_e=te[1];return!Ie&&!_e?".":(_e&&(_e=_e.substr(0,_e.length-1)),Ie+_e)},basename:function(V){if(V==="/")return"/";var te=V.lastIndexOf("/");return te===-1?V:V.substr(te+1)},extname:function(V){return bs.splitPath(V)[3]},join:function(){var V=Array.prototype.slice.call(arguments,0);return bs.normalize(V.join("/"))},join2:function(V,te){return bs.normalize(V+"/"+te)}},fo={mappings:{},buffers:[null,[],[]],printChar:function(V,te){var Ie=fo.buffers[V];te===0||te===10?((V===1?C:F)(se(Ie,0)),Ie.length=0):Ie.push(te)},varargs:void 0,get:function(){fo.varargs+=4;var V=Ce[fo.varargs-4>>2];return V},getStr:function(V){var te=Q(V);return te},get64:function(V,te){return V}};function Lf(V){return 0}function cr(V,te,Ie,_e,at){}function Uu(V,te,Ie,_e){for(var at=0,_t=0;_t>2],je=Ce[te+(_t*8+4)>>2],Ut=0;Ut>2]=at,0}function xs(V){ld(V)}function zf(V){xs(V)}function Bf(V){return V=+V,V>=0?+zu(V+.5):+po(V-.5)}var pr={emscripten_notify_memory_growth:Of,fd_close:Lf,fd_seek:cr,fd_write:Uu,proc_exit:zf,roundf:Bf},Gu=Pf();s.asm=Gu;var Wf=s._init=function(){return(Wf=s._init=s.asm.init).apply(null,arguments)},Hp=s._register_tensor=function(){return(Hp=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},Vf=s._dispose_data=function(){return(Vf=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},jp=s._dispose=function(){return(jp=s._dispose=s.asm.dispose).apply(null,arguments)},ia=s._Abs=function(){return(ia=s._Abs=s.asm.Abs).apply(null,arguments)},qp=s._Add=function(){return(qp=s._Add=s.asm.Add).apply(null,arguments)},Uf=s._AddN=function(){return(Uf=s._AddN=s.asm.AddN).apply(null,arguments)},Gf=s._ArgMax=function(){return(Gf=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Hf=s._AvgPool=function(){return(Hf=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},jf=s._BatchMatMul=function(){return(jf=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Kp=s._Ceil=function(){return(Kp=s._Ceil=s.asm.Ceil).apply(null,arguments)},Xp=s._ClipByValue=function(){return(Xp=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Yp=s._Conv2D=function(){return(Yp=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},go=s._Conv2DBackpropInput=function(){return(go=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Hu=s._Cos=function(){return(Hu=s._Cos=s.asm.Cos).apply(null,arguments)},yo=s._CropAndResize=function(){return(yo=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},bo=s._Cumsum=function(){return(bo=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},qf=s._DepthToSpace=function(){return(qf=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Kf=s._DepthwiseConv2dNative=function(){return(Kf=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Xf=s._Equal=function(){return(Xf=s._Equal=s.asm.Equal).apply(null,arguments)},me=s._Exp=function(){return(me=s._Exp=s.asm.Exp).apply(null,arguments)},Yf=s._FlipLeftRight=function(){return(Yf=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Zf=s._Floor=function(){return(Zf=s._Floor=s.asm.Floor).apply(null,arguments)},Jf=s._FloorDiv=function(){return(Jf=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Qf=s._FusedBatchNorm=function(){return(Qf=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},vs=s._FusedConv2D=function(){return(vs=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},eg=s._FusedDepthwiseConv2D=function(){return(eg=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},tg=s._Gather=function(){return(tg=s._Gather=s.asm.Gather).apply(null,arguments)},ng=s._GatherNd=function(){return(ng=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},ag=s._Greater=function(){return(ag=s._Greater=s.asm.Greater).apply(null,arguments)},rg=s._GreaterEqual=function(){return(rg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},sg=s._LeakyRelu=function(){return(sg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},ig=s._Less=function(){return(ig=s._Less=s.asm.Less).apply(null,arguments)},og=s._LessEqual=function(){return(og=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},lg=s._Log=function(){return(lg=s._Log=s.asm.Log).apply(null,arguments)},ug=s._LogicalAnd=function(){return(ug=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Dr=s._Max=function(){return(Dr=s._Max=s.asm.Max).apply(null,arguments)},ws=s._MaxPool=function(){return(ws=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},xo=s._Maximum=function(){return(xo=s._Maximum=s.asm.Maximum).apply(null,arguments)},cg=s._Mean=function(){return(cg=s._Mean=s.asm.Mean).apply(null,arguments)},pg=s._Min=function(){return(pg=s._Min=s.asm.Min).apply(null,arguments)},dg=s._Minimum=function(){return(dg=s._Minimum=s.asm.Minimum).apply(null,arguments)},hg=s._Multiply=function(){return(hg=s._Multiply=s.asm.Multiply).apply(null,arguments)},Pe=s._Neg=function(){return(Pe=s._Neg=s.asm.Neg).apply(null,arguments)},mg=s._NonMaxSuppressionV3=function(){return(mg=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},fg=s._NonMaxSuppressionV4=function(){return(fg=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},gg=s._NonMaxSuppressionV5=function(){return(gg=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},yg=s._NotEqual=function(){return(yg=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},bg=s._OneHot=function(){return(bg=s._OneHot=s.asm.OneHot).apply(null,arguments)},xg=s._PadV2=function(){return(xg=s._PadV2=s.asm.PadV2).apply(null,arguments)},ju=s._Pow=function(){return(ju=s._Pow=s.asm.Pow).apply(null,arguments)},Zp=s._Prelu=function(){return(Zp=s._Prelu=s.asm.Prelu).apply(null,arguments)},Jp=s._Prod=function(){return(Jp=s._Prod=s.asm.Prod).apply(null,arguments)},vg=s._RealDiv=function(){return(vg=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},wg=s._Relu=function(){return(wg=s._Relu=s.asm.Relu).apply(null,arguments)},kg=s._Relu6=function(){return(kg=s._Relu6=s.asm.Relu6).apply(null,arguments)},Ig=s._ResizeBilinear=function(){return(Ig=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Ng=s._Reverse=function(){return(Ng=s._Reverse=s.asm.Reverse).apply(null,arguments)},Tg=s._RotateWithOffset=function(){return(Tg=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Be=s._Round=function(){return(Be=s._Round=s.asm.Round).apply(null,arguments)},Sg=s._Rsqrt=function(){return(Sg=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Cg=s._ScatterNd=function(){return(Cg=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},_g=s._SelectV2=function(){return(_g=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},ks=s._Sigmoid=function(){return(ks=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},vo=s._Sin=function(){return(vo=s._Sin=s.asm.Sin).apply(null,arguments)},Qp=s._Softmax=function(){return(Qp=s._Softmax=s.asm.Softmax).apply(null,arguments)},ed=s._Sqrt=function(){return(ed=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},td=s._Square=function(){return(td=s._Square=s.asm.Square).apply(null,arguments)},Eg=s._SquaredDifference=function(){return(Eg=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Ag=s._Step=function(){return(Ag=s._Step=s.asm.Step).apply(null,arguments)},nd=s._StridedSlice=function(){return(nd=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Fg=s._Sub=function(){return(Fg=s._Sub=s.asm.Sub).apply(null,arguments)},Wa=s._Sum=function(){return(Wa=s._Sum=s.asm.Sum).apply(null,arguments)},$g=s._Tanh=function(){return($g=s._Tanh=s.asm.Tanh).apply(null,arguments)},Dg=s._Tile=function(){return(Dg=s._Tile=s.asm.Tile).apply(null,arguments)},ad=s._TopK=function(){return(ad=s._TopK=s.asm.TopK).apply(null,arguments)},Rr=s._Transpose=function(){return(Rr=s._Transpose=s.asm.Transpose).apply(null,arguments)},Rg=s.__FusedMatMul=function(){return(Rg=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Mg=s._malloc=function(){return(Mg=s._malloc=s.asm.malloc).apply(null,arguments)},rd=s._free=function(){return(rd=s._free=s.asm.free).apply(null,arguments)},sd=s.__start=function(){return(sd=s.__start=s.asm._start).apply(null,arguments)},id=s.stackSave=function(){return(id=s.stackSave=s.asm.stackSave).apply(null,arguments)},qu=s.stackAlloc=function(){return(qu=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},od=s.stackRestore=function(){return(od=s.stackRestore=s.asm.stackRestore).apply(null,arguments)};s.asm=Gu,s.cwrap=ne;var Is;s.then=function(V){if(Is)V(s);else{var te=s.onRuntimeInitialized;s.onRuntimeInitialized=function(){te&&te(),V(s)}}return s};function Ku(V){this.name="ExitStatus",this.message="Program terminated with exit("+V+")",this.status=V}var Pg=!1;Ia=function V(){Is||Xu(),Is||(Ia=V)};function Og(V){var te=s.__start;try{te();var Ie=0;ld(Ie,!0)}catch(at){if(at instanceof Ku)return;if(at=="unwind"){P=!0;return}else{var _e=at;at&&typeof at=="object"&&at.stack&&(_e=[at,at.stack]),F("exception thrown: "+_e),u(1,at)}}finally{Pg=!0}}function Xu(V){if(V=V||l,ka>0||(An(),ka>0))return;function te(){Is||(Is=!0,s.calledRun=!0,!G&&(na(),xn(),s.onRuntimeInitialized&&s.onRuntimeInitialized(),ud&&Og(V),aa()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),te()},1)):te()}s.run=Xu;function ld(V,te){te&&P&&V===0||(P||(G=!0,q=V,ln(),s.onExit&&s.onExit(V)),u(V,new Ku(V)))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();var ud=!0;return s.noInitialRun&&(ud=!1),P=!0,Xu(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),TE=1e-7,SE=1e-4,gd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},rc=class{refCount(e){return oa("refCount")}incRef(e){return oa("incRef")}timerAvailable(){return!0}time(e){return oa("time")}read(e){return oa("read")}readSync(e){return oa("readSync")}numDataIds(){return oa("numDataIds")}disposeData(e,t){return oa("disposeData")}write(e,t,n){return oa("write")}move(e,t,n,a,r){return oa("move")}memory(){return oa("memory")}floatPrecision(){return oa("floatPrecision")}epsilon(){return this.floatPrecision()===32?TE:SE}dispose(){return oa("dispose")}};function oa(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function Xw(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function CE(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function sc(e,t,n){return Math.max(e,Math.min(t,n))}function _E(e){return e%2==0?e:e+1}function EE(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function Ns(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Ts(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||on(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function OE(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function la(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>Gt(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function Yw(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:la(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function Zw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Jw(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function Qw(e,t){for(let n=0;nt+=n.length),t}function Or(e){return typeof e=="string"||e instanceof String}function n0(e){return typeof e=="boolean"}function a0(e){return typeof e=="number"}function yd(e){return Array.isArray(e)?yd(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":a0(e)?"float32":Or(e)?"string":n0(e)?"bool":"float32"}function Lr(e){return!!(e&&e.constructor&&e.call&&e.apply)}function bd(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function r0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return r0(0,e,t)}function Hg(e,t){let n=xd(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Co(e,new Float32Array(n));if(t==="int32")return Co(e,new Int32Array(n));if(t==="bool")return Co(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function jg(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function BE(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=UE(n,a)})}};function VE(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(GE(t,a[0],a[1]),a.join("="))),t}function GE(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function UE(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ee(){return Kg}var Kg=null;function HE(e){Kg=e}var Xg;function o0(){if(Xg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Xg=e}return Xg}function jE(){let e=o0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Yg(e,t){let n=jE();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var _o="Abs",Eo="Acos",Ao="Acosh",zr="Add",Ss="AddN",vd="All",wd="Any",Cs="ArgMax",oc="ArgMin",Fo="Asin",$o="Asinh",Do="Atan",Ro="Atanh",Mo="Atan2",_s="AvgPool",kd="AvgPoolGrad",lc="AvgPool3D",Id="AvgPool3DGrad",Es="BatchMatMul",uc="BatchToSpaceND",Nd="Bincount",l0="BroadcastTo",As="Cast",Fs="Ceil",Br="ClipByValue",Td="Complex",cc="ComplexAbs",Po="Concat",$s="Conv2D",Sd="Conv2DBackpropFilter",Ds="Conv2DBackpropInput",pc="Conv3D",Cd="Conv3DBackpropFilterV2",_d="Conv3DBackpropInputV2",Rs="Cos",Oo="Cosh",Ms="Cumsum",Lo="CropAndResize",Ed="DenseBincount",zo="DepthToSpace",Ps="DepthwiseConv2dNative",Ad="DepthwiseConv2dNativeBackpropFilter",Fd="DepthwiseConv2dNativeBackpropInput",$d="Diag",dc="Dilation2D",Dd="Dilation2DBackpropInput",Rd="Dilation2DBackpropFilter",Os="RealDiv",Bo="Elu",Md="EluGrad",Wo="Erf",Vo="Equal",Ls="Exp",Uo="ExpandDims",Go="Expm1",Pd="FFT",hc="Fill",Ho="FlipLeftRight",zs="Floor",Bs="FloorDiv",Ws="FusedBatchNorm",jo="GatherV2",qo="GatherNd",Ko="Greater",Vs="GreaterEqual",Us="Identity",Od="IFFT",Ld="Imag",Xo="IsFinite",Yo="IsInf",Zo="IsNan",Gs="LeakyRelu",Jo="Less",Qo="LessEqual",zd="LinSpace",Hs="Log",el="Log1p",tl="LogicalAnd",mc="LogicalNot",fc="LogicalOr",u0="LogSoftmax",gc="LRN",Bd="LRNGrad",js="Max",qs="Maximum",Ks="MaxPool",Wd="MaxPoolGrad",yc="MaxPool3D",Vd="MaxPool3DGrad",Ud="MaxPoolWithArgmax",Xs="Mean",Ys="Min",Zs="Minimum",bc="MirrorPad",nl="Mod",Gd="Multinomial",Js="Multiply",al="Neg",rl="NotEqual",sl="NonMaxSuppressionV3",il="NonMaxSuppressionV4",ol="NonMaxSuppressionV5",ll="OnesLike",Qs="OneHot",ul="Pack",ei="PadV2",qE="Pool",ti="Pow",ni="Prelu",cl="Prod",xc="Range",Hd="Real",pl="Reciprocal",ai="Relu",dl="Reshape",vc="ResizeNearestNeighbor",jd="ResizeNearestNeighborGrad",ri="ResizeBilinear",qd="ResizeBilinearGrad",si="Relu6",ii="Reverse",oi="Round",li="Rsqrt",hl="ScatterNd",ml="Select",fl="Selu",gl="Slice",ui="Sin",yl="Sinh",bl="Sign",ci="Sigmoid",xl="Softplus",pi="Sqrt",di="Sum",wc="SpaceToBatchND",vl="SplitV",hi="Softmax",mi="SquaredDifference",kc="Square",fi="Sub",Kd="SparseToDense",wl="StridedSlice",kl="Tan",gi="Tanh",Wr="Tile",Il="TopK",yi="Transpose",Xd="Unique",Nl="Unpack",Ic="UnsortedSegmentSum",Tl="ZerosLike",Vr="Step",Yd="FromPixels",Sl="RotateWithOffset",bi="_FusedMatMul",xi="FusedConv2D",vi="FusedDepthwiseConv2D",Cl=Yg("kernelRegistry",()=>new Map),Nc=Yg("gradRegistry",()=>new Map);function Zd(e,t){let n=Zg(e,t);return Cl.get(n)}function Jg(e){return Nc.get(e)}function Jd(e){let t=Cl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function Tc(e){let{kernelName:t,backendName:n}=e,a=Zg(t,n);Cl.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Cl.set(a,e)}function c0(e){let{kernelName:t}=e;Nc.has(t)&&ee().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Nc.set(t,e)}function KE(e,t){let n=Zg(e,t);if(!Cl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Cl.delete(n)}function XE(e){if(!Nc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Nc.delete(e)}function YE(e,t){Jd(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Tc(a)})}function Zg(e,t){return`${t}_${e}`}var k={};Oe(k,{arraysEqual:()=>mr,assert:()=>A,assertNonNegativeIntegerDimensions:()=>jg,assertNonNull:()=>Ns,assertShapesMatch:()=>sn,bytesFromStringArray:()=>t0,bytesPerElement:()=>Gg,checkConversionForErrors:()=>Qw,clamp:()=>sc,computeStrides:()=>So,createScalarValue:()=>ZE,createShuffledIndices:()=>ME,decodeString:()=>eh,distSquared:()=>FE,encodeString:()=>Cc,fetch:()=>JE,flatten:()=>Ts,getArrayFromDType:()=>Jw,getTypedArrayFromDType:()=>Zw,hasEncodingLoss:()=>LE,indexToLoc:()=>WE,inferDtype:()=>yd,inferFromImplicitShape:()=>OE,isBoolean:()=>n0,isFunction:()=>Lr,isInt:()=>Gt,isNumber:()=>a0,isPromise:()=>qg,isScalarShape:()=>$E,isString:()=>Or,isTypedArray:()=>on,isValidDtype:()=>e0,locToIndex:()=>BE,makeOnesTypedArray:()=>Hg,makeZerosNestedTypedArray:()=>zE,makeZerosTypedArray:()=>xd,nearestDivisor:()=>bd,nearestLargerEven:()=>_E,now:()=>Sc,parseAxisParam:()=>la,randUniform:()=>AE,repeatedTry:()=>PE,rightPad:()=>ic,shuffle:()=>Xw,shuffleCombo:()=>CE,sizeFromShape:()=>Pt,sizeToSquarishShape:()=>RE,squeezeShape:()=>Yw,sum:()=>EE,tanh:()=>DE,toNestedArray:()=>Co,toTypedArray:()=>Qd});function ZE(e,t){return t==="string"?Cc(e):Qd([e],t)}function QE(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Qd(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Ts(e)),ee().getBool("DEBUG")&&Qw(e,t),QE(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Sc();if(this.backendTimer.timerAvailable()?s=this.backendTimer.time(r):(r(),a.map(o=>o.dataSync()),s=Promise.resolve({kernelMs:Sc()-i})),ee().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{eA(c,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function eA(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${u} %c${c} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function aA(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[c.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let c=e[l],u=c.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let c=e[l.id];c!=null?i.push(c):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let c=n(()=>o[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);let u=s.inputs[l];if(!mr(c.shape,u.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${u.shape}'`);if(e[u.id]==null)e[u.id]=c;else{let p=e[u.id];e[u.id]=a(p,c),p.dispose()}}}}var p0=20,_c=3,Qg=7;function iA(e,t,n,a){let r=So(t),s=sA(e,t,n,r),i=t.length,o=th(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(c=>" "+c).join(` `)),l.join(` -`)}function QE(e,t,n,a){let r=Pt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Ac(e):e;if(o>1)for(let c=0;ci0){let g=_c*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-_c)*i,o*i));return n==="complex64"&&(y=Ac(y),b=Ac(b)),["["+y.map((v,x)=>Ec(v,r[x],n)).join(", ")+", ..., "+b.map((v,x)=>Ec(v,r[o-_c+x],n)).join(", ")+"]"]}let f=n==="complex64"?Ac(e):Array.from(e);return["["+f.map((g,y)=>Ec(g,r[y],n)).join(", ")+"]"]}let c=t.slice(1),u=a.slice(1),p=a[0]*i,d=[];if(o>i0){for(let f=0;f<_c;f++){let g=f*p,y=g+p;d.push(...Jd(e.slice(g,y),c,n,u,r,!1))}d.push("...");for(let f=o-_c;f1)for(let c=0;cp0){let g=_c*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-_c)*i,o*i));return n==="complex64"&&(y=Ac(y),b=Ac(b)),["["+y.map((v,x)=>Ec(v,r[x],n)).join(", ")+", ..., "+b.map((v,x)=>Ec(v,r[o-_c+x],n)).join(", ")+"]"]}let f=n==="complex64"?Ac(e):Array.from(e);return["["+f.map((g,y)=>Ec(g,r[y],n)).join(", ")+"]"]}let c=t.slice(1),u=a.slice(1),p=a[0]*i,d=[];if(o>p0){for(let f=0;f<_c;f++){let g=f*p,y=g+p;d.push(...th(e.slice(g,y),c,n,u,r,!1))}d.push("...");for(let f=o-_c;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||jw(t,this.size),this.strides=No(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aZd(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Va().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Zd(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Va().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Va().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return _l.print(this,e)}clone(){return this.throwIfDisposed(),_l.clone(this)}toString(e=!1){let t=this.dataSync();return eA(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),_l.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Va().makeVariable(this,e,t,n)}};Object.defineProperty(Ae,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return jg("Tensor",()=>Ae)}Y();var Vr=class extends Ae{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!hr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Va().disposeTensor(this),this.dataId=e.dataId,Va().incRef(this,null)}dispose(){Va().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Vr,Symbol.hasInstance,{value:e=>e instanceof Ae&&e.assign!=null&&e.assign instanceof Function});var Ia={};Oe(Ia,{assertTypesMatch:()=>l0,getTensorsInContainer:()=>Zg,isTensorInList:()=>sA,makeTypesMatch:()=>Nt});var Jg;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Jg||(Jg={}));var Qg;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Qg||(Qg={}));var ey;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(ey||(ey={}));var ty;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(ty||(ty={}));var ny;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(ny||(ny={}));var iA={float32:ty,int32:Qg,bool:ey,complex64:ny};function la(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return iA[e][t]}function Qd(e){return la(e,"int32")}function Nt(e,t){if(e.dtype===t.dtype)return[e,t];let n=la(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function l0(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function sA(e,t){return t.some(n=>n.id===e.id)}function Zg(e){let t=[],n=new Set;return u0(e,t,n),t}function u0(e,t,n){if(e==null)return;if(e instanceof Ae){t.push(e);return}if(!oA(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),u0(s,t,n))}}function oA(e){return Array.isArray(e)||typeof e=="object"}function ay(e){return e.kernelName!=null}var c0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Fc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new c0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Xd(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof sc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Fc.nextTensorId++}nextVariableId(){return Fc.nextVariableId++}clone(e){let t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return M.runKernel(As,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(Kd(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ay(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ay(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Kd(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let v=b.map(x=>{if(x.rank!=null)return x;let{dataId:N,shape:T,dtype:C}=x;return this.makeTensorFromDataId(N,T,C)});if(a){let x=this.getTensorsForGradient(h,m,v);n=this.saveTensorsForBackwardMode(x)}return v}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:c,attrs:u}=e,p=ay(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,c,t,p,n,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(h=>c[h]!=null?c[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Kg(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,c)=>s[c]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Pr(e[0])&&(r=e.map(o=>Cc(o)));let s=a.write(r,t,n),i=new Ae(t,n,s,this.nextTensorId());if(this.incRef(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=Yw(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Ae(t,n,e,this.nextTensorId());return this.incRef(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new Vr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}incRef(e,t){let n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,n===0){this.state.numDataBuffers++;let a=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(a=e.size*Xw(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:a,refCount:0}),this.state.numBytes+=a}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof Vr||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;let t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):(t.backend.decComplexRef(e.dataId),this.state.tensorInfo.get(e.dataId).refCount--)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Kg(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((c,u)=>{if(c==null){let p=n[u],d=gd(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return c}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Zg(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Ae,()=>"The result y returned by f() must be a tensor.");let s=ZE(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?lA(r.shape):n,JE(i,s,l=>this.tidy(l),uA);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(Or(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Ae),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Ae,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(Or(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),c=Array.isArray(l)?l:[l];A(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(c.every(p=>p instanceof Ae),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let u={};return c.forEach((p,d)=>{u[d]=()=>p}),u};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=Xg(),n=await this.backend.time(e);return n.wallMs=Xg()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new c0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Fc.nextTensorId=0;Fc.nextVariableId=0;function lA(e){let t=Wg(Pt(e),"float32");return M.makeTensor(t,e,"float32")}function p0(){let e=n0();if(e._tfengine==null){let t=new t0(e);e._tfengine=new Fc(t)}return zE(e._tfengine.ENV),nA(()=>e._tfengine),e._tfengine}var M=p0();function uA(e,t){let n={a:e,b:t};return M.runKernel(Lr,n)}var eh={};Oe(eh,{isBrowser:()=>d0,isMobile:()=>cA});function pA(){return typeof navigator!="undefined"&&navigator!=null}function cA(){if(pA()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function d0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Ua=ee();Ua.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Ua.registerFlag("IS_BROWSER",()=>d0());Ua.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Ua.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Ua.registerFlag("PROD",()=>!1);Ua.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Ua.getBool("DEBUG"));Ua.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Ua.registerFlag("IS_TEST",()=>!1);Ua.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function Ga(e,t){let n=e;if(on(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||on(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&ee().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&h0(e,a,[]),a}function h0(e,t,n){if(n=n||[],!Array.isArray(e)&&!on(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),m0(a,r,t,n),e==null||!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Ga(e,r);!on(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Yd(e,r):Ts(e,[],!0);return M.makeTensor(i,s,r)}function $c(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var f0="__op";function P(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+f0;let r=(...s)=>{M.startScope(n);try{let i=a(...s);return Ug(i)&&console.error("Cannot return a Promise inside of tidy."),M.endScope(i),i}catch(i){throw M.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function dA(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return M.runKernel(kd,r)}var Ur=P({complex_:dA});function Gr(e,t,n,a){if(a==null&&(a=md(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Vg(t);let r=Pt(t),s=Pt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!on(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Yd(e,a):Ts(e,[],!0),M.makeTensor(e,t,a)}function qn(e,t,n){let a=Ga(e,n);return Gr(e,t,a,n)}var ry={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},th=4;async function mA(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+th*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var sy=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function y0(e){return sy?Buffer.byteLength(e):new Blob([e]).size}function gA(e){if(sy)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function b0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function Dc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:y0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:y0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function bA(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function xA(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function vA(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function fA(){let e=bA(),t=xA(),n=vA();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var Et=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Et.instance==null&&(Et.instance=new Et),Et.instance}static registerSaveRouter(e){Et.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Et.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Et.getHandlers(e,"save")}static getLoadHandlers(e,t){return Et.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Et.getInstance().loadRouters:Et.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},wA=e=>Et.registerSaveRouter(e),kA=e=>Et.registerLoadRouter(e),IA=e=>Et.getSaveHandlers(e),NA=(e,t)=>Et.getLoadHandlers(e,t),oy="tensorflowjs",ly=1,xi="models_store",Hr="model_info_store";function x0(){if(!ee().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function uy(e){let t=e.result;t.createObjectStore(xi,{keyPath:"modelPath"}),t.createObjectStore(Hr,{keyPath:"modelPath"})}var vi=class{constructor(e){if(this.indexedDB=x0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(oy,ly);r.onupgradeneeded=()=>uy(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(xi,"readonly"),o=i.objectStore(xi).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Dc(t),o=s.transaction(Hr,"readwrite"),l=o.objectStore(Hr),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),u;c.onsuccess=()=>{u=s.transaction(xi,"readwrite");let p=u.objectStore(xi).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Hr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},c.onerror=p=>(s.close(),a(c.error)),o.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};vi.URL_SCHEME="indexeddb://";var v0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(vi.URL_SCHEME)?TA(e.slice(vi.URL_SCHEME.length)):null;Et.registerSaveRouter(v0);Et.registerLoadRouter(v0);function TA(e){return new vi(e)}function SA(e){return e.startsWith(vi.URL_SCHEME)?e.slice(vi.URL_SCHEME.length):e}var CA=class{constructor(){this.indexedDB=x0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(oy,ly);n.onupgradeneeded=()=>uy(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Hr,"readonly"),s=r.objectStore(Hr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=SA(e),new Promise((t,n)=>{let a=this.indexedDB.open(oy,ly);a.onupgradeneeded=()=>uy(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Hr,"readwrite"),i=s.objectStore(Hr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),u=()=>{l=r.transaction(xi,"readwrite");let p=l.objectStore(xi).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};c.onsuccess=u,c.onerror=p=>(u(),r.close(),n(o.error))}},o.onerror=c=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},mr="/",El="tensorflowjs_models",w0="info",_A="model_topology",EA="weight_specs",AA="weight_data",FA="model_metadata";function k0(e){return{info:[El,e,w0].join(mr),topology:[El,e,_A].join(mr),weightSpecs:[El,e,EA].join(mr),weightData:[El,e,AA].join(mr),modelMetadata:[El,e,FA].join(mr)}}function $A(e){let t=e.split(mr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(mr)}function DA(e){return e.startsWith(wi.URL_SCHEME)?e.slice(wi.URL_SCHEME.length):e}var wi=class{constructor(e){if(!ee().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=k0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Dc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,gA(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=yA(s),t}};wi.URL_SCHEME="localstorage://";var I0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(wi.URL_SCHEME)?RA(e.slice(wi.URL_SCHEME.length)):null;Et.registerSaveRouter(I0);Et.registerLoadRouter(I0);function RA(e){return new wi(e)}var MA=class{constructor(){A(ee().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=El+mr,n=mr+w0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Al)&&(e=e.slice(0,e.indexOf(Al))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Kn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function nh(e){if(e.indexOf(Al)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Kn.getSchemes().join(",")}`);return{scheme:e.split(Al)[0],path:e.split(Al)[1]}}async function N0(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Et.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Et.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=nh(e).scheme,l=nh(e).path,c=o===nh(e).scheme,u=await r.load();n&&c&&await Kn.getManager(o).removeModel(l);let p=await i.save(u);return n&&!c&&await Kn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function PA(){let e=Kn.getSchemes(),t={};for(let n of e){let a=await Kn.getManager(n).listModels();for(let r in a){let s=n+Al+r;t[s]=a[r]}}return t}async function OA(e){let t=nh(e);return Kn.getManager(t.scheme).removeModel(t.path)}async function LA(e,t){return N0(e,t,!1)}async function zA(e,t){return N0(e,t,!0)}var BA=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(ee().get("IS_BROWSER")){ee().setPlatform("browser",new BA);try{Kn.registerManager(wi.URL_SCHEME,new MA)}catch(e){}try{Kn.registerManager(vi.URL_SCHEME,new CA)}catch(e){}}var WA={importFetch:()=>sE()},cy,VA=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ee().global.fetch!=null?ee().global.fetch(e,t):(cy==null&&(cy=WA.importFetch()),cy(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};ee().get("IS_NODE")&&ee().setPlatform("node",new VA);function Le(e,t="float32",n){return t=t||"float32",Vg(e),new Ot(e,t,n)}function UA(e,t){let n=E(e,"x","cast");if(!Kw(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return M.runKernel(As,a,r)}var ce=P({cast_:UA});function GA(e){let t={x:E(e,"x","clone","string_or_numeric")};return M.runKernel(Ko,t)}var jr=P({clone_:GA});function T0(e,t=!1){console.log(e.toString(t))}p0();var HA={buffer:Le,cast:ce,clone:jr,print:T0};aA(HA);var Ht={};Oe(Ht,{browserFiles:()=>jA,browserHTTPRequest:()=>KA,concatenateArrayBuffers:()=>iy,copyModel:()=>LA,decodeWeights:()=>g0,encodeWeights:()=>mA,fromMemory:()=>XA,getLoadHandlers:()=>NA,getModelArtifactsInfoForJSON:()=>Dc,getSaveHandlers:()=>IA,http:()=>dy,isHTTPScheme:()=>py,listModels:()=>PA,loadWeights:()=>qA,moveModel:()=>zA,registerLoadRouter:()=>kA,registerSaveRouter:()=>wA,removeModel:()=>OA,weightsLoaderFactory:()=>S0,withSaveHandler:()=>YA});var ZA="model",JA=".json",QA=".weights.bin";function C0(e){return new Promise(t=>setTimeout(t)).then(e)}var Fl=class{constructor(e){if(!ee().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Fl.URL_SCHEME)&&(e=e.slice(Fl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=ZA),this.modelTopologyFileName=e+JA,this.weightDataFileName=e+QA}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await C0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await C0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Dc(e)}}}};Fl.URL_SCHEME="downloads://";var eF=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let u=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),u.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let v={modelTopology:o,weightSpecs:u,weightData:iy(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(v.signature=i.signature),i.userDefinedMetadata!=null&&(v.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(v.modelInitializer=i.modelInitializer),n(v)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>b0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=b0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},nF=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Fl.URL_SCHEME)?tF(e.slice(Fl.URL_SCHEME.length)):null;Et.registerSaveRouter(nF);function tF(e="model"){return new Fl(e)}function jA(e){return new eF(e)}function _0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(c=>{let u=n+ ++r/e.length*(a-n);return t(u),c}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,c){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),A(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(s))}async function E0(e,t){t==null&&(t={});let n=t.fetchFunc==null?ee().platform.fetch:t.fetchFunc,a=e.map(c=>n(c,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await _0(a,t.onProgress,r,s)).map(c=>c.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await _0(i,t.onProgress,o,l)}async function qA(e,t="",n,a){return S0(r=>E0(r,{requestInit:a}))(e,t,n)}function S0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=ry[y]*Pt(g.shape),v=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((x,N)=>{x===g.name&&(v(),i[N]=!0)}):v(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),c=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;c.push(f)})});let u=await e(c),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let v=0;v{let x=g.slice(v.groupOffset,v.groupOffset+v.sizeBytes),N=g0(x,[v.manifestEntry]);for(let T in N)p[T]=N[T]}),d+=m}),p}}var aF="application/octet-stream",rF="application/json",hy=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=ee().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:rF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:aF}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Dc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,u;a!=null&&([c,u]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:c,weightData:u,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=sF(t),r=this.weightPathPrefix||n,s=[];for(let c of e)s.push(...c.weights);let i=[],o=[];for(let c of e)for(let u of c.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(u)):i.push(r+u+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await E0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,iy(l)]}};hy.URL_SCHEME_REGEX=/^https?:\/\//;function sF(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function py(e){return e.match(hy.URL_SCHEME_REGEX)!=null}var A0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>py(a)):n=py(e),n)return dy(e,t)}return null};Et.registerSaveRouter(A0);Et.registerLoadRouter(A0);function dy(e,t){return new hy(e,t)}function KA(e,t){return dy(e,t)}var my=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},iF=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function XA(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new my(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new my({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new my({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function YA(e){return new iF(e)}var F0={};Oe(F0,{confusionMatrix:()=>oF});function lF(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Nt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return M.runKernel(Es,i,o)}var ze=P({matMul_:lF});function uF(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:E(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return M.runKernel(Zs,r,s)}var $l=P({oneHot_:uF});function cF(e,t){let n=E(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{A(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return M.runKernel(fi,a,r)}var Ue=P({transpose_:cF});function pF(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=$l(ce(a,"int32"),n),i=$l(ce(r,"int32"),n),o=Ue(s),l=ze(o,i);return ce(l,"int32")}var oF=P({confusionMatrix_:pF}),ki={};Oe(ki,{fromPixels:()=>hF,toPixels:()=>dF});function ah(e,t,n){if(Ns(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=Ga(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Gr(e,t,a,n)}var Dl;function mF(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(Kd(qd,M.backendName)!=null){let d={pixels:e},h={numChannels:t};return M.runKernel(qd,d,h)}let[l,c]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],u;i?u=e.getContext("2d").getImageData(0,0,l,c).data:a||n?u=e.data:(s||r||o)&&(Dl==null&&(Dl=document.createElement("canvas").getContext("2d")),Dl.canvas.width=l,Dl.canvas.height=c,Dl.drawImage(e,0,0,l,c),u=Dl.getImageData(0,0,l,c).data);let p;if(t===4)p=new Int32Array(u);else{let d=l*c;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(u[0]=h*o,u[1]=h*o,u[2]=h*o):u[d]=h*o}let p=c*4;l[p+0]=Math.round(u[0]),l[p+1]=Math.round(u[1]),l[p+2]=Math.round(u[2]),l[p+3]=Math.round(u[3])}if(t!=null){t.width=r,t.height=a;let c=t.getContext("2d"),u=new ImageData(l,r,a);c.putImageData(u,0,0)}return n!==e&&n.dispose(),l}var hF=P({fromPixels_:mF}),fy={};Oe(fy,{prepareAndValidate:()=>$0});function $0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Pt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/c),1].slice(0,s);return[l,i,c,u]}var gy={};Oe(gy,{calculateShapes:()=>D0,validateInput:()=>by,validateUpdateShape:()=>yy});function yy(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pfF,computeFlatOffset:()=>yF,computeOutShape:()=>R0,getNormalizedAxes:()=>P0,isSliceContinous:()=>gF,maskToAxes:()=>rh,parseSliceParams:()=>V0,sliceInfo:()=>bF,startForAxis:()=>B0,startIndicesWithElidedDims:()=>O0,stopForAxis:()=>W0,stopIndicesWithElidedDims:()=>L0,stridesForAxis:()=>z0,stridesWithElidedDims:()=>M0});function fF(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function rh(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function R0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;u=O0(i,h,m,a,e),p=L0(o,h,m,r,e),d=M0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=U0(t,n,o),c=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=U0(t,n,o),c=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=ic(0,i,l-1),i}function W0(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=ic(0,i,l):i=ic(-1,i,l-1),i}function gF(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function yF(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function bF(e,t,n,a,r,s,i,o,l){let c=t.slice(),u=n.slice(),p=a;a==null&&(p=new Array(c.length));let d=rh(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-c.length,m=rh(o),f=e.slice();m.forEach(T=>{c[T]=0,u[T]=1,f.splice(T,0,1)});let{begin:g,end:y,strides:b}=P0(f,d,h,c,u,p,r,s,i);c=g,u=y,p=b;let v=rh(l);v.forEach(T=>{u[T]=c[T]+1,p[T]=1});let x=R0(c,u,p),N=x.filter((T,C)=>v.indexOf(C)===-1);return{nonStrided:p.every(T=>T===1),$begin:c,$end:u,$strides:p,size:x,newShape:f,outShape:N}}var re={};Oe(re,{Serializable:()=>H0,SerializationMap:()=>Ii,registerClass:()=>qr});var H0=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ii=class{constructor(){this.classNameMap={}}static getMap(){return Ii.instance==null&&(Ii.instance=new Ii),Ii.instance}static register(e){Ii.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function qr(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Ii.register(e)}var j0={};Oe(j0,{TEST_EPSILON_FLOAT16:()=>q0,encodeStrings:()=>K0,expectArrayBuffersEqual:()=>NF,expectArraysClose:()=>xF,expectArraysEqual:()=>wF,expectNumbersClose:()=>kF,expectPromiseToFail:()=>vF,expectValuesInRange:()=>IF,testEpsilon:()=>xy});var TF=.001,q0=.1;function xF(e,t,n){return n==null&&(n=xy()),vy(e,t,(a,r)=>wy(a,r,n))}function xy(){return M.backend.floatPrecision()===32?TF:q0}function vy(e,t,n){let a=!0;if((on(e)||on(t))&&(a=!1),on(e)&&on(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=Ga(e),o=Ga(t);if(!hr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=on(e)?e:Ts(e),s=on(t)?t:Ts(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return d[d.length-1]=" "+d[d.length-1]+"]"+(s?"":m),d}function Ac(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||Jw(t,this.size),this.strides=So(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aeh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Va().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>eh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Va().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Va().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return _l.print(this,e)}clone(){return this.throwIfDisposed(),_l.clone(this)}toString(e=!1){let t=this.dataSync();return iA(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),_l.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Va().makeVariable(this,e,t,n)}};Object.defineProperty(Ae,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return Yg("Tensor",()=>Ae)}Y();var Ur=class extends Ae{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!mr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Va().disposeTensor(this),this.dataId=e.dataId,Va().incRef(this,null)}dispose(){Va().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ur,Symbol.hasInstance,{value:e=>e instanceof Ae&&e.assign!=null&&e.assign instanceof Function});var Na={};Oe(Na,{assertTypesMatch:()=>h0,getTensorsInContainer:()=>ey,isTensorInList:()=>pA,makeTypesMatch:()=>Nt});var ty;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(ty||(ty={}));var ny;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(ny||(ny={}));var ay;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(ay||(ay={}));var ry;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(ry||(ry={}));var sy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(sy||(sy={}));var dA={float32:ry,int32:ny,bool:ay,complex64:sy};function ua(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return dA[e][t]}function nh(e){return ua(e,"int32")}function Nt(e,t){if(e.dtype===t.dtype)return[e,t];let n=ua(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function h0(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function pA(e,t){return t.some(n=>n.id===e.id)}function ey(e){let t=[],n=new Set;return m0(e,t,n),t}function m0(e,t,n){if(e==null)return;if(e instanceof Ae){t.push(e);return}if(!hA(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),m0(s,t,n))}}function hA(e){return Array.isArray(e)||typeof e=="object"}function iy(e){return e.kernelName!=null}var f0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Fc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new f0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Jd(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof rc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Fc.nextTensorId++}nextVariableId(){return Fc.nextVariableId++}clone(e){let t=M.runKernel(Us,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return M.runKernel(As,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(Zd(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=iy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(iy(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Zd(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let v=b.map(x=>{if(x.rank!=null)return x;let{dataId:N,shape:T,dtype:C}=x;return this.makeTensorFromDataId(N,T,C)});if(a){let x=this.getTensorsForGradient(h,m,v);n=this.saveTensorsForBackwardMode(x)}return v}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:c,attrs:u}=e,p=iy(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,c,t,p,n,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(h=>c[h]!=null?c[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Jg(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,c)=>s[c]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Or(e[0])&&(r=e.map(o=>Cc(o)));let s=a.write(r,t,n),i=new Ae(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=t0(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Ae(t,n,e,this.nextTensorId());return this.trackTensor(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new Ur(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Gg(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof Ur||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Gg(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Jg(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((c,u)=>{if(c==null){let p=n[u],d=xd(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return c}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=ey(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Ae,()=>"The result y returned by f() must be a tensor.");let s=aA(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?mA(r.shape):n,rA(i,s,l=>this.tidy(l),fA);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(Lr(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Ae),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Ae,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(Lr(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),c=Array.isArray(l)?l:[l];A(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(c.every(p=>p instanceof Ae),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let u={};return c.forEach((p,d)=>{u[d]=()=>p}),u};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=Sc(),n=await this.backend.time(e);return n.wallMs=Sc()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new f0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Fc.nextTensorId=0;Fc.nextVariableId=0;function mA(e){let t=Hg(Pt(e),"float32");return M.makeTensor(t,e,"float32")}function g0(){let e=o0();if(e._tfengine==null){let t=new i0(e);e._tfengine=new Fc(t)}return HE(e._tfengine.ENV),lA(()=>e._tfengine),e._tfengine}var M=g0();function fA(e,t){let n={a:e,b:t};return M.runKernel(zr,n)}var ah={};Oe(ah,{isBrowser:()=>y0,isMobile:()=>gA});function yA(){return typeof navigator!="undefined"&&navigator!=null}function gA(){if(yA()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function y0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Ua=ee();Ua.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Ua.registerFlag("IS_BROWSER",()=>y0());Ua.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Ua.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Ua.registerFlag("PROD",()=>!1);Ua.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Ua.getBool("DEBUG"));Ua.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Ua.registerFlag("IS_TEST",()=>!1);Ua.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function Ga(e,t){let n=e;if(on(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||on(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&ee().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&b0(e,a,[]),a}function b0(e,t,n){if(n=n||[],!Array.isArray(e)&&!on(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),x0(a,r,t,n),e==null||!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=Ga(e,r);!on(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Qd(e,r):Ts(e,[],!0);return M.makeTensor(i,s,r)}function $c(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var v0="__op";function O(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+v0;let r=(...s)=>{M.startScope(n);try{let i=a(...s);return qg(i)&&console.error("Cannot return a Promise inside of tidy."),M.endScope(i),i}catch(i){throw M.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function bA(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return M.runKernel(Td,r)}var Gr=O({complex_:bA});function Hr(e,t,n,a){if(a==null&&(a=yd(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){jg(t);let r=Pt(t),s=Pt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!on(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Qd(e,a):Ts(e,[],!0),M.makeTensor(e,t,a)}function qn(e,t,n){let a=Ga(e,n);return Hr(e,t,a,n)}var oy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},rh=4;async function vA(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+rh*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var ly=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function k0(e){return ly?Buffer.byteLength(e):new Blob([e]).size}function kA(e){if(ly)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function I0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function Dc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:k0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:k0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function NA(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function TA(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function SA(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function wA(){let e=NA(),t=TA(),n=SA();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var Et=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Et.instance==null&&(Et.instance=new Et),Et.instance}static registerSaveRouter(e){Et.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Et.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Et.getHandlers(e,"save")}static getLoadHandlers(e,t){return Et.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Et.getInstance().loadRouters:Et.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},CA=e=>Et.registerSaveRouter(e),_A=e=>Et.registerLoadRouter(e),EA=e=>Et.getSaveHandlers(e),AA=(e,t)=>Et.getLoadHandlers(e,t),cy="tensorflowjs",py=1,wi="models_store",jr="model_info_store";function N0(){if(!ee().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function dy(e){let t=e.result;t.createObjectStore(wi,{keyPath:"modelPath"}),t.createObjectStore(jr,{keyPath:"modelPath"})}var ki=class{constructor(e){if(this.indexedDB=N0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(cy,py);r.onupgradeneeded=()=>dy(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(wi,"readonly"),o=i.objectStore(wi).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Dc(t),o=s.transaction(jr,"readwrite"),l=o.objectStore(jr),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),u;c.onsuccess=()=>{u=s.transaction(wi,"readwrite");let p=u.objectStore(wi).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(jr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},c.onerror=p=>(s.close(),a(c.error)),o.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ki.URL_SCHEME="indexeddb://";var T0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ki.URL_SCHEME)?FA(e.slice(ki.URL_SCHEME.length)):null;Et.registerSaveRouter(T0);Et.registerLoadRouter(T0);function FA(e){return new ki(e)}function $A(e){return e.startsWith(ki.URL_SCHEME)?e.slice(ki.URL_SCHEME.length):e}var DA=class{constructor(){this.indexedDB=N0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(cy,py);n.onupgradeneeded=()=>dy(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(jr,"readonly"),s=r.objectStore(jr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=$A(e),new Promise((t,n)=>{let a=this.indexedDB.open(cy,py);a.onupgradeneeded=()=>dy(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(jr,"readwrite"),i=s.objectStore(jr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),u=()=>{l=r.transaction(wi,"readwrite");let p=l.objectStore(wi).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};c.onsuccess=u,c.onerror=p=>(u(),r.close(),n(o.error))}},o.onerror=c=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},fr="/",El="tensorflowjs_models",S0="info",RA="model_topology",MA="weight_specs",PA="weight_data",OA="model_metadata";function C0(e){return{info:[El,e,S0].join(fr),topology:[El,e,RA].join(fr),weightSpecs:[El,e,MA].join(fr),weightData:[El,e,PA].join(fr),modelMetadata:[El,e,OA].join(fr)}}function LA(e){let t=e.split(fr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(fr)}function zA(e){return e.startsWith(Ii.URL_SCHEME)?e.slice(Ii.URL_SCHEME.length):e}var Ii=class{constructor(e){if(!ee().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=C0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Dc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,kA(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=IA(s),t}};Ii.URL_SCHEME="localstorage://";var _0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ii.URL_SCHEME)?BA(e.slice(Ii.URL_SCHEME.length)):null;Et.registerSaveRouter(_0);Et.registerLoadRouter(_0);function BA(e){return new Ii(e)}var WA=class{constructor(){A(ee().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=El+fr,n=fr+S0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Al)&&(e=e.slice(0,e.indexOf(Al))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Kn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function sh(e){if(e.indexOf(Al)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Kn.getSchemes().join(",")}`);return{scheme:e.split(Al)[0],path:e.split(Al)[1]}}async function E0(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Et.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Et.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=sh(e).scheme,l=sh(e).path,c=o===sh(e).scheme,u=await r.load();n&&c&&await Kn.getManager(o).removeModel(l);let p=await i.save(u);return n&&!c&&await Kn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function VA(){let e=Kn.getSchemes(),t={};for(let n of e){let a=await Kn.getManager(n).listModels();for(let r in a){let s=n+Al+r;t[s]=a[r]}}return t}async function UA(e){let t=sh(e);return Kn.getManager(t.scheme).removeModel(t.path)}async function GA(e,t){return E0(e,t,!1)}async function HA(e,t){return E0(e,t,!0)}var jA=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(ee().get("IS_BROWSER")){ee().setPlatform("browser",new jA);try{Kn.registerManager(Ii.URL_SCHEME,new WA)}catch(e){}try{Kn.registerManager(ki.URL_SCHEME,new DA)}catch(e){}}var qA={importFetch:()=>pE()},hy,KA=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ee().global.fetch!=null?ee().global.fetch(e,t):(hy==null&&(hy=qA.importFetch()),hy(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};ee().get("IS_NODE")&&ee().setPlatform("node",new KA);function Le(e,t="float32",n){return t=t||"float32",jg(e),new Ot(e,t,n)}function XA(e,t){let n=E(e,"x","cast");if(!e0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return M.runKernel(As,a,r)}var ce=O({cast_:XA});function YA(e){let t={x:E(e,"x","clone","string_or_numeric")};return M.runKernel(Us,t)}var qr=O({clone_:YA});function A0(e,t=!1){console.log(e.toString(t))}g0();var ZA={buffer:Le,cast:ce,clone:qr,print:A0};uA(ZA);var Ht={};Oe(Ht,{browserFiles:()=>JA,browserHTTPRequest:()=>eF,concatenateArrayBuffers:()=>uy,copyModel:()=>GA,decodeWeights:()=>w0,encodeWeights:()=>vA,fromMemory:()=>tF,getLoadHandlers:()=>AA,getModelArtifactsInfoForJSON:()=>Dc,getSaveHandlers:()=>EA,http:()=>fy,isHTTPScheme:()=>my,listModels:()=>VA,loadWeights:()=>QA,moveModel:()=>HA,registerLoadRouter:()=>_A,registerSaveRouter:()=>CA,removeModel:()=>UA,weightsLoaderFactory:()=>F0,withSaveHandler:()=>nF});var aF="model",rF=".json",sF=".weights.bin";function $0(e){return new Promise(t=>setTimeout(t)).then(e)}var Fl=class{constructor(e){if(!ee().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Fl.URL_SCHEME)&&(e=e.slice(Fl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=aF),this.modelTopologyFileName=e+rF,this.weightDataFileName=e+sF}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await $0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await $0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Dc(e)}}}};Fl.URL_SCHEME="downloads://";var iF=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let u=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),u.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let v={modelTopology:o,weightSpecs:u,weightData:uy(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(v.signature=i.signature),i.userDefinedMetadata!=null&&(v.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(v.modelInitializer=i.modelInitializer),n(v)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>I0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=I0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},lF=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Fl.URL_SCHEME)?oF(e.slice(Fl.URL_SCHEME.length)):null;Et.registerSaveRouter(lF);function oF(e="model"){return new Fl(e)}function JA(e){return new iF(e)}function D0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(c=>{let u=n+ ++r/e.length*(a-n);return t(u),c}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,c){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),A(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(s))}async function R0(e,t){t==null&&(t={});let n=t.fetchFunc==null?ee().platform.fetch:t.fetchFunc,a=e.map(c=>n(c,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await D0(a,t.onProgress,r,s)).map(c=>c.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await D0(i,t.onProgress,o,l)}async function QA(e,t="",n,a){return F0(r=>R0(r,{requestInit:a}))(e,t,n)}function F0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=oy[y]*Pt(g.shape),v=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((x,N)=>{x===g.name&&(v(),i[N]=!0)}):v(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),c=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;c.push(f)})});let u=await e(c),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let v=0;v{let x=g.slice(v.groupOffset,v.groupOffset+v.sizeBytes),N=w0(x,[v.manifestEntry]);for(let T in N)p[T]=N[T]}),d+=m}),p}}var uF="application/octet-stream",cF="application/json",gy=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=ee().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:cF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:uF}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Dc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,u;a!=null&&([c,u]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:c,weightData:u,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=pF(t),r=this.weightPathPrefix||n,s=[];for(let c of e)s.push(...c.weights);let i=[],o=[];for(let c of e)for(let u of c.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(u)):i.push(r+u+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await R0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,uy(l)]}};gy.URL_SCHEME_REGEX=/^https?:\/\//;function pF(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function my(e){return e.match(gy.URL_SCHEME_REGEX)!=null}var M0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>my(a)):n=my(e),n)return fy(e,t)}return null};Et.registerSaveRouter(M0);Et.registerLoadRouter(M0);function fy(e,t){return new gy(e,t)}function eF(e,t){return fy(e,t)}var yy=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},dF=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function tF(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new yy(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new yy({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new yy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function nF(e){return new dF(e)}var P0={};Oe(P0,{confusionMatrix:()=>hF});function mF(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Nt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return M.runKernel(Es,i,o)}var ze=O({matMul_:mF});function fF(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:E(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return M.runKernel(Qs,r,s)}var $l=O({oneHot_:fF});function gF(e,t){let n=E(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{A(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return M.runKernel(yi,a,r)}var Ue=O({transpose_:gF});function yF(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=$l(ce(a,"int32"),n),i=$l(ce(r,"int32"),n),o=Ue(s),l=ze(o,i);return ce(l,"int32")}var hF=O({confusionMatrix_:yF}),Ni={};Oe(Ni,{fromPixels:()=>xF,toPixels:()=>bF});function ih(e,t,n){if(Ns(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=Ga(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Hr(e,t,a,n)}var Dl;function vF(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(Zd(Yd,M.backendName)!=null){let d={pixels:e},h={numChannels:t};return M.runKernel(Yd,d,h)}let[l,c]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],u;i?u=e.getContext("2d").getImageData(0,0,l,c).data:a||n?u=e.data:(s||r||o)&&(Dl==null&&(Dl=document.createElement("canvas").getContext("2d")),Dl.canvas.width=l,Dl.canvas.height=c,Dl.drawImage(e,0,0,l,c),u=Dl.getImageData(0,0,l,c).data);let p;if(t===4)p=new Int32Array(u);else{let d=l*c;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(u[0]=h*o,u[1]=h*o,u[2]=h*o):u[d]=h*o}let p=c*4;l[p+0]=Math.round(u[0]),l[p+1]=Math.round(u[1]),l[p+2]=Math.round(u[2]),l[p+3]=Math.round(u[3])}if(t!=null){t.width=r,t.height=a;let c=t.getContext("2d"),u=new ImageData(l,r,a);c.putImageData(u,0,0)}return n!==e&&n.dispose(),l}var xF=O({fromPixels_:vF}),by={};Oe(by,{prepareAndValidate:()=>O0});function O0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Pt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/c),1].slice(0,s);return[l,i,c,u]}var xy={};Oe(xy,{calculateShapes:()=>L0,validateInput:()=>wy,validateUpdateShape:()=>vy});function vy(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pwF,computeFlatOffset:()=>IF,computeOutShape:()=>z0,getNormalizedAxes:()=>W0,isSliceContinous:()=>kF,maskToAxes:()=>oh,parseSliceParams:()=>q0,sliceInfo:()=>NF,startForAxis:()=>H0,startIndicesWithElidedDims:()=>V0,stopForAxis:()=>j0,stopIndicesWithElidedDims:()=>U0,stridesForAxis:()=>G0,stridesWithElidedDims:()=>B0});function wF(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function oh(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function z0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;u=V0(i,h,m,a,e),p=U0(o,h,m,r,e),d=B0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=K0(t,n,o),c=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=K0(t,n,o),c=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=sc(0,i,l-1),i}function j0(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=sc(0,i,l):i=sc(-1,i,l-1),i}function kF(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function IF(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function NF(e,t,n,a,r,s,i,o,l){let c=t.slice(),u=n.slice(),p=a;a==null&&(p=new Array(c.length));let d=oh(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-c.length,m=oh(o),f=e.slice();m.forEach(T=>{c[T]=0,u[T]=1,f.splice(T,0,1)});let{begin:g,end:y,strides:b}=W0(f,d,h,c,u,p,r,s,i);c=g,u=y,p=b;let v=oh(l);v.forEach(T=>{u[T]=c[T]+1,p[T]=1});let x=z0(c,u,p),N=x.filter((T,C)=>v.indexOf(C)===-1);return{nonStrided:p.every(T=>T===1),$begin:c,$end:u,$strides:p,size:x,newShape:f,outShape:N}}var re={};Oe(re,{Serializable:()=>Y0,SerializationMap:()=>Ti,registerClass:()=>Kr});var Y0=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ti=class{constructor(){this.classNameMap={}}static getMap(){return Ti.instance==null&&(Ti.instance=new Ti),Ti.instance}static register(e){Ti.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Kr(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Ti.register(e)}var Z0={};Oe(Z0,{TEST_EPSILON_FLOAT16:()=>J0,encodeStrings:()=>Q0,expectArrayBuffersEqual:()=>AF,expectArraysClose:()=>TF,expectArraysEqual:()=>CF,expectNumbersClose:()=>_F,expectPromiseToFail:()=>SF,expectValuesInRange:()=>EF,testEpsilon:()=>ky});var FF=.001,J0=.1;function TF(e,t,n){return n==null&&(n=ky()),Iy(e,t,(a,r)=>Ny(a,r,n))}function ky(){return M.backend.floatPrecision()===32?FF:J0}function Iy(e,t,n){let a=!0;if((on(e)||on(t))&&(a=!1),on(e)&&on(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=Ga(e),o=Ga(t);if(!mr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=on(e)?e:Ts(e),s=on(t)?t:Ts(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t())}function wF(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Pr(e)||Pr(e[0])||Pr(t)||Pr(t[0])?vy(e,n,(a,r)=>a==r):vy(e,t,(a,r)=>wy(a,r,0))}function kF(e,t,n){if(n==null&&(n=xy()),!wy(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function wy(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function IF(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function NF(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function K0(e){for(let t=0;tt.dispose())}function jt(e){return M.keep(e)}function FF(e){return M.time(e)}function $F(e){return M.setBackend(e)}function DF(){return M.ready()}function RF(){return M.backendName}function MF(e){M.removeBackend(e)}function PF(e){return M.findBackend(e)}function OF(e){return M.findBackendFactory(e)}function ih(e,t,n=1){return M.registerBackend(e,t,n)}function Y0(){return M.backend}function LF(e,t){ee().setPlatform(e,t)}function zF(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Lr,r)}var Z=P({add_:zF});function BF(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(zs,r)}var oh=P({floorDiv_:BF});function WF(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Nt(n,a),n.dtype==="int32"&&a.dtype==="int32")return oh(n,a);let r={a:n,b:a},s={};return M.runKernel(Ps,r,s)}var ve=P({div_:WF});function VF(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Ys,r)}var L=P({mul_:VF});function UF(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return M.runKernel(pc,n)}else{let n={x:t};return M.runKernel(So,n)}}var Lt=P({abs_:UF});function GF(e){let t={x:E(e,"x","acos")};return M.runKernel(Co,t)}var Iy=P({acos_:GF});function HF(e){let t={x:E(e,"x","acosh")};return M.runKernel(_o,t)}var Ny=P({acosh_:HF});function jF(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!hr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return M.runKernel(Ss,a)}var Z0=P({addN_:jF});function qF(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return M.runKernel(yd,a,r)}var lh=P({all_:qF});function KF(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return M.runKernel(bd,a,r)}var Rc=P({any_:KF});function XF(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return M.runKernel(Cs,n,a)}var Mc=P({argMax_:XF});function YF(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return M.runKernel(lc,n,a)}var Ty=P({argMin_:YF});function ZF(e){let t={x:E(e,"x","asin")};return M.runKernel(Eo,t)}var Sy=P({asin_:ZF});function JF(e){let t={x:E(e,"x","asinh")};return M.runKernel(Ao,t)}var Cy=P({asinh_:JF});function QF(e){let t={x:E(e,"x","atan")};return M.runKernel(Fo,t)}var _y=P({atan_:QF});function e$(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Do,r)}var Ey=P({atan2_:e$});function t$(e){let t={x:E(e,"x","atanh")};return M.runKernel($o,t)}var Ay=P({atanh_:t$});function n$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=J0(r);return Pc(e,o,n,s,a,null,null,l)}function Q0(e,t,n,a,r,s,i="channelsLast"){let[o,l]=uh(t),c;if(i==="channelsLast")c=[o,l,e[3],e[3]];else if(i==="channelsFirst")c=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Pc(e,c,n,a,r,s,!1,i)}function a$(e,t,n,a,r,s,i="NDHWC"){let[o,l,c]=Fy(t),u,p;if(i==="NDHWC")p="channelsLast",u=[o,l,c,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",u=[o,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return e1(e,u,n,a,r,!1,p,s)}function Pc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,c,u,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,c,u,p]=e;else if(o==="channelsFirst")[l,p,c,u]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=uh(n),[y,b]=uh(a),v=Rl(d,y),x=Rl(h,b),{padInfo:N,outHeight:T,outWidth:C}=r$(r,c,u,f,g,v,x,s,o),$=i?m*p:m,F;return o==="channelsFirst"?F=[l,$,T,C]:o==="channelsLast"&&(F=[l,T,C,$]),{batchSize:l,dataFormat:o,inHeight:c,inWidth:u,inChannels:p,outHeight:T,outWidth:C,outChannels:$,padInfo:N,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:v,effectiveFilterWidth:x,dilationHeight:y,dilationWidth:b,inShape:e,outShape:F,filterShape:t}}function e1(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,c,u,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,u,p,d]=e;else if(i==="channelsFirst")[l,d,c,u,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,v]=Fy(n),[x,N,T]=Fy(a),C=Rl(h,x),$=Rl(m,N),F=Rl(f,T),{padInfo:O,outDepth:B,outHeight:W,outWidth:G}=s$(r,c,u,p,y,b,v,C,$,F,o),q=s?g*d:g,H;return i==="channelsFirst"?H=[l,q,B,W,G]:i==="channelsLast"&&(H=[l,B,W,G,q]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:u,inWidth:p,inChannels:d,outDepth:B,outHeight:W,outWidth:G,outChannels:q,padInfo:O,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:x,dilationHeight:N,dilationWidth:T,inShape:e,outShape:H,filterShape:t}}function i$(e,t,n,a,r){a==null&&(a=$y(e,t,n));let s=e[0],i=e[1],o=Ni((s-t+2*a)/n+1,r),l=Ni((i-t+2*a)/n+1,r);return[o,l]}function o$(e,t,n,a,r,s){r==null&&(r=$y(e,t,a));let i=e[0],o=e[1],l=e[2],c=Ni((i-t+2*r)/a+1,s),u=Ni((o-t+2*r)/a+1,s),p=Ni((l-t+2*r)/a+1,s);return[c,u,p,n]}function $y(e,t,n,a=1){let r=Rl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function uh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Fy(e){return typeof e=="number"?[e,e,e]:e}function Rl(e,t){return t<=1?e:e+(e-1)*(t-1)}function r$(e,t,n,a,r,s,i,o,l){let c,u,p;if(typeof e=="number"){c={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=i$([t,n],s,a,e,o);u=d[0],p=d[1]}else if(e==="same"){u=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(u-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];c={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},u=Ni((t-s+d+h)/a+1,o),p=Ni((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:u,outWidth:p}}function s$(e,t,n,a,r,s,i,o,l,c,u){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=o$([t,n,a,1],o,1,r,e,u);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+c-a,b=Math.floor(f/2),v=f-b,x=Math.floor(g/2),N=g-x,T=Math.floor(y/2),C=y-T;p={top:x,bottom:N,left:T,right:C,front:b,back:v,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-c+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Ni(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Xr(e){let[t,n,a]=uh(e);return t===1&&n===1&&a===1}function Ha(e,t){return Xr(e)||Xr(t)}function J0(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function l$(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return M.runKernel(dl,n,a)}var j=P({reshape_:l$});function u$(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(Ha(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=j(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&A(Gt(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(_s,c,u);return p=ce(p,s.dtype),l?j(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Xn=P({avgPool_:u$});function c$(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(uc,c,u);return p=ce(p,o.dtype),l?j(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Dy=P({avgPool3d_:c$});function p$(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=$c(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return jr(n[0]);let a=n,r={axis:t};return M.runKernel(Mo,a,r)}var Qe=P({concat_:p$});function d$(e){let t={x:E(e,"x","sigmoid")};return M.runKernel(li,t)}var ua=P({sigmoid_:d$});function h$(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return M.runKernel(gl,r,s)}var We=P({slice_:h$});function m$(e){let t={x:E(e,"x","tanh")};return M.runKernel(mi,t)}var Ml=P({tanh_:m$});function f$(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),c=E(a,"data","basicLSTMCell"),u=E(r,"c","basicLSTMCell"),p=E(s,"h","basicLSTMCell"),d=Qe([c,p],1),h=ze(d,o),m=Z(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=We(m,[0,0],y),v=We(m,[0,g],y),x=We(m,[0,g*2],y),N=We(m,[0,g*3],y),T=Z(L(ua(b),Ml(v)),L(u,ua(Z(i,x)))),C=L(Ml(T),ua(N));return[T,C]}var g$=P({basicLSTMCell_:f$});function y$(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return M.runKernel(cc,s,i)}var Oc=P({batchToSpaceND_:y$});function b$(e){let t;return e.rank===0||e.rank===1?t=j(e,[1,1,1,e.size]):e.rank===2?t=j(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=j(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function x$(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;a!=null&&(u=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:b$(i),scale:c,offset:u,mean:o,variance:l},d={varianceEpsilon:s},h=M.runKernel(Bs,p,d);return j(h,i.shape)}var fr=P({batchNorm_:x$});function v$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),fr(i,o,l,u,c,s)}var t1=P({batchNorm2d_:v$});function w$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),fr(i,o,l,u,c,s)}var n1=P({batchNorm3d_:w$});function k$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),fr(i,o,l,u,c,s)}var a1=P({batchNorm4d_:k$});function I$(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return M.runKernel(wd,s,i)}var r1=P({bincount_:I$});function N$(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return jr(n);let i={x:n},o={reps:s};return M.runKernel(Br,i,o)}var Lc=P({broadcastTo_:N$});function T$(e){let t={x:E(e,"x","ceil")};return M.runKernel(Ro,t)}var Ry=P({ceil_:T$});function S$(e,t,n){let a=E(e,"x","clipByValue");A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return M.runKernel(zr,r,s)}var qt=P({clipByValue_:S$});function C$(e){return Qe(e,0)}var s1=P({concat1d_:C$});function _$(e,t){return Qe(e,t)}var i1=P({concat2d_:_$});function E$(e,t){return Qe(e,t)}var o1=P({concat3d_:E$});function A$(e,t){return Qe(e,t)}var l1=P({concat4d_:A$});function F$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d"),l=E(t,"filter","conv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=j(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?c.shape[3]:c.shape[1];A(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),A(Ha(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:c,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=M.runKernel(Fs,d,h);return u?j(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=P({conv2d_:F$});function $$(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),c=o,u=!1;o.rank===2&&(u=!0,c=j(o,[1,o.shape[0],o.shape[1]])),A(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(Ha(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=j(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=j(c,[c.shape[0],1,c.shape[1],c.shape[2]]),h=At(d,p,[1,n],a,"NHWC",[1,s],i);return u?j(h,[h.shape[2],h.shape[3]]):j(h,[h.shape[0],h.shape[2],h.shape[3]])}var ch=P({conv1d_:$$});function D$(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,c=!1;t.rank===3&&(c=!0,l=j(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let u=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${u}) must match input depth for filter ${n.shape[2]}.`),A(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&A(Gt(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=M.runKernel($s,d,h);return c?j(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var My=P({conv2DBackpropInput_:D$});function R$(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return My(n,i,o,a,r,"NHWC",s)}var ph=P({conv2dTranspose_:R$});function M$(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,c=!1;i.rank===4&&(c=!0,l=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(Ha(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let u={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=M.runKernel(dc,u,p);return c?j(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Py=P({conv3d_:M$});function P$(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=j(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],c=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(c===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${n.shape[4]}.`);let u={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=M.runKernel(Td,u,p);return o?j(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var u1=P({conv3DBackpropInput_:P$});function O$(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return u1(n,s,i,a,r)}var L$=P({conv3dTranspose_:O$});function z$(e){let t={x:E(e,"x","cos")};return M.runKernel(Ds,t)}var zc=P({cos_:z$});function B$(e){let t={x:E(e,"x","cosh")};return M.runKernel(Po,t)}var dh=P({cosh_:B$});function W$(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return M.runKernel(Rs,r,s)}var hh=P({cumsum_:W$});function V$(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return M.runKernel(Sd,i,o)}var c1=P({denseBincount_:V$});function U$(e,t,n="NHWC"){let a=E(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}}function SF(e,t){e().then(()=>t.fail(),()=>t())}function CF(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Or(e)||Or(e[0])||Or(t)||Or(t[0])?Iy(e,n,(a,r)=>a==r):Iy(e,t,(a,r)=>Ny(a,r,0))}function _F(e,t,n){if(n==null&&(n=ky()),!Ny(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function Ny(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function EF(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function AF(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function Q0(e){for(let t=0;tt.dispose())}function jt(e){return M.keep(e)}function OF(e){return M.time(e)}function LF(e){return M.setBackend(e)}function zF(){return M.ready()}function BF(){return M.backendName}function WF(e){M.removeBackend(e)}function VF(e){return M.findBackend(e)}function UF(e){return M.findBackendFactory(e)}function uh(e,t,n=1){return M.registerBackend(e,t,n)}function t1(){return M.backend}function GF(e,t){ee().setPlatform(e,t)}function HF(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(zr,r)}var Z=O({add_:HF});function jF(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Bs,r)}var ch=O({floorDiv_:jF});function qF(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Nt(n,a),n.dtype==="int32"&&a.dtype==="int32")return ch(n,a);let r={a:n,b:a},s={};return M.runKernel(Os,r,s)}var ve=O({div_:qF});function KF(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Js,r)}var L=O({mul_:KF});function XF(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return M.runKernel(cc,n)}else{let n={x:t};return M.runKernel(_o,n)}}var Lt=O({abs_:XF});function YF(e){let t={x:E(e,"x","acos")};return M.runKernel(Eo,t)}var Sy=O({acos_:YF});function ZF(e){let t={x:E(e,"x","acosh")};return M.runKernel(Ao,t)}var Cy=O({acosh_:ZF});function JF(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!mr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return M.runKernel(Ss,a)}var n1=O({addN_:JF});function QF(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return M.runKernel(vd,a,r)}var ph=O({all_:QF});function e$(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return M.runKernel(wd,a,r)}var Rc=O({any_:e$});function t$(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return M.runKernel(Cs,n,a)}var Mc=O({argMax_:t$});function n$(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return M.runKernel(oc,n,a)}var _y=O({argMin_:n$});function a$(e){let t={x:E(e,"x","asin")};return M.runKernel(Fo,t)}var Ey=O({asin_:a$});function r$(e){let t={x:E(e,"x","asinh")};return M.runKernel($o,t)}var Ay=O({asinh_:r$});function s$(e){let t={x:E(e,"x","atan")};return M.runKernel(Do,t)}var Fy=O({atan_:s$});function i$(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Mo,r)}var $y=O({atan2_:i$});function o$(e){let t={x:E(e,"x","atanh")};return M.runKernel(Ro,t)}var Dy=O({atanh_:o$});function l$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=a1(r);return Pc(e,o,n,s,a,null,null,l)}function r1(e,t,n,a,r,s,i="channelsLast"){let[o,l]=dh(t),c;if(i==="channelsLast")c=[o,l,e[3],e[3]];else if(i==="channelsFirst")c=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Pc(e,c,n,a,r,s,!1,i)}function u$(e,t,n,a,r,s,i="NDHWC"){let[o,l,c]=Ry(t),u,p;if(i==="NDHWC")p="channelsLast",u=[o,l,c,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",u=[o,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return s1(e,u,n,a,r,!1,p,s)}function Pc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,c,u,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,c,u,p]=e;else if(o==="channelsFirst")[l,p,c,u]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=dh(n),[y,b]=dh(a),v=Rl(d,y),x=Rl(h,b),{padInfo:N,outHeight:T,outWidth:C}=c$(r,c,u,f,g,v,x,s,o),F=i?m*p:m,$;return o==="channelsFirst"?$=[l,F,T,C]:o==="channelsLast"&&($=[l,T,C,F]),{batchSize:l,dataFormat:o,inHeight:c,inWidth:u,inChannels:p,outHeight:T,outWidth:C,outChannels:F,padInfo:N,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:v,effectiveFilterWidth:x,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function s1(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,c,u,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,u,p,d]=e;else if(i==="channelsFirst")[l,d,c,u,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,v]=Ry(n),[x,N,T]=Ry(a),C=Rl(h,x),F=Rl(m,N),$=Rl(f,T),{padInfo:P,outDepth:B,outHeight:W,outWidth:G}=p$(r,c,u,p,y,b,v,C,F,$,o),q=s?g*d:g,j;return i==="channelsFirst"?j=[l,q,B,W,G]:i==="channelsLast"&&(j=[l,B,W,G,q]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:u,inWidth:p,inChannels:d,outDepth:B,outHeight:W,outWidth:G,outChannels:q,padInfo:P,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:F,effectiveFilterWidth:$,dilationDepth:x,dilationHeight:N,dilationWidth:T,inShape:e,outShape:j,filterShape:t}}function d$(e,t,n,a,r){a==null&&(a=My(e,t,n));let s=e[0],i=e[1],o=Si((s-t+2*a)/n+1,r),l=Si((i-t+2*a)/n+1,r);return[o,l]}function h$(e,t,n,a,r,s){r==null&&(r=My(e,t,a));let i=e[0],o=e[1],l=e[2],c=Si((i-t+2*r)/a+1,s),u=Si((o-t+2*r)/a+1,s),p=Si((l-t+2*r)/a+1,s);return[c,u,p,n]}function My(e,t,n,a=1){let r=Rl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function dh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Ry(e){return typeof e=="number"?[e,e,e]:e}function Rl(e,t){return t<=1?e:e+(e-1)*(t-1)}function c$(e,t,n,a,r,s,i,o,l){let c,u,p;if(typeof e=="number"){c={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=d$([t,n],s,a,e,o);u=d[0],p=d[1]}else if(e==="same"){u=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(u-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];c={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},u=Si((t-s+d+h)/a+1,o),p=Si((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:u,outWidth:p}}function p$(e,t,n,a,r,s,i,o,l,c,u){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=h$([t,n,a,1],o,1,r,e,u);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+c-a,b=Math.floor(f/2),v=f-b,x=Math.floor(g/2),N=g-x,T=Math.floor(y/2),C=y-T;p={top:x,bottom:N,left:T,right:C,front:b,back:v,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-c+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Si(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Xr(e){let[t,n,a]=dh(e);return t===1&&n===1&&a===1}function ja(e,t){return Xr(e)||Xr(t)}function a1(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function m$(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return M.runKernel(dl,n,a)}var H=O({reshape_:m$});function f$(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(ja(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&A(Gt(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(_s,c,u);return p=ce(p,s.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Xn=O({avgPool_:f$});function g$(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(lc,c,u);return p=ce(p,o.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Py=O({avgPool3d_:g$});function y$(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=$c(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return qr(n[0]);let a=n,r={axis:t};return M.runKernel(Po,a,r)}var Qe=O({concat_:y$});function b$(e){let t={x:E(e,"x","sigmoid")};return M.runKernel(ci,t)}var ca=O({sigmoid_:b$});function x$(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return M.runKernel(gl,r,s)}var We=O({slice_:x$});function v$(e){let t={x:E(e,"x","tanh")};return M.runKernel(gi,t)}var Ml=O({tanh_:v$});function w$(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),c=E(a,"data","basicLSTMCell"),u=E(r,"c","basicLSTMCell"),p=E(s,"h","basicLSTMCell"),d=Qe([c,p],1),h=ze(d,o),m=Z(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=We(m,[0,0],y),v=We(m,[0,g],y),x=We(m,[0,g*2],y),N=We(m,[0,g*3],y),T=Z(L(ca(b),Ml(v)),L(u,ca(Z(i,x)))),C=L(Ml(T),ca(N));return[T,C]}var k$=O({basicLSTMCell_:w$});function I$(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return M.runKernel(uc,s,i)}var Oc=O({batchToSpaceND_:I$});function N$(e){let t;return e.rank===0||e.rank===1?t=H(e,[1,1,1,e.size]):e.rank===2?t=H(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function T$(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;a!=null&&(u=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:N$(i),scale:c,offset:u,mean:o,variance:l},d={varianceEpsilon:s},h=M.runKernel(Ws,p,d);return H(h,i.shape)}var gr=O({batchNorm_:T$});function S$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),gr(i,o,l,u,c,s)}var i1=O({batchNorm2d_:S$});function C$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),gr(i,o,l,u,c,s)}var o1=O({batchNorm3d_:C$});function _$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),gr(i,o,l,u,c,s)}var l1=O({batchNorm4d_:_$});function E$(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return M.runKernel(Nd,s,i)}var u1=O({bincount_:E$});function A$(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return qr(n);let i={x:n},o={reps:s};return M.runKernel(Wr,i,o)}var Lc=O({broadcastTo_:A$});function F$(e){let t={x:E(e,"x","ceil")};return M.runKernel(Fs,t)}var Oy=O({ceil_:F$});function $$(e,t,n){let a=E(e,"x","clipByValue");A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return M.runKernel(Br,r,s)}var qt=O({clipByValue_:$$});function D$(e){return Qe(e,0)}var c1=O({concat1d_:D$});function R$(e,t){return Qe(e,t)}var p1=O({concat2d_:R$});function M$(e,t){return Qe(e,t)}var d1=O({concat3d_:M$});function P$(e,t){return Qe(e,t)}var h1=O({concat4d_:P$});function O$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d"),l=E(t,"filter","conv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?c.shape[3]:c.shape[1];A(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),A(ja(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:c,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=M.runKernel($s,d,h);return u?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=O({conv2d_:O$});function L$(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),c=o,u=!1;o.rank===2&&(u=!0,c=H(o,[1,o.shape[0],o.shape[1]])),A(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(ja(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=H(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=H(c,[c.shape[0],1,c.shape[1],c.shape[2]]),h=At(d,p,[1,n],a,"NHWC",[1,s],i);return u?H(h,[h.shape[2],h.shape[3]]):H(h,[h.shape[0],h.shape[2],h.shape[3]])}var hh=O({conv1d_:L$});function z$(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,c=!1;t.rank===3&&(c=!0,l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let u=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${u}) must match input depth for filter ${n.shape[2]}.`),A(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&A(Gt(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=M.runKernel(Ds,d,h);return c?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ly=O({conv2DBackpropInput_:z$});function B$(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return Ly(n,i,o,a,r,"NHWC",s)}var mh=O({conv2dTranspose_:B$});function W$(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,c=!1;i.rank===4&&(c=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(ja(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let u={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=M.runKernel(pc,u,p);return c?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var zy=O({conv3d_:W$});function V$(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],c=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(c===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${n.shape[4]}.`);let u={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=M.runKernel(_d,u,p);return o?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var m1=O({conv3DBackpropInput_:V$});function U$(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return m1(n,s,i,a,r)}var G$=O({conv3dTranspose_:U$});function H$(e){let t={x:E(e,"x","cos")};return M.runKernel(Rs,t)}var zc=O({cos_:H$});function j$(e){let t={x:E(e,"x","cosh")};return M.runKernel(Oo,t)}var fh=O({cosh_:j$});function q$(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return M.runKernel(Ms,r,s)}var gh=O({cumsum_:q$});function K$(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return M.runKernel(Ed,i,o)}var f1=O({denseBincount_:K$});function X$(e,t,n="NHWC"){let a=E(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),A(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return M.runKernel(Lo,o,l)}var Oy=P({depthToSpace_:U$});function G$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d"),l=E(t,"filter","depthwiseConv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=j(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&A(Gt(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:c,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=M.runKernel(Ms,p,d);return u?j(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var Yr=P({depthwiseConv2d_:G$});function H$(e){let t={x:E(e,"x","diag")};return M.runKernel(Ed,t)}var j$=P({diag_:H$});function q$(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,c=!1;i.rank===3&&(l=j(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0);let u={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=M.runKernel(hc,u,p);return c?j(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Ly=P({dilation2d_:q$});function K$(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function zt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function xt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&sn(s.shape,l.shape,"Error in where: ");let c={condition:s,t:o,e:l};return M.runKernel(ml,c)}var vn=P({where_:Y$});function Z$(e){let t={x:E(e,"x","zerosLike")};return M.runKernel(Tl,t)}var Ge=P({zerosLike_:Z$});function J$(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Nt(n,a);let r=ve(n,a),s=Ge(r),i=Zr(a,s);return vn(i,s,r)}var zy=P({divNoNan_:J$});function Q$(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=j(n,[1,-1]),o=j(a,[-1,1]),l=ze(i,o);return j(l,[])}else if(n.rank===1&&a.rank===2){let i=j(n,[1,-1]),o=j(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return j(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=j(a,[-1,1]),o=ze(n,i);return j(o,[o.size])}else{let i=j(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var p1=P({dot_:Q$});function eD(e){let t={x:E(e,"x","elu")};return M.runKernel(zo,t)}var Pl=P({elu_:eD});function tD(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ce(t,"float32"));let n={x:t};return M.runKernel(Bo,n)}var By=P({erf_:tD});function nD(e){let t={x:E(e,"x","exp")};return M.runKernel(Os,t)}var pn=P({exp_:nD});function aD(e,t=0){let n=E(e,"x","expandDims","string_or_numeric");A(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return M.runKernel(Vo,a,r)}var Fn=P({expandDims_:aD});function rD(e){let t={x:E(e,"x","expm1")};return M.runKernel(Uo,t)}var Wy=P({expm1_:rD});function sD(e,t){let n=E(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return M.runKernel(Br,a,r)}var ja=P({tile_:sD});function iD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),A(Gt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=j(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},c={depthRadius:t,bias:n,alpha:a,beta:r},u=M.runKernel(yc,l,c);return o?j(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var Uy=P({localResponseNormalization_:bD});function xD(e){let t={x:E(e,"x","log")};return M.runKernel(Us,t)}var $n=P({log_:xD});function vD(e){let t={x:E(e,"x","log1p")};return M.runKernel(el,t)}var gh=P({log1p_:vD});function wD(e){return A(Or(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(a),[a],r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),yh(i),i[0]})}}function kD(e){return A(Or(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=$c(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(...a),a,r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),yh(i),i})}}function ID(e){return A(Or(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ae,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=M.gradients(()=>e(t),[t],n);return yh(a),{grad:a[0],value:r}}}function ND(e){return A(Or(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ae),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=M.gradients(()=>e(...t),t,n);return n!=null&&sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),yh(a.grads),a}}function g1(e,t){A(Or(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(c=>c instanceof Vr),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let c in M.registeredVariables)t.push(M.registeredVariables[c])}let a=n?t.filter(c=>!c.trainable):null,r=t.length;t=t.filter(c=>c.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=M.gradients(e,t,null,s);A(o.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((c,u)=>{o[u]!=null&&(l[c.name]=o[u])}),a!=null&&a.forEach(c=>l[c.name]=null),{value:i,grads:l}}function qa(e){return M.customGrad(e)}function yh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function TD(e){let t={x:E(e,"x","neg")};return M.runKernel(al,t)}var Tt=P({neg_:TD});function SD(e){let t={x:E(e,"x","softplus")};return M.runKernel(xl,t)}var Ll=P({softplus_:SD});function CD(e){let t=E(e,"x","logSigmoid");return qa(n=>({value:Tt(Ll(Tt(n))),gradFunc:a=>L(a,ua(Tt(n)))}))(t)}var y1=P({logSigmoid_:CD});function _D(e,t=null,n=!1){let a={x:E(e,"x","max")},r={reductionIndices:t,keepDims:n};return M.runKernel(Gs,a,r)}var Yn=P({max_:_D});function ED(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(hi,r)}var fe=P({sub_:ED});function AD(e,t=null,n=!1){let a=E(e,"x","sum");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(ci,r,s)}var Te=P({sum_:AD});function FD(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return qa((a,r)=>{let s=!0,i=Yn(a,t,!0),o=fe(a,i),l=fe(ce(o,"float32"),$n(Te(pn(o),t,s)));return r([l]),{value:l,gradFunc:(c,u)=>{let[p]=u,d=!0,h=pn(p);return fe(c,L(Te(c,t,d),h))}}})(n)}var bh=P({logSoftmax_:FD});function Gy(e,t){for(let n=0;ne[s]);return[n,r]}function Ci(e,t){let n=t.map(a=>1);return b1(e,n,t)}function $D(e,t,n){A(Gy(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function v1(e,t){if(Gy(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Hy(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function DD(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(Ha(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&A(Gt(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(js,c,u);return l?j(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ft=P({maxPool_:zD});function BD(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(bc,c,u);return l?j(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var qy=P({maxPool3d_:BD});function WD(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=M.runKernel(Bd,s,i);return{result:o[0],indexes:o[1]}}var k1=P({maxPoolWithArgmax_:WD});function VD(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Hs,r)}var Ka=P({maximum_:VD});function UD(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return M.runKernel(qs,a,r)}var St=P({mean_:UD});function GD(e,t=null,n=!1){let a={x:E(e,"x","min")},r={axis:t,keepDims:n};return M.runKernel(Ks,a,r)}var zl=P({min_:GD});function HD(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Xs,r)}var Bl=P({minimum_:HD});function jD(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return M.runKernel(xc,i,s)}var Ky=P({mirrorPad_:jD});function qD(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(nl,r)}var Xy=P({mod_:qD});function KD(e){let t=E(e,"x","square"),n={};return M.runKernel("Square",{x:t},n)}var lt=P({square_:KD});function XD(e,t=null,n=!1){e=E(e,"x","moments");let a=oa(t,e.shape),r=St(e,a,n),s=r.shape;n||(s=Ci(r.shape,a));let i=lt(fe(ce(e,"float32"),j(r,s))),o=St(i,a,n);return{mean:r,variance:o}}var vh=P({moments_:XD});function YD(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=$c(n,"c","multiRNNCell"),i=$c(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?j(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},c=M.runKernel(Wd,o,l);return i===1?j(c,[c.size]):c}var I1=P({multinomial_:JD});function QD(e,t){let n=E(e,"a","notEqual"),a=E(t,"b","notEqual");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(rl,r)}var _i=P({notEqual_:QD});function vt(e,t="float32"){if(t==="complex64"){let a=vt(e,"float32"),r=vt(e,"float32");return Ur(a,r)}let n=gd(Pt(e),t);return M.makeTensor(n,e,t)}function Xa(e,t="float32"){if(t==="complex64"){let a=Xa(e,"float32"),r=vt(e,"float32");return Ur(a,r)}let n=Wg(Pt(e),t);return M.makeTensor(n,e,t)}function eR(e){let t={x:E(e,"x","onesLike")};return M.runKernel(ll,t)}var Dn=P({onesLike_:eR});function tR(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=j(n,[-1,1]),s=j(a,[1,-1]);return ze(r,s)}var nR=P({outerProduct_:tR});function aR(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return M.runKernel(Js,s,r)}var Zn=P({pad_:aR});function rR(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Zn(e,[t],n)}var sR=P({pad1d_:rR});function iR(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Zn(e,t,n)}var oR=P({pad2d_:iR});function lR(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Zn(e,t,n)}var uR=P({pad3d_:lR});function cR(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Zn(e,t,n)}var pR=P({pad4d_:cR});function dR(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return M.runKernel(kc,r,s)}var Vc=P({spaceToBatchND_:dR});function fR(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=E(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2]])),A(Ha(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let c=Q0(o.shape,t,s,r,a),u=[c.dilationHeight,c.dilationWidth],p;a==="same"?p=mR([c.filterHeight,c.filterWidth],u):p=[[0,0],[0,0]];let d=u[0]===1&&u[1]===1,[h,m]=hR([c.inHeight,c.inWidth],u,p),f=d?a:"valid",g=d?o:Vc(o,u,h),y=(n==="avg"?()=>Xn(g,t,s,f):()=>Ft(g,t,s,f))(),b=d?y:Oc(y,u,m);return l?j(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function hR(e,t,n){let a=n.map(u=>u[0]),r=n.map(u=>u[1]),s=e.concat(a,r),i=t.map((u,p)=>(u-s[p]%u)%u),o=r.map((u,p)=>u+i[p]),l=t.map((u,p)=>[a[p],o[p]]),c=t.map((u,p)=>[0,i[p]]);return[l,c]}function mR(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var N1=P({pool_:fR});function gR(e,t){let n=E(e,"base","pow"),a=E(t,"exp","pow");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Qs,r)}var gr=P({pow_:gR});function yR(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return M.runKernel(ei,r)}var Uc=P({prelu_:yR});function bR(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(cl,r,s)}var wh=P({prod_:bR});function xR(e,t,n){let a=Pt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},wR=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Yy.alea(r.toString()),this.randn=new Zy(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Yy.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function IR(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new wR(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Rn(t,0)}var DR=P({reverse1d_:$R});function RR(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Rn(n,t)}var MR=P({reverse2d_:RR});function PR(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Rn(n,t)}var OR=P({reverse3d_:PR});function LR(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Rn(n,t)}var zR=P({reverse4d_:LR});function BR(e){let t={x:E(e,"x","round")};return M.runKernel(si,t)}var Qy=P({round_:BR});function WR(e){let t={x:E(e,"x","rsqrt")};return M.runKernel(ii,t)}var Nh=P({rsqrt_:WR});function de(e,t){if((on(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&on(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Gr(e,[],[],t)}function VR(e){let t={x:E(e,"x","selu")};return M.runKernel(fl,t)}var Th=P({selu_:VR});function UR(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),c=E(n,"pointwiseFilter","separableConv2d"),u=o,p=!1;if(o.rank===3&&(p=!0,u=j(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(u.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),A(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);let d=l.shape[2],h=l.shape[3];A(c.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${c.shape[2]}.`);let m=Yr(u,l,a,r,i,s),f=At(m,c,1,"valid",i);return p?j(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ei=P({separableConv2d_:UR});async function GR(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let u=0;u`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),We(a,[t],[n])}var _h=P({slice1d_:KR});function XR(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var tb=P({slice2d_:XR});function YR(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Vl=P({slice3d_:YR});function ZR(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Hc=P({slice4d_:ZR});function JR(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return M.runKernel(pi,a,r)}var Na=P({softmax_:JR});function QR(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Dd,t)}var jc=P({fft_:QR});function eM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Rd,t)}var Ul=P({ifft_:eM});function tM(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=j(e,[n,t]);a=Ul(r)}else{let r=[n,2*(t-1)],s=j(Gc(e),[n,t]),i=j(mh(e),[n,t]),o=Rn(We(s,[0,1],[n,t-2]),1),l=L(Rn(We(i,[0,1],[n,t-2]),1),de(-1)),c=Qe([s,o],1),u=Qe([i,l],1),p=j(Ur(c,u),[r[0],r[1]]);a=Ul(p)}if(a=Gc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=j(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Eh=P({irfft_:tM});function nM(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return M.runKernel(vl,a,r)}var Mn=P({split_:nM});function aM(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=We(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Qe([e,vt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=j(Ur(r,s),[a,n]),o=jc(i),l=Math.floor(n/2)+1,c=Gc(o),u=mh(o),p=Mn(c,[l,n-l],c.shape.length-1),d=Mn(u,[l,n-l],u.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,j(Ur(p[0],d[0]),h)}var qc=P({rfft_:aM});function rM(e){let t={x:E(e,"x","sqrt")};return M.runKernel(ui,t)}var en=P({sqrt_:rM});function sM(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a},s={};return M.runKernel(di,r,s)}var Ah=P({squaredDifference_:sM});function iM(e,t){let n=E(e,"x","squeeze");return j(n,Gw(n.shape,t).newShape)}var Qr=P({squeeze_:iM});function oM(e,t=0){let n=$c(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return M.runKernel(ul,a,r)}var $t=P({stack_:oM});function lM(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return M.runKernel(Wr,n,a)}var Gl=P({step_:lM});function uM(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let c={x:E(e,"x","stridedSlice")},u={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return M.runKernel(wl,c,u)}var nb=P({stridedSlice_:uM});function cM(e){let t={x:E(e,"x","tan")};return M.runKernel(kl,t)}var ab=P({tan_:cM});function tt(e,t){Ns(e);let n=Ga(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Gr(e,null,n,t)}function Ta(e,t,n){if(Ns(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=Ga(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Gr(e,t,a,n)}function Sa(e,t,n){if(Ns(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=Ga(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Gr(e,t,a,n)}function pM(e,t,n){if(Ns(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=Ga(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Gr(e,t,a,n)}function dM(e,t,n){if(Ns(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=Ga(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Gr(e,t,a,n)}function hM(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=M.runKernel(Il,s,i);return{values:o,indices:l}}var rb=P({topk_:hM});function mM(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Zy(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=M.runKernel(jd,a,r);return{values:s,indices:i}}var $h=P({unique_:fM});function gM(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(Gt(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return M.runKernel(Nc,s,i)}var sb=P({unsortedSegmentSum_:gM});function yM(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return M.runKernel(Nl,a,r)}var dt=P({unstack_:yM});function C1(e,t=!0,n,a){return M.makeVariable(e,t,n,a)}function _1(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=de(1),c=fe(l,o),u=L(fe(i,s),c);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let p=E(a,"step","movingAverage");u=ve(u,fe(l,gr(o,p)))}return Z(s,u)}var IM=P({movingAverage_:kM});function NM(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");by(r,a,n);let s={indices:a,updates:r},i={shape:n};return M.runKernel(hl,s,i)}var A1=P({scatterND_:NM});function TM(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function SM(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense"),i=E(a,"defaultValue","sparseToDense",s.dtype);TM(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return M.runKernel(Hd,o,l)}var ob=P({sparseToDense_:SM});function CM(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND"),indices:n};return M.runKernel(jo,a)}var F1=P({gatherND_:CM});function _M(e,t){if(t==null)return e.shape.slice();if(hr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ae?r.clone():r;let s=_M(r,n),i=1-t,o=ve(Ol(Z(Wl(s,0,1,"float32",a),i)),i);return L(r,o)}var $1=P({dropout_:EM});function D1(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function lb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,c]=[i.length/s,s],u=Hw("bool",l);for(let p=0;pg.value-f.value),u[p]=0;for(let f=0;f$M,depthwiseConv2d:()=>DM,matMul:()=>RM});function MM(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=j(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=j(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let c=s==="NHWC"?o.shape[3]:o.shape[1],u=s==="NHWC"?l.shape[3]:l.shape[1];A(c===n[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${n[2]}.`),A(u===n[3],()=>`Error in conv2dDerFilter: depth of dy (${u}) must match output depth for filter (${n[3]}).`),i!=null&&A(Gt(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return M.runKernel(Id,p,d)}var ub=P({conv2DBackpropFilter_:MM});function Rh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return L(e,Gl(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Mh(e,t){let n=t,a=zt(e.shape,t.shape);return a.length>0&&(n=Te(n,a)),j(n,e.shape)}function Ph(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ye(e);if(t==="elu")return Pl(e);if(t==="relu6")return Ih(e);if(t==="prelu")return Uc(e,n);if(t==="leakyrelu")return Bc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var Oh=(e,t)=>!(e>0)||t==="linear";function PM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(l=l||"linear",Oh(M.state.gradientDepth,l)===!1){let N=At(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),Ph(N,l,c,u)}let p=E(e,"x","conv2d"),d=E(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=j(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&A(Gt(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),A(Ha(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Pc(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused conv2d"));let b=(N,T)=>{let[C,$,F,O]=T,B=Rh(N,F,l);A(Xr(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=My($.shape,B,C,n,a),G=ub($,B,C.shape,n,a),q=[W,G];if(O!=null){let H=Mh(O,B);q.push(H)}return q},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?qa((N,T,C)=>{let $=M.runKernel(yi,v,x);return C([T,N,$]),m&&($=j($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d):qa((N,T,C,$)=>{let F=M.runKernel(yi,v,x);return $([T,N,F,C]),m&&(F=j(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var $M=P({fusedConv2d_:PM});function OM(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=j(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=j(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={x:o,dy:l},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return M.runKernel(Cd,c,u)}var R1=P({depthwiseConv2dNativeBackpropFilter_:OM});function LM(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=j(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={dy:o,filter:n},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=M.runKernel(_d,c,u);return l?j(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var M1=P({depthwiseConv2dNativeBackpropInput_:LM});function zM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(Oh(M.state.gradientDepth,l)===!1){let N=Yr(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),Ph(N,l,c,u)}let p=E(e,"x","depthwiseConv2d"),d=E(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=j(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),A(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),A(Ha(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&A(Gt(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Pc(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused depthwiseConv2d"));let b=(N,T)=>{A(Xr(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,$,F,O]=T,B=Rh(N,F,l),W=M1($.shape,B,C,n,a,s,i),G=R1($,B,C.shape,n,a,s,i);if(O!=null){let q=Mh(g,B);return[W,G,q]}return[W,G]},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?qa((N,T,C)=>{let $=M.runKernel(bi,v,x);return C([T,N,$]),m&&($=j($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d):qa((N,T,C,$)=>{let F=M.runKernel(bi,v,x);return $([T,N,F,C]),m&&(F=j(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var DM=P({fusedDepthwiseConv2d_:zM});function BM({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(Oh(M.state.gradientDepth,s)===!1){let O=ze(e,t,n,a);return r!=null&&(O=Z(O,r)),Ph(O,s,i,o)}let l=E(e,"a","fused matMul"),c=E(t,"b","fused matMul");[l,c]=Nt(l,c);let u=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?c.shape[c.rank-1]:c.shape[c.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?c.shape[c.rank-2]:c.shape[c.rank-1],m=l.shape.slice(0,-2),f=c.shape.slice(0,-2),g=Pt(m),y=Pt(f);A(l.rank>=2&&c.rank>=2&&l.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${c.rank}.`),A(hr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${c.shape} must match.`),A(u===p,()=>`Error in fused matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),v=n?j(l,[g,u,d]):j(l,[g,d,u]),x=a?j(c,[y,h,p]):j(c,[y,p,h]),N;r!=null&&(N=E(r,"bias","fused matMul"),[N]=Nt(N,l),xt(b,N.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let C=(O,B)=>{let[W,G,q,H]=B,K=Rh(j(O,q.shape),q,s),X,ne;if(!n&&!a?(X=ze(K,G,!1,!0),ne=ze(W,K,!0,!1)):!n&&a?(X=ze(K,G,!1,!1),ne=ze(K,W,!0,!1)):n&&!a?(X=ze(G,K,!1,!0),ne=ze(W,K,!1,!1)):(X=ze(G,K,!0,!0),ne=ze(K,W,!0,!0)),r!=null){let J=Mh(H,K);return[X,ne,J]}else return[X,ne]},$={a:v,b:x,bias:N,preluActivationWeights:T},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?qa((O,B,W)=>{let G=M.runKernel(gi,$,F);return W([O,B,G]),{value:j(G,b),gradFunc:C}})(v,x):qa((O,B,W,G)=>{let q=M.runKernel(gi,$,F);return G([O,B,q,W]),{value:j(q,b),gradFunc:C}})(v,x,N)}var RM=P({fusedMatMul_:BM});function WM(e){return lb(e,.54,.46)}var VM=P({hammingWindow_:WM});function UM(e){return lb(e,.5,.5)}var P1=P({hannWindow_:UM});function GM(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let u={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return M.runKernel(Oo,u,p)}var KM=P({cropAndResize_:qM});function XM(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return M.runKernel(Go,n,{})}var YM=P({flipLeftRight_:XM});function ZM(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return M.runKernel(Sl,s,i)}var JM=P({rotateWithOffset_:ZM});function Hl(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function QM(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression"),i=E(t,"scores","nonMaxSuppression"),o=Hl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return M.runKernel(sl,{boxes:s,scores:i},l)}var eP=P({nonMaxSuppression_:QM});function nP(e,t,n){let a=tP(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function tP(e,t,n){return rP(e,t,n||aP)}function aP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function L1(e,t,n,a,r){return cb(e,t,n,a,r,0)}function z1(e,t,n,a,r,s){return cb(e,t,n,a,r,0,!1,s,!0)}function B1(e,t,n,a,r,s){return cb(e,t,n,a,r,s,!0)}function cb(e,t,n,a,r,s,i=!1,o=!1,l=!1){let c=[];for(let g=0;gr&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(W1);let u=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=c.pop(),{score:y,boxIndex:b,suppressBeginIndex:v}=g;if(y=v;--N){let T=sP(e,b,p[N]);if(T>=a){x=!0;break}if(g.score=g.score*iP(a,u,T),g.score<=r)break}g.suppressBeginIndex=p.length,x||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&nP(c,g,W1))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function sP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),c=Math.min(r[0],r[2]),u=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-c)*(d-u);if(h<=0||m<=0)return 0;let f=Math.max(s,c),g=Math.max(i,u),y=Math.min(o,p),b=Math.min(l,d),v=Math.max(y-f,0)*Math.max(b-g,0);return v/(h+m-v)}function iP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function W1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function oP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Hl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),c=l[0],u=l[1],{selectedIndices:p}=L1(c,u,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),tt(p,"int32")}var lP=oP;function uP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Hl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c={boxes:i,scores:o},u={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=M.runKernel(ol,c,u);return{selectedIndices:p[0],selectedScores:p[1]}}var cP=P({nonMaxSuppressionWithScore_:uP});async function pP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Hl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c=await Promise.all([i.data(),o.data()]),u=c[0],p=c[1],{selectedIndices:d,selectedScores:h}=B1(u,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:tt(d,"int32"),selectedScores:tt(h)}}var dP=pP;function hP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Hl(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:c,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:s},m=M.runKernel(il,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var mP=P({nonMaxSuppressionPadded_:hP});async function fP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Hl(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=z1(d,h,c,u,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:tt(m,"int32"),validOutputs:de(f,"int32")}}var gP=fP;function yP(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=j(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(ni,o,l);return i?j(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var V1=P({resizeBilinear_:yP});function bP(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=j(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(wc,o,l);return i?j(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var U1=P({resizeNearestNeighbor_:bP});function xP(e,t,n){A(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=j(kh(0,s,1,"int32"),[-1,1]),l=kh(0,i,1,"int32"),c=fe(o,l),u=pa(Si(c,de(+t,"int32")),Jr(c,de(-n,"int32"))),p=vt([s,i],a.dtype);return j($t(dt(j(a,[-1,s,i])).map(d=>vn(u,d,p))),r)}var vP=P({bandPart_:xP});function wP(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=Mn(e,e.shape[0],0).map(r=>Qr(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return G1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),a=dt(j(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[c,u]=G1(l,t);r.push(c),s.push(u)});let i=j($t(r,0),e.shape),o=j($t(s,0),e.shape);return[i,o]}}function G1(e,t=!1){return M.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Vy(n),s=jr(e),i=Ta([[1]],[1,1]),o=jr(i),l=n>=a?a:n;for(let c=0;c{let h=We(s,[c,c],[n-c,1]),m=Dh(h),f=We(s,[c,c],[1,1]),g=vn(ca(f,0),Ta([[-1]]),Ta([[1]])),y=fe(f,L(g,m)),b=ve(h,y);b.shape[0]===1?o=jr(i):o=Qe([i,We(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let v=Tt(ve(ze(g,y),m)),x=We(s,[c,0],[n-c,a]),N=L(v,o),T=Ue(o);if(c===0)s=fe(x,ze(N,ze(T,x)));else{let F=fe(x,ze(N,ze(T,x)));s=Qe([We(s,[0,0],[c,a]),F],0)}let C=Ue(N),$=We(r,[0,c],[n,r.shape[1]-c]);if(c===0)r=fe($,ze(ze($,o),C));else{let F=fe($,ze(ze($,o),C));r=Qe([We(r,[0,0],[n,c]),F],1)}return[o,s,r]}),Fe([u,p,d])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var NP=P({qr_:IP}),dn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(dn||(dn={}));function TP(e,t,n=dn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:L(a,r);if(n===dn.NONE)return s;if(n===dn.SUM)return Te(s);if(n===dn.MEAN){if(r==null)return St(s);{let i=a.size/r.size,o=ve(Te(s),Te(r));return i>1?ve(o,de(i)):o}}if(n===dn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return ve(Te(s),de(a.size));{let i=L(r,Xa(a.shape)),o=ce(Te(_i(i,de(0))),"float32");return ve(Te(s),o)}}throw Error(`Unknown reduction: ${n}`)}var yr=P({computeWeightedLoss_:TP});function SP(e,t,n,a=dn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(fe(r,s));return yr(o,i,a)}var CP=P({absoluteDifference_:SP});function _P(e,t,n,a,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),sn(s.shape,i.shape,"Error in cosineDistance: ");let l=de(1),c=fe(l,Te(L(s,i),n,!0));return yr(c,o,r)}var EP=P({cosineDistance_:_P});function AP(e,t,n,a=dn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),sn(r.shape,s.shape,"Error in hingeLoss: ");let o=de(1);r=fe(L(de(2),r),o);let l=Ye(fe(o,L(r,s)));return yr(l,i,a)}var FP=P({hingeLoss_:AP});function $P(e,t,n,a=1,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),sn(s.shape,i.shape,"Error in huberLoss: ");let l=de(a),c=Lt(fe(i,s)),u=Bl(c,l),p=fe(c,u),d=Z(L(de(.5),lt(u)),L(l,p));return yr(d,o,r)}var DP=P({huberLoss_:$P});function RP(e,t,n,a=1e-7,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),sn(s.shape,i.shape,"Error in logLoss: ");let l=de(1),c=de(a),u=Tt(L(s,$n(Z(i,c)))),p=L(fe(l,s),$n(Z(fe(l,i),c))),d=fe(u,p);return yr(d,o,r)}var MP=P({logLoss_:RP});function PP(e,t,n,a=dn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Ah(r,s);return yr(o,i,a)}var OP=P({meanSquaredError_:PP});function LP(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ye(a),s=L(a,n),i=gh(pn(Tt(Lt(a))));return Z(fe(r,s),i)}function zP(e,t,n,a=0,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(.5);s=Z(L(s,fe(u,c)),L(p,c))}let l=LP(s,i);return yr(l,o,r)}var BP=P({sigmoidCrossEntropy_:zP});function WP(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return qa((a,r,s)=>{let i=jy(r,[n],!0),o=fe(ce(r,"float32"),i);s([a,o]);let l=Tt(L(o,a));return{value:Te(l,[n]),gradFunc:(c,u)=>{let[p,d]=u,h=Ci(c.shape,[n]);return[L(j(c,h),fe(ce(p,"float32"),pn(d))),L(j(c,h),fe(pn(d),ce(p,"float32")))]}}})(e,t)}function VP(e,t,n,a=0,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(s.shape[1]);s=Z(L(s,fe(u,c)),ve(c,p))}let l=WP(s,i);return yr(l,o,r)}var UP=P({softmaxCrossEntropy_:VP}),GP={fft:jc,ifft:Ul,rfft:qc,irfft:Eh},HP={hammingWindow:VM,hannWindow:P1,frame:O1,stft:jM},Ya={flipLeftRight:YM,resizeNearestNeighbor:U1,resizeBilinear:V1,rotateWithOffset:JM,cropAndResize:KM,nonMaxSuppression:eP,nonMaxSuppressionAsync:lP,nonMaxSuppressionWithScore:cP,nonMaxSuppressionWithScoreAsync:dP,nonMaxSuppressionPadded:mP,nonMaxSuppressionPaddedAsync:gP},H1={bandPart:vP,gramSchmidt:kP,qr:NP},jP={absoluteDifference:CP,computeWeightedLoss:yr,cosineDistance:EP,hingeLoss:FP,huberLoss:DP,logLoss:MP,meanSquaredError:OP,sigmoidCrossEntropy:BP,softmaxCrossEntropy:UP},br=class extends H0{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Fe(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return g1(e,t)}dispose(){this.iterations_!=null&&Fe(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:de(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(br,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Lh=class extends br{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;D(()=>{let l=Z(L(i,this.rho),L(lt(s),1-this.rho)),c=L(ve(en(Z(o,this.epsilon)),en(Z(i,this.epsilon))),s),u=Z(L(o,this.rho),L(lt(c),1-this.rho));i.assign(l),o.assign(u);let p=Z(L(c,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Fe(this.accumulatedGrads.map(e=>e.variable)),Fe(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};Lh.className="Adadelta";qr(Lh);var zh=class extends br{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:D(()=>wn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;D(()=>{let i=Z(s,lt(r));s.assign(i);let o=Z(L(ve(r,en(Z(i,M.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Fe(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};zh.className="Adagrad";qr(zh);var Bh=class extends br{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],D(()=>{this.accBeta1=de(t).variable(),this.accBeta2=de(n).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=fe(1,this.accBeta2);t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:D(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:D(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedSecondMoment[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=Z(L(u,this.beta2),L(lt(l),1-this.beta2)),h=ve(p,n),m=ve(d,a);c.assign(p),u.assign(d);let f=Z(L(ve(h,Z(en(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(L(this.accBeta1,this.beta1)),this.accBeta2.assign(L(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Fe(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),D(()=>{this.accBeta1.assign(gr(this.beta1,this.iterations_+1)),this.accBeta2.assign(gr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Bh.className="Adam";qr(Bh);var Wh=class extends br{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],D(()=>{this.iteration=de(0).variable(),this.accBeta1=de(t).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=ve(-this.learningRate,Z(L(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedWeightedInfNorm[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=L(u,this.beta2),h=Lt(l),m=Ka(d,h);c.assign(p),u.assign(m);let f=Z(L(ve(a,n),ve(p,Z(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Z(this.iteration,1)),this.accBeta1.assign(L(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Fe(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Wh.className="Adamax";qr(Wh);var Kc=class extends br{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=M.registeredVariables[t];D(()=>{let s=Z(L(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=jt(de(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Kc.className="SGD";qr(Kc);var Vh=class extends Kc{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=de(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&D(()=>{let i,o=Z(L(this.m,r),s);this.useNesterov?i=Z(L(this.c,Z(s,L(o,this.m))),a):i=Z(L(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Fe(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Vh.className="Momentum";qr(Vh);var Uh=class extends br{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=M.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;D(()=>{let l=Z(L(i,this.decay),L(lt(s),1-this.decay));if(this.centered){let c=this.accumulatedMeanGrads[n].variable,u=Z(L(c,this.decay),L(s,1-this.decay)),p=ve(L(s,this.learningRate),en(fe(l,Z(lt(u),this.epsilon)))),d=Z(L(o,this.momentum),p);i.assign(l),c.assign(u),o.assign(d);let h=fe(a,d);a.assign(h)}else{let c=Z(L(i,this.decay),L(lt(s),1-this.decay)),u=Z(L(o,this.momentum),ve(L(s,this.learningRate),en(Z(c,this.epsilon))));i.assign(c),o.assign(u);let p=fe(a,u);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Fe(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Fe(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Fe(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Uh.className="RMSProp";qr(Uh);var Ai=class{static sgd(e){return new Kc(e)}static momentum(e,t,n=!1){return new Vh(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Uh(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Bh(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Lh(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Wh(e,t,n,a,r)}static adagrad(e,t=.1){return new zh(e,t)}},Fi={sgd:Ai.sgd,momentum:Ai.momentum,adadelta:Ai.adadelta,adagrad:Ai.adagrad,rmsprop:Ai.rmsprop,adamax:Ai.adamax,adam:Ai.adam},qP=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Gh(){return new Promise(e=>qP(()=>e()))}var _={};Oe(_,{ERF_A1:()=>rO,ERF_A2:()=>sO,ERF_A3:()=>iO,ERF_A4:()=>oO,ERF_A5:()=>lO,ERF_P:()=>aO,PARALLELIZE_THRESHOLD:()=>pb,SELU_SCALE:()=>q1,SELU_SCALEALPHA:()=>j1,applyActivation:()=>Ph,assertAndGetBroadcastShape:()=>xt,assertAxesAreInnerMostDims:()=>$D,assertParamsConsistent:()=>KP,assignToTypedArray:()=>gO,axesAreInnerMostDims:()=>Gy,calculateShapes:()=>D0,combineLocations:()=>b1,complexWithEvenIndex:()=>hO,complexWithOddIndex:()=>mO,computeConv2DInfo:()=>Pc,computeConv3DInfo:()=>e1,computeDefaultPad:()=>$y,computeDilation2DInfo:()=>n$,computeOptimalWindowSize:()=>YP,computeOutAndReduceShapes:()=>x1,computeOutShape:()=>XP,computePool2DInfo:()=>Q0,computePool3DInfo:()=>a$,convertConv2DDataFormat:()=>J0,eitherStridesOrDilationsAreOne:()=>Ha,expandShapeToKeepDim:()=>Ci,exponent:()=>bO,exponents:()=>yO,fromStringArrayToUint8:()=>wO,fromUint8ToStringArray:()=>vO,getAxesPermutation:()=>v1,getBroadcastDims:()=>K$,getComplexWithIndex:()=>fO,getFusedBiasGradient:()=>Mh,getFusedDyActivation:()=>Rh,getImageCenter:()=>ZP,getInnerMostAxes:()=>DD,getPermuted:()=>QP,getReductionAxes:()=>zt,getReshaped:()=>JP,getReshapedPermuted:()=>eO,getSliceBeginCoords:()=>tO,getSliceSize:()=>nO,getUndoAxesPermutation:()=>Hy,log:()=>cO,mergeRealAndImagArrays:()=>pO,prepareAndValidate:()=>$0,prepareSplitSize:()=>xO,segment_util:()=>K1,shouldFuse:()=>Oh,slice_util:()=>cn,splitRealAndImagArrays:()=>dO,tupleValuesAreOne:()=>Xr,upcastType:()=>la,validateInput:()=>by,validateUpdateShape:()=>yy,warn:()=>uO});function KP(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function XP(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function eO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var K1={};Oe(K1,{collectGatherOpShapeInfo:()=>NO,computeOutShape:()=>IO,segOpComputeOptimalWindowSize:()=>kO});function kO(e,t){let n=!1,a;for(e<=pb?(a=e,n=!0):a=fd(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=fd(e,a+1);return a}function IO(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nZd(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function wO(e){return e.map(t=>Cc(t))}var Za={};Oe(Za,{nonMaxSuppressionV3Impl:()=>L1,nonMaxSuppressionV4Impl:()=>z1,nonMaxSuppressionV5Impl:()=>B1,whereImpl:()=>_1});var X1={kernelName:So,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,Gl(ce(n,"float32"),-1))}}},TO={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(ce(n,"float32")),r=en(fe(de(1),a));return Tt(ve(e,r))}}}},SO={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=en(fe(lt(ce(n,"float32")),1));return ve(e,a)}}}},CO={kernelName:Lr,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),j(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),j(s,a.shape)}}}},_O={kernelName:Ss,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},EO={kernelName:Cs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},AO={kernelName:lc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},FO={kernelName:Eo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,en(fe(de(1),lt(ce(n,"float32")))))}}},$O={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=en(Z(de(1),lt(ce(n,"float32"))));return ve(e,a)}}}},DO={kernelName:Do,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=Z(lt(n),lt(a)),i=L(e,ve(a,s)),o=zt(n.shape,r);return o.length>0&&(i=Te(i,o)),j(i,n.shape)},b:()=>{let s=Z(lt(n),lt(a)),i=Tt(L(e,ve(n,s))),o=zt(a.shape,r);return o.length>0&&(i=Te(i,o)),j(i,a.shape)}}}},RO={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(lt(ce(n,"float32")),1))}}},MO={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,fe(de(1),lt(ce(n,"float32"))))}}};function PO(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,c=o,u=!1;o.rank===4&&(u=!0,l=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=j(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),s!=null&&A(Gt(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:c},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=M.runKernel(vd,p,d);return u?j(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var OO=P({avgPool3dGrad_:PO}),LO={kernelName:uc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>OO(e,a,r,s,i,o)}}};function zO(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,c=!1;i.rank===3&&(c=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=j(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let u={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=M.runKernel(xd,u,p);return c?j(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var BO=P({avgPoolGrad_:zO}),WO={kernelName:_s,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>BO(e,a,r,s,i)}}},VO={kernelName:Es,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},UO={kernelName:cc,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Vc(e,a,r)}}},GO={kernelName:a0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Te(e,o,!0)}}},HO={kernelName:As,gradFunc:e=>({x:()=>e.clone()})},jO={kernelName:Ro,gradFunc:e=>({x:()=>Ge(e)})},qO={kernelName:zr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>vn(pa(Jr(a,r),Si(a,s)),e,Ge(e))}}},KO={kernelName:pc,inputsToSave:["x"],gradFunc:X1.gradFunc},XO={kernelName:Mo,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=oa(r,t[0].shape)[0],i=a.map(o=>o[s]);return Mn(e,i,s).map(o=>()=>o)}},YO={kernelName:Fs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(Xr(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>My(a.shape,e,r,i,o,l),filter:()=>ub(a,e,r.shape,i,o,l)}}},ZO={kernelName:$s,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>ub(e,a,r.shape,s,i,o,l)}}};function JO(e,t,n,a,r){let s=e;e.rank===4&&(s=j(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=j(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return M.runKernel(Nd,o,l)}var QO=P({conv3DBackpropFilter_:JO}),eL={kernelName:dc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(Xr(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>u1(i.shape,e,o,r,s),filter:()=>QO(i,e,o.shape,r,s)}}},tL={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Tt(Sh(ce(n,"float32"))),e)}}},nL={kernelName:Po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Ch(ce(n,"float32")),e)}}},aL={kernelName:Rs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=v1([r],a.rank),l=hh(e,r,s,!i);return o!=null&&(l=Ue(l,o)),l}}}},rL={kernelName:Ms,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(Xr(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,c]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),A(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),A(Ha(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&A(Gt(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>M1(l.shape,e,c,r,s,a,i),filter:()=>R1(l,e,c.shape,r,s,a,i)}}},sL={kernelName:hc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>M.runKernel(Ad,s,n),filter:()=>M.runKernel(Fd,i,n)}}},iL={kernelName:zo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>M.runKernel($d,a)}}},oL={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(pn(Tt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>L(e,a)}}},lL={kernelName:Os,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,n)}}},uL={kernelName:Vo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>j(e,n.shape)}}},cL={kernelName:Uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,pn(n))}}},pL={kernelName:Ls,gradFunc:e=>({x:()=>Ge(e)})},dL={kernelName:zs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?j(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=j(Te(s,i),a.shape));let o=lt(a);return Tt(ve(s,ce(o,"float32")))}}}},hL={kernelName:Bs,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?de(1):o,c=zt(s.shape,r.shape),u=[];if(s.rank===1){for(let f=0;fs.rank===1?j(L(L(e,ja(j(h,[1,1,1,s.shape[0]]),u)),l),r.shape):j(L(L(e,h),l),r.shape),mean:()=>{let f=L(L(h,de(-1)),d);return s.rank===1&&(f=Te(f,c)),j(f,s.shape)},variance:()=>{let f=L(L(m,p),d);return s.rank===1&&(f=Te(f,c)),j(f,s.shape)},scale:()=>{let f=L(p,h),g=L(e,f);return s.rank===1&&(g=Te(g,c)),j(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Te(f,c)),j(f,s.shape)}}}},mL={kernelName:Ho,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=oa(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,c=o.slice(0,i),u=c.length,p=o.slice(s,o.length).slice(1),d=p.length,h=Y1(0,u),m=Y1(u+1,u+1+d),f=Z1([c,[l],p]),g=j(e,f),y=j(r,[l]),b=Z1([[u],h,m]),v=Ue(g,b),x=sb(v,y,a.shape[i]),N=Hy(b);return x=Ue(x,N),x},indices:()=>r}}};function Y1(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},gL={kernelName:Ko,gradFunc:e=>({x:()=>ce(e,"float32")})},yL={kernelName:Xo,gradFunc:e=>({x:()=>Ge(e)})},bL={kernelName:Yo,gradFunc:e=>({x:()=>Ge(e)})},xL={kernelName:Zo,gradFunc:e=>({x:()=>Ge(e)})},vL={kernelName:Vs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=ca(a,0);return{x:()=>vn(s,e,L(e,r))}}},wL={kernelName:el,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(n,1))}}},kL={kernelName:Us,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,ce(n,"float32"))}}},IL={kernelName:r0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=pn(a);return fe(e,L(Te(e,r,s),i))}}}};function NL(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return M.runKernel(Od,o,l)}var TL=P({localResponseNormalizationBackprop_:NL}),SL={kernelName:yc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>TL(a,r,e,s,i,o,l)}}};function J1(e,t,n,a){return t.rankL(e,ce(Zr(n,t),e.dtype))}}var Q1={kernelName:Gs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=oa(r,s.shape),l=J1(e,i,s,o);return{x:()=>l.x()}}},CL={kernelName:Hs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(Jr(n,a),"float32")),b:()=>L(e,ce(fh(n,a),"float32"))}}};function _L(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),c=E(n,"output","maxPool3dGrad"),u=o,p=l,d=c,h=!1;l.rank===4&&(h=!0,u=j(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=j(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=j(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),A(u.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:u,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=M.runKernel(zd,m,f);return h?j(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var EL=P({maxPool3dGrad_:_L}),AL={kernelName:bc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>EL(e,a,r,s,i,o,l)}}};function FL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),c=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let u={dy:o,input:l,output:c},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return M.runKernel(Ld,u,p)}var $L=P({maxPoolGrad_:FL}),DL={kernelName:js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>$L(e,a,r,s,i,o)}}},RL={kernelName:qs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=oa(r,a.shape),i=x1(a.shape,s)[1],o=Pt(i);return{x:()=>{let l=a.shape.slice();s.forEach(u=>{l[u]=1});let c=j(e,l);return ve(L(c,Xa(a.shape,"float32")),o)}}}},ML={kernelName:Ks,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=oa(r,s.shape),l=J1(e,i,s,o);return{x:()=>l.x()}}},PL={kernelName:Xs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(Si(n,a),"float32")),b:()=>L(e,ce(ca(n,a),"float32"))}}},OL={kernelName:xc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},LL={kernelName:nl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=zt(n.shape,r);return s.length>0?j(Te(e,s),n.shape):e},b:()=>{let s=L(e,Tt(Ol(ve(n,a)))),i=zt(a.shape,r);return i.length>0?j(Te(s,i),a.shape):s}}}},zL={kernelName:Ys,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=L(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?j(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);return i.length>0?j(Te(s,i),a.shape):s}}}},BL={kernelName:al,gradFunc:e=>({x:()=>Tt(e)})},WL={kernelName:Zs,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>vt(n.shape,"float32")}}},VL={kernelName:ll,gradFunc:e=>({x:()=>Ge(e)})},UL={kernelName:ul,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},ek={kernelName:Js,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},GL={kernelName:Qs,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=xt(s.shape,i.shape);return{a:()=>{let l=ce(i,"float32"),c=L(e,L(l,gr(s,fe(l,de(1))))),u=zt(s.shape,o);return u.length>0&&(c=Te(c,u)),j(c,s.shape)},b:()=>{let l=ca(s,0),c=vn(l,$n(s),Ge(s)),u=L(e,L(r,c)),p=zt(i.shape,o);return p.length>0&&(u=Te(u,p)),j(u,i.shape)}}}},HL={kernelName:ei,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=ca(n,0);return{x:()=>vn(r,e,L(e,a)),alpha:()=>{let s=vn(r,Ge(e),L(e,n)),i=zt(a.shape,e.shape);return i.length>0&&(s=Te(s,i)),j(s,a.shape)}}}},jL={kernelName:Ps,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?j(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=j(Te(s,i),a.shape));let o=lt(a);return Tt(ve(s,ce(o,"float32")))}}}},qL={kernelName:pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Tt(lt(n)))}}},KL={kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(Si(n,6),Gl(n));return{x:()=>L(e,ce(a,"float32"))}}},XL={kernelName:ti,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ce(Gl(n),"float32"))}}},YL={kernelName:dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>j(e,n.shape)}}},ZL={kernelName:ni,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(Gd,r,n)}}},JL={kernelName:wc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(Ud,r,n)}}},QL={kernelName:ri,gradFunc:(e,t,n)=>{let{dims:a}=n,r=oa(a,e.shape);return{x:()=>Rn(e,r)}}},e3={kernelName:si,gradFunc:e=>({x:()=>Ge(e)})},t3={kernelName:ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Tt(ve(e,L(gr(n,1.5),2)))}}},n3={kernelName:ml,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ce(Ge(n),"float32"),t:()=>L(e,ce(n,e.dtype)),e:()=>L(e,ce(Wc(n),e.dtype))}}},a3={kernelName:fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ca(n,de(0)),r=de(j1),s=de(q1),i=L(e,s),o=L(L(e,r),pn(ce(n,"float32")));return vn(a,i,o)}}}},r3={kernelName:li,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(n,fe(de(1),n)))}}},s3={kernelName:bl,gradFunc:e=>({x:()=>Ge(e)})},i3={kernelName:oi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(zc(ce(n,"float32")),e)}}},o3={kernelName:yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(dh(ce(n,"float32")),e)}}},l3={kernelName:gl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=V0(a,r,s),c=[];for(let u=0;uZn(e,c)}}},u3={kernelName:pi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=L(e,a);return{logits:()=>fe(i,L(Te(i,[r],s),a))}}},c3={kernelName:xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ua(n))}}},tk={kernelName:kc,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Oc(e,a,r)}}},nk={kernelName:vl,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},p3={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,L(en(ce(n,"float32")),2))}}},d3={kernelName:Ic,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(ce(n,"float32"),2))}}},h3={kernelName:di,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=de(2);return{a:()=>L(e,L(r,fe(n,a))),b:()=>L(e,L(r,fe(a,n)))}}},m3={kernelName:Wr,gradFunc:e=>({x:()=>Ge(e)})},f3={kernelName:hi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),j(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),j(Tt(s),a.shape)}}}},g3={kernelName:ci,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;oa(s,a.shape).forEach(l=>{r[l]=1});let i=j(e,r),o=L(i,Xa(a.shape,"float32"));return{x:()=>o}}},y3={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,lt(zc(n)))}}},b3={kernelName:mi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(fe(de(1),lt(n)),e)}}},x3={kernelName:Br,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Hy(r);return{x:()=>Ue(e,s)}}},w3={kernelName:Nl,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},I3={kernelName:Nc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>k3(e,n)}}};function k3(e,t){let n=Ka(t,Ge(t)),a=Ti(e,n),r=Jr(t,de(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},T3=[X1,TO,SO,CO,_O,EO,AO,FO,$O,DO,RO,MO,LO,WO,VO,UO,GO,HO,jO,qO,KO,XO,ZO,YO,eL,tL,nL,aL,rL,sL,jL,iL,oL,lL,uL,cL,dL,pL,hL,mL,fL,gL,yL,bL,xL,vL,wL,kL,IL,SL,Q1,Q1,CL,AL,DL,RL,ML,PL,OL,LL,zL,BL,WL,VL,UL,ek,ek,GL,HL,qL,KL,XL,YL,ZL,JL,QL,e3,t3,n3,a3,r3,s3,i3,o3,l3,u3,c3,tk,tk,nk,nk,p3,h3,d3,m3,f3,g3,y3,b3,x3,v3,w3,I3,N3];for(let e of T3)s0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),Iy(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),Ny(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),Z(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),lh(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),Rc(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Mc(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),Ty(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),j(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),j(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),j(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),j(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),j(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),j(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),Sy(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),Cy(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),_y(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Ey(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Ay(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Xn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Oc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),fr(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Lc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),Ry(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),qt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ae&&(e=[e]),Qe([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ch(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),ph(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),zc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),dh(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),hh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Oy(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Yr(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Ly(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),zy(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),ve(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),p1(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),Pl(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),Zr(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),By(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),pn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),Fn(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),Wy(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),jc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),j(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Ol(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),oh(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),Ti(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Jr(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),ca(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),Ul(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),Eh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),d1(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),h1(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),m1(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Bc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),Si(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),fh(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Uy(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),y1(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),bh(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),jy(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),$n(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),gh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),pa(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Wc(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),xh(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),w1(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Ft(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),Yn(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),Ka(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),St(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),zl(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Bl(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Ky(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),Xy(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),L(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),Tt(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Dh(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),_i(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),$l(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),Dn(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),Zn(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),N1(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),gr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),Uc(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),wh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),Jy(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),Ye(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),Ih(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),j(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),j(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),V1(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),U1(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Rn(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),qc(this)};Y().prototype.round=function(){return this.throwIfDisposed(),Qy(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),Nh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),Th(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ei(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),ua(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),eb(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),Sh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),Ch(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Na(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),Ll(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Vc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),Mn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),en(this)};Y().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Ah(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),Qr(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ae?[this,e]:[this,...e];return $t(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),Gl(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),nb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),fe(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Te(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),ab(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),Ml(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),ja(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ce(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ce(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ce(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),rb(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ue(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),$h(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),sb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),vn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var ak={};Oe(ak,{maxNorm:()=>S3,minMaxNorm:()=>E3,nonNeg:()=>_3,unitNorm:()=>C3});var db;function Bt(){return db==null&&(db=Y0().epsilon()),db}function Ca(){return"channelsLast"}var xr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,xr.prototype)}},_a=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,_a.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},rk=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,rk.prototype)}},A3=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,A3.prototype)}};function $i(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var da={};function hb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function mb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>mb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:mb(a))}}}function Xc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in da)i=da[s];else if(i=t[s],i==null)throw new z(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${a.shape}`),A(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return M.runKernel(zo,o,l)}var By=O({depthToSpace_:X$});function Y$(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d"),l=E(t,"filter","depthwiseConv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&A(Gt(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:c,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=M.runKernel(Ps,p,d);return u?H(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var Yr=O({depthwiseConv2d_:Y$});function Z$(e){let t={x:E(e,"x","diag")};return M.runKernel($d,t)}var J$=O({diag_:Z$});function Q$(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,c=!1;i.rank===3&&(l=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0);let u={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=M.runKernel(dc,u,p);return c?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Wy=O({dilation2d_:Q$});function eD(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function zt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function xt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&sn(s.shape,l.shape,"Error in where: ");let c={condition:s,t:o,e:l};return M.runKernel(ml,c)}var vn=O({where_:nD});function aD(e){let t={x:E(e,"x","zerosLike")};return M.runKernel(Tl,t)}var Ge=O({zerosLike_:aD});function rD(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Nt(n,a);let r=ve(n,a),s=Ge(r),i=Zr(a,s);return vn(i,s,r)}var Vy=O({divNoNan_:rD});function sD(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=H(n,[1,-1]),o=H(a,[-1,1]),l=ze(i,o);return H(l,[])}else if(n.rank===1&&a.rank===2){let i=H(n,[1,-1]),o=H(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return H(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=H(a,[-1,1]),o=ze(n,i);return H(o,[o.size])}else{let i=H(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var g1=O({dot_:sD});function iD(e){let t={x:E(e,"x","elu")};return M.runKernel(Bo,t)}var Pl=O({elu_:iD});function oD(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ce(t,"float32"));let n={x:t};return M.runKernel(Wo,n)}var Uy=O({erf_:oD});function lD(e){let t={x:E(e,"x","exp")};return M.runKernel(Ls,t)}var pn=O({exp_:lD});function uD(e,t=0){let n=E(e,"x","expandDims","string_or_numeric");A(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return M.runKernel(Uo,a,r)}var $n=O({expandDims_:uD});function cD(e){let t={x:E(e,"x","expm1")};return M.runKernel(Go,t)}var Gy=O({expm1_:cD});function pD(e,t){let n=E(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return M.runKernel(Wr,a,r)}var qa=O({tile_:pD});function dD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),A(Gt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=H(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},c={depthRadius:t,bias:n,alpha:a,beta:r},u=M.runKernel(gc,l,c);return o?H(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var jy=O({localResponseNormalization_:ND});function TD(e){let t={x:E(e,"x","log")};return M.runKernel(Hs,t)}var Dn=O({log_:TD});function SD(e){let t={x:E(e,"x","log1p")};return M.runKernel(el,t)}var xh=O({log1p_:SD});function CD(e){return A(Lr(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(a),[a],r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),vh(i),i[0]})}}function _D(e){return A(Lr(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=$c(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(...a),a,r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),vh(i),i})}}function ED(e){return A(Lr(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ae,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=M.gradients(()=>e(t),[t],n);return vh(a),{grad:a[0],value:r}}}function AD(e){return A(Lr(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ae),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=M.gradients(()=>e(...t),t,n);return n!=null&&sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),vh(a.grads),a}}function w1(e,t){A(Lr(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(c=>c instanceof Ur),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let c in M.registeredVariables)t.push(M.registeredVariables[c])}let a=n?t.filter(c=>!c.trainable):null,r=t.length;t=t.filter(c=>c.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=M.gradients(e,t,null,s);A(o.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((c,u)=>{o[u]!=null&&(l[c.name]=o[u])}),a!=null&&a.forEach(c=>l[c.name]=null),{value:i,grads:l}}function Ka(e){return M.customGrad(e)}function vh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function FD(e){let t={x:E(e,"x","neg")};return M.runKernel(al,t)}var Tt=O({neg_:FD});function $D(e){let t={x:E(e,"x","softplus")};return M.runKernel(xl,t)}var Ll=O({softplus_:$D});function DD(e){let t=E(e,"x","logSigmoid");return Ka(n=>({value:Tt(Ll(Tt(n))),gradFunc:a=>L(a,ca(Tt(n)))}))(t)}var k1=O({logSigmoid_:DD});function RD(e,t=null,n=!1){let a={x:E(e,"x","max")},r={reductionIndices:t,keepDims:n};return M.runKernel(js,a,r)}var Yn=O({max_:RD});function MD(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(fi,r)}var fe=O({sub_:MD});function PD(e,t=null,n=!1){let a=E(e,"x","sum");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(di,r,s)}var Te=O({sum_:PD});function OD(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Ka((a,r)=>{let s=!0,i=Yn(a,t,!0),o=fe(a,i),l=fe(ce(o,"float32"),Dn(Te(pn(o),t,s)));return r([l]),{value:l,gradFunc:(c,u)=>{let[p]=u,d=!0,h=pn(p);return fe(c,L(Te(c,t,d),h))}}})(n)}var wh=O({logSoftmax_:OD});function qy(e,t){for(let n=0;ne[s]);return[n,r]}function Ei(e,t){let n=t.map(a=>1);return I1(e,n,t)}function LD(e,t,n){A(qy(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function T1(e,t){if(qy(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Ky(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function zD(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(ja(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&A(Gt(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Ks,c,u);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ft=O({maxPool_:HD});function jD(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(yc,c,u);return l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Yy=O({maxPool3d_:jD});function qD(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=M.runKernel(Ud,s,i);return{result:o[0],indexes:o[1]}}var C1=O({maxPoolWithArgmax_:qD});function KD(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(qs,r)}var Xa=O({maximum_:KD});function XD(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return M.runKernel(Xs,a,r)}var St=O({mean_:XD});function YD(e,t=null,n=!1){let a={x:E(e,"x","min")},r={axis:t,keepDims:n};return M.runKernel(Ys,a,r)}var zl=O({min_:YD});function ZD(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Zs,r)}var Bl=O({minimum_:ZD});function JD(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return M.runKernel(bc,i,s)}var Zy=O({mirrorPad_:JD});function QD(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(nl,r)}var Jy=O({mod_:QD});function eR(e){let t=E(e,"x","square"),n={};return M.runKernel("Square",{x:t},n)}var lt=O({square_:eR});function tR(e,t=null,n=!1){e=E(e,"x","moments");let a=la(t,e.shape),r=St(e,a,n),s=r.shape;n||(s=Ei(r.shape,a));let i=lt(fe(ce(e,"float32"),H(r,s))),o=St(i,a,n);return{mean:r,variance:o}}var Ih=O({moments_:tR});function nR(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=$c(n,"c","multiRNNCell"),i=$c(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?H(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},c=M.runKernel(Gd,o,l);return i===1?H(c,[c.size]):c}var _1=O({multinomial_:rR});function sR(e,t){let n=E(e,"a","notEqual"),a=E(t,"b","notEqual");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(rl,r)}var Ai=O({notEqual_:sR});function vt(e,t="float32"){if(t==="complex64"){let a=vt(e,"float32"),r=vt(e,"float32");return Gr(a,r)}let n=xd(Pt(e),t);return M.makeTensor(n,e,t)}function Ya(e,t="float32"){if(t==="complex64"){let a=Ya(e,"float32"),r=vt(e,"float32");return Gr(a,r)}let n=Hg(Pt(e),t);return M.makeTensor(n,e,t)}function iR(e){let t={x:E(e,"x","onesLike")};return M.runKernel(ll,t)}var Rn=O({onesLike_:iR});function oR(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=H(n,[-1,1]),s=H(a,[1,-1]);return ze(r,s)}var lR=O({outerProduct_:oR});function uR(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return M.runKernel(ei,s,r)}var Zn=O({pad_:uR});function cR(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Zn(e,[t],n)}var pR=O({pad1d_:cR});function dR(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Zn(e,t,n)}var hR=O({pad2d_:dR});function mR(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Zn(e,t,n)}var fR=O({pad3d_:mR});function gR(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Zn(e,t,n)}var yR=O({pad4d_:gR});function bR(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return M.runKernel(wc,r,s)}var Vc=O({spaceToBatchND_:bR});function wR(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=E(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]])),A(ja(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let c=r1(o.shape,t,s,r,a),u=[c.dilationHeight,c.dilationWidth],p;a==="same"?p=vR([c.filterHeight,c.filterWidth],u):p=[[0,0],[0,0]];let d=u[0]===1&&u[1]===1,[h,m]=xR([c.inHeight,c.inWidth],u,p),f=d?a:"valid",g=d?o:Vc(o,u,h),y=(n==="avg"?()=>Xn(g,t,s,f):()=>Ft(g,t,s,f))(),b=d?y:Oc(y,u,m);return l?H(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function xR(e,t,n){let a=n.map(u=>u[0]),r=n.map(u=>u[1]),s=e.concat(a,r),i=t.map((u,p)=>(u-s[p]%u)%u),o=r.map((u,p)=>u+i[p]),l=t.map((u,p)=>[a[p],o[p]]),c=t.map((u,p)=>[0,i[p]]);return[l,c]}function vR(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var E1=O({pool_:wR});function kR(e,t){let n=E(e,"base","pow"),a=E(t,"exp","pow");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(ti,r)}var yr=O({pow_:kR});function IR(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return M.runKernel(ni,r)}var Uc=O({prelu_:IR});function NR(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(cl,r,s)}var Nh=O({prod_:NR});function TR(e,t,n){let a=Pt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},CR=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Qy.alea(r.toString()),this.randn=new eb(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Qy.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ER(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new CR(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Mn(t,0)}var zR=O({reverse1d_:LR});function BR(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Mn(n,t)}var WR=O({reverse2d_:BR});function VR(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Mn(n,t)}var UR=O({reverse3d_:VR});function GR(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Mn(n,t)}var HR=O({reverse4d_:GR});function jR(e){let t={x:E(e,"x","round")};return M.runKernel(oi,t)}var nb=O({round_:jR});function qR(e){let t={x:E(e,"x","rsqrt")};return M.runKernel(li,t)}var Ch=O({rsqrt_:qR});function de(e,t){if((on(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&on(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Hr(e,[],[],t)}function KR(e){let t={x:E(e,"x","selu")};return M.runKernel(fl,t)}var _h=O({selu_:KR});function XR(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),c=E(n,"pointwiseFilter","separableConv2d"),u=o,p=!1;if(o.rank===3&&(p=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(u.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),A(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);let d=l.shape[2],h=l.shape[3];A(c.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${c.shape[2]}.`);let m=Yr(u,l,a,r,i,s),f=At(m,c,1,"valid",i);return p?H(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Fi=O({separableConv2d_:XR});async function YR(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let u=0;u`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),We(a,[t],[n])}var Fh=O({slice1d_:eM});function tM(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var rb=O({slice2d_:tM});function nM(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Vl=O({slice3d_:nM});function aM(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Hc=O({slice4d_:aM});function rM(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return M.runKernel(hi,a,r)}var Ta=O({softmax_:rM});function sM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Pd,t)}var jc=O({fft_:sM});function iM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Od,t)}var Ul=O({ifft_:iM});function oM(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=H(e,[n,t]);a=Ul(r)}else{let r=[n,2*(t-1)],s=H(Gc(e),[n,t]),i=H(yh(e),[n,t]),o=Mn(We(s,[0,1],[n,t-2]),1),l=L(Mn(We(i,[0,1],[n,t-2]),1),de(-1)),c=Qe([s,o],1),u=Qe([i,l],1),p=H(Gr(c,u),[r[0],r[1]]);a=Ul(p)}if(a=Gc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=H(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var $h=O({irfft_:oM});function lM(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return M.runKernel(vl,a,r)}var Pn=O({split_:lM});function uM(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=We(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Qe([e,vt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=H(Gr(r,s),[a,n]),o=jc(i),l=Math.floor(n/2)+1,c=Gc(o),u=yh(o),p=Pn(c,[l,n-l],c.shape.length-1),d=Pn(u,[l,n-l],u.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,H(Gr(p[0],d[0]),h)}var qc=O({rfft_:uM});function cM(e){let t={x:E(e,"x","sqrt")};return M.runKernel(pi,t)}var en=O({sqrt_:cM});function pM(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a},s={};return M.runKernel(mi,r,s)}var Dh=O({squaredDifference_:pM});function dM(e,t){let n=E(e,"x","squeeze");return H(n,Yw(n.shape,t).newShape)}var Qr=O({squeeze_:dM});function hM(e,t=0){let n=$c(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return M.runKernel(ul,a,r)}var $t=O({stack_:hM});function mM(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return M.runKernel(Vr,n,a)}var Gl=O({step_:mM});function fM(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let c={x:E(e,"x","stridedSlice")},u={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return M.runKernel(wl,c,u)}var sb=O({stridedSlice_:fM});function gM(e){let t={x:E(e,"x","tan")};return M.runKernel(kl,t)}var ib=O({tan_:gM});function tt(e,t){Ns(e);let n=Ga(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Hr(e,null,n,t)}function Sa(e,t,n){if(Ns(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=Ga(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Hr(e,t,a,n)}function Ca(e,t,n){if(Ns(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=Ga(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Hr(e,t,a,n)}function yM(e,t,n){if(Ns(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=Ga(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Hr(e,t,a,n)}function bM(e,t,n){if(Ns(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=Ga(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Hr(e,t,a,n)}function xM(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=M.runKernel(Il,s,i);return{values:o,indices:l}}var ob=O({topk_:xM});function vM(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new eb(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=M.runKernel(Xd,a,r);return{values:s,indices:i}}var Mh=O({unique_:wM});function kM(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(Gt(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return M.runKernel(Ic,s,i)}var lb=O({unsortedSegmentSum_:kM});function IM(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return M.runKernel(Nl,a,r)}var dt=O({unstack_:IM});function $1(e,t=!0,n,a){return M.makeVariable(e,t,n,a)}function D1(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=de(1),c=fe(l,o),u=L(fe(i,s),c);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let p=E(a,"step","movingAverage");u=ve(u,fe(l,yr(o,p)))}return Z(s,u)}var EM=O({movingAverage_:_M});function AM(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");wy(r,a,n);let s={indices:a,updates:r},i={shape:n};return M.runKernel(hl,s,i)}var M1=O({scatterND_:AM});function FM(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function $M(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense"),i=E(a,"defaultValue","sparseToDense",s.dtype);FM(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return M.runKernel(Kd,o,l)}var cb=O({sparseToDense_:$M});function DM(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND"),indices:n};return M.runKernel(qo,a)}var P1=O({gatherND_:DM});function RM(e,t){if(t==null)return e.shape.slice();if(mr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ae?r.clone():r;let s=RM(r,n),i=1-t,o=ve(Ol(Z(Wl(s,0,1,"float32",a),i)),i);return L(r,o)}var O1=O({dropout_:MM});function L1(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function pb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,c]=[i.length/s,s],u=Zw("bool",l);for(let p=0;pg.value-f.value),u[p]=0;for(let f=0;fLM,depthwiseConv2d:()=>zM,matMul:()=>BM});function WM(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let c=s==="NHWC"?o.shape[3]:o.shape[1],u=s==="NHWC"?l.shape[3]:l.shape[1];A(c===n[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${n[2]}.`),A(u===n[3],()=>`Error in conv2dDerFilter: depth of dy (${u}) must match output depth for filter (${n[3]}).`),i!=null&&A(Gt(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return M.runKernel(Sd,p,d)}var db=O({conv2DBackpropFilter_:WM});function Oh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return L(e,Gl(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Lh(e,t){let n=t,a=zt(e.shape,t.shape);return a.length>0&&(n=Te(n,a)),H(n,e.shape)}function zh(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ye(e);if(t==="elu")return Pl(e);if(t==="relu6")return Sh(e);if(t==="prelu")return Uc(e,n);if(t==="leakyrelu")return Bc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var Bh=(e,t)=>!(e>0)||t==="linear";function VM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(l=l||"linear",Bh(M.state.gradientDepth,l)===!1){let N=At(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),zh(N,l,c,u)}let p=E(e,"x","conv2d"),d=E(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&A(Gt(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),A(ja(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Pc(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused conv2d"));let b=(N,T)=>{let[C,F,$,P]=T,B=Oh(N,$,l);A(Xr(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=Ly(F.shape,B,C,n,a),G=db(F,B,C.shape,n,a),q=[W,G];if(P!=null){let j=Lh(P,B);q.push(j)}return q},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Ka((N,T,C)=>{let F=M.runKernel(xi,v,x);return C([T,N,F]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d):Ka((N,T,C,F)=>{let $=M.runKernel(xi,v,x);return F([T,N,$,C]),m&&($=H($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var LM=O({fusedConv2d_:VM});function UM(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={x:o,dy:l},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return M.runKernel(Ad,c,u)}var z1=O({depthwiseConv2dNativeBackpropFilter_:UM});function GM(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={dy:o,filter:n},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=M.runKernel(Fd,c,u);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var B1=O({depthwiseConv2dNativeBackpropInput_:GM});function HM({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(Bh(M.state.gradientDepth,l)===!1){let N=Yr(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),zh(N,l,c,u)}let p=E(e,"x","depthwiseConv2d"),d=E(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),A(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),A(ja(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&A(Gt(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Pc(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused depthwiseConv2d"));let b=(N,T)=>{A(Xr(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,F,$,P]=T,B=Oh(N,$,l),W=B1(F.shape,B,C,n,a,s,i),G=z1(F,B,C.shape,n,a,s,i);if(P!=null){let q=Lh(g,B);return[W,G,q]}return[W,G]},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Ka((N,T,C)=>{let F=M.runKernel(vi,v,x);return C([T,N,F]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d):Ka((N,T,C,F)=>{let $=M.runKernel(vi,v,x);return F([T,N,$,C]),m&&($=H($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var zM=O({fusedDepthwiseConv2d_:HM});function jM({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(Bh(M.state.gradientDepth,s)===!1){let P=ze(e,t,n,a);return r!=null&&(P=Z(P,r)),zh(P,s,i,o)}let l=E(e,"a","fused matMul"),c=E(t,"b","fused matMul");[l,c]=Nt(l,c);let u=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?c.shape[c.rank-1]:c.shape[c.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?c.shape[c.rank-2]:c.shape[c.rank-1],m=l.shape.slice(0,-2),f=c.shape.slice(0,-2),g=Pt(m),y=Pt(f);A(l.rank>=2&&c.rank>=2&&l.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${c.rank}.`),A(mr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${c.shape} must match.`),A(u===p,()=>`Error in fused matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),v=n?H(l,[g,u,d]):H(l,[g,d,u]),x=a?H(c,[y,h,p]):H(c,[y,p,h]),N;r!=null&&(N=E(r,"bias","fused matMul"),[N]=Nt(N,l),xt(b,N.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let C=(P,B)=>{let[W,G,q,j]=B,X=Oh(H(P,q.shape),q,s),K,ne;if(!n&&!a?(K=ze(X,G,!1,!0),ne=ze(W,X,!0,!1)):!n&&a?(K=ze(X,G,!1,!1),ne=ze(X,W,!0,!1)):n&&!a?(K=ze(G,X,!1,!0),ne=ze(W,X,!1,!1)):(K=ze(G,X,!0,!0),ne=ze(X,W,!0,!0)),r!=null){let J=Lh(j,X);return[K,ne,J]}else return[K,ne]},F={a:v,b:x,bias:N,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?Ka((P,B,W)=>{let G=M.runKernel(bi,F,$);return W([P,B,G]),{value:H(G,b),gradFunc:C}})(v,x):Ka((P,B,W,G)=>{let q=M.runKernel(bi,F,$);return G([P,B,q,W]),{value:H(q,b),gradFunc:C}})(v,x,N)}var BM=O({fusedMatMul_:jM});function qM(e){return pb(e,.54,.46)}var KM=O({hammingWindow_:qM});function XM(e){return pb(e,.5,.5)}var W1=O({hannWindow_:XM});function YM(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let u={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return M.runKernel(Lo,u,p)}var eP=O({cropAndResize_:QM});function tP(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return M.runKernel(Ho,n,{})}var nP=O({flipLeftRight_:tP});function aP(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return M.runKernel(Sl,s,i)}var rP=O({rotateWithOffset_:aP});function Hl(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function sP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression"),i=E(t,"scores","nonMaxSuppression"),o=Hl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return M.runKernel(sl,{boxes:s,scores:i},l)}var iP=O({nonMaxSuppression_:sP});function lP(e,t,n){let a=oP(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function oP(e,t,n){return cP(e,t,n||uP)}function uP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function U1(e,t,n,a,r){return hb(e,t,n,a,r,0)}function G1(e,t,n,a,r,s){return hb(e,t,n,a,r,0,!1,s,!0)}function H1(e,t,n,a,r,s){return hb(e,t,n,a,r,s,!0)}function hb(e,t,n,a,r,s,i=!1,o=!1,l=!1){let c=[];for(let g=0;gr&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(j1);let u=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=c.pop(),{score:y,boxIndex:b,suppressBeginIndex:v}=g;if(y=v;--N){let T=pP(e,b,p[N]);if(T>=a){x=!0;break}if(g.score=g.score*dP(a,u,T),g.score<=r)break}g.suppressBeginIndex=p.length,x||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&lP(c,g,j1))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function pP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),c=Math.min(r[0],r[2]),u=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-c)*(d-u);if(h<=0||m<=0)return 0;let f=Math.max(s,c),g=Math.max(i,u),y=Math.min(o,p),b=Math.min(l,d),v=Math.max(y-f,0)*Math.max(b-g,0);return v/(h+m-v)}function dP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function j1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function hP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Hl(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),c=l[0],u=l[1],{selectedIndices:p}=U1(c,u,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),tt(p,"int32")}var mP=hP;function fP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Hl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c={boxes:i,scores:o},u={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=M.runKernel(ol,c,u);return{selectedIndices:p[0],selectedScores:p[1]}}var gP=O({nonMaxSuppressionWithScore_:fP});async function yP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Hl(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c=await Promise.all([i.data(),o.data()]),u=c[0],p=c[1],{selectedIndices:d,selectedScores:h}=H1(u,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:tt(d,"int32"),selectedScores:tt(h)}}var bP=yP;function xP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Hl(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:c,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:s},m=M.runKernel(il,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var vP=O({nonMaxSuppressionPadded_:xP});async function wP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Hl(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=G1(d,h,c,u,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:tt(m,"int32"),validOutputs:de(f,"int32")}}var kP=wP;function IP(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(ri,o,l);return i?H(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var q1=O({resizeBilinear_:IP});function NP(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(vc,o,l);return i?H(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var K1=O({resizeNearestNeighbor_:NP});function TP(e,t,n){A(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=H(Th(0,s,1,"int32"),[-1,1]),l=Th(0,i,1,"int32"),c=fe(o,l),u=da(_i(c,de(+t,"int32")),Jr(c,de(-n,"int32"))),p=vt([s,i],a.dtype);return H($t(dt(H(a,[-1,s,i])).map(d=>vn(u,d,p))),r)}var SP=O({bandPart_:TP});function CP(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=Pn(e,e.shape[0],0).map(r=>Qr(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return X1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),a=dt(H(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[c,u]=X1(l,t);r.push(c),s.push(u)});let i=H($t(r,0),e.shape),o=H($t(s,0),e.shape);return[i,o]}}function X1(e,t=!1){return M.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Hy(n),s=qr(e),i=Sa([[1]],[1,1]),o=qr(i),l=n>=a?a:n;for(let c=0;c{let h=We(s,[c,c],[n-c,1]),m=Ph(h),f=We(s,[c,c],[1,1]),g=vn(pa(f,0),Sa([[-1]]),Sa([[1]])),y=fe(f,L(g,m)),b=ve(h,y);b.shape[0]===1?o=qr(i):o=Qe([i,We(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let v=Tt(ve(ze(g,y),m)),x=We(s,[c,0],[n-c,a]),N=L(v,o),T=Ue(o);if(c===0)s=fe(x,ze(N,ze(T,x)));else{let $=fe(x,ze(N,ze(T,x)));s=Qe([We(s,[0,0],[c,a]),$],0)}let C=Ue(N),F=We(r,[0,c],[n,r.shape[1]-c]);if(c===0)r=fe(F,ze(ze(F,o),C));else{let $=fe(F,ze(ze(F,o),C));r=Qe([We(r,[0,0],[n,c]),$],1)}return[o,s,r]}),Fe([u,p,d])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var AP=O({qr_:EP}),dn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(dn||(dn={}));function FP(e,t,n=dn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:L(a,r);if(n===dn.NONE)return s;if(n===dn.SUM)return Te(s);if(n===dn.MEAN){if(r==null)return St(s);{let i=a.size/r.size,o=ve(Te(s),Te(r));return i>1?ve(o,de(i)):o}}if(n===dn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return ve(Te(s),de(a.size));{let i=L(r,Ya(a.shape)),o=ce(Te(Ai(i,de(0))),"float32");return ve(Te(s),o)}}throw Error(`Unknown reduction: ${n}`)}var br=O({computeWeightedLoss_:FP});function $P(e,t,n,a=dn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(fe(r,s));return br(o,i,a)}var DP=O({absoluteDifference_:$P});function RP(e,t,n,a,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),sn(s.shape,i.shape,"Error in cosineDistance: ");let l=de(1),c=fe(l,Te(L(s,i),n,!0));return br(c,o,r)}var MP=O({cosineDistance_:RP});function PP(e,t,n,a=dn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),sn(r.shape,s.shape,"Error in hingeLoss: ");let o=de(1);r=fe(L(de(2),r),o);let l=Ye(fe(o,L(r,s)));return br(l,i,a)}var OP=O({hingeLoss_:PP});function LP(e,t,n,a=1,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),sn(s.shape,i.shape,"Error in huberLoss: ");let l=de(a),c=Lt(fe(i,s)),u=Bl(c,l),p=fe(c,u),d=Z(L(de(.5),lt(u)),L(l,p));return br(d,o,r)}var zP=O({huberLoss_:LP});function BP(e,t,n,a=1e-7,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),sn(s.shape,i.shape,"Error in logLoss: ");let l=de(1),c=de(a),u=Tt(L(s,Dn(Z(i,c)))),p=L(fe(l,s),Dn(Z(fe(l,i),c))),d=fe(u,p);return br(d,o,r)}var WP=O({logLoss_:BP});function VP(e,t,n,a=dn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Dh(r,s);return br(o,i,a)}var UP=O({meanSquaredError_:VP});function GP(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ye(a),s=L(a,n),i=xh(pn(Tt(Lt(a))));return Z(fe(r,s),i)}function HP(e,t,n,a=0,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(.5);s=Z(L(s,fe(u,c)),L(p,c))}let l=GP(s,i);return br(l,o,r)}var jP=O({sigmoidCrossEntropy_:HP});function qP(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Ka((a,r,s)=>{let i=Xy(r,[n],!0),o=fe(ce(r,"float32"),i);s([a,o]);let l=Tt(L(o,a));return{value:Te(l,[n]),gradFunc:(c,u)=>{let[p,d]=u,h=Ei(c.shape,[n]);return[L(H(c,h),fe(ce(p,"float32"),pn(d))),L(H(c,h),fe(pn(d),ce(p,"float32")))]}}})(e,t)}function KP(e,t,n,a=0,r=dn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(s.shape[1]);s=Z(L(s,fe(u,c)),ve(c,p))}let l=qP(s,i);return br(l,o,r)}var XP=O({softmaxCrossEntropy_:KP}),YP={fft:jc,ifft:Ul,rfft:qc,irfft:$h},ZP={hammingWindow:KM,hannWindow:W1,frame:V1,stft:JM},Za={flipLeftRight:nP,resizeNearestNeighbor:K1,resizeBilinear:q1,rotateWithOffset:rP,cropAndResize:eP,nonMaxSuppression:iP,nonMaxSuppressionAsync:mP,nonMaxSuppressionWithScore:gP,nonMaxSuppressionWithScoreAsync:bP,nonMaxSuppressionPadded:vP,nonMaxSuppressionPaddedAsync:kP},Y1={bandPart:SP,gramSchmidt:_P,qr:AP},JP={absoluteDifference:DP,computeWeightedLoss:br,cosineDistance:MP,hingeLoss:OP,huberLoss:zP,logLoss:WP,meanSquaredError:UP,sigmoidCrossEntropy:jP,softmaxCrossEntropy:XP},xr=class extends Y0{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Fe(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return w1(e,t)}dispose(){this.iterations_!=null&&Fe(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:de(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(xr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var Wh=class extends xr{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;D(()=>{let l=Z(L(i,this.rho),L(lt(s),1-this.rho)),c=L(ve(en(Z(o,this.epsilon)),en(Z(i,this.epsilon))),s),u=Z(L(o,this.rho),L(lt(c),1-this.rho));i.assign(l),o.assign(u);let p=Z(L(c,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Fe(this.accumulatedGrads.map(e=>e.variable)),Fe(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};Wh.className="Adadelta";Kr(Wh);var Vh=class extends xr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:D(()=>wn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;D(()=>{let i=Z(s,lt(r));s.assign(i);let o=Z(L(ve(r,en(Z(i,M.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Fe(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};Vh.className="Adagrad";Kr(Vh);var Uh=class extends xr{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],D(()=>{this.accBeta1=de(t).variable(),this.accBeta2=de(n).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=fe(1,this.accBeta2);t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:D(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:D(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedSecondMoment[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=Z(L(u,this.beta2),L(lt(l),1-this.beta2)),h=ve(p,n),m=ve(d,a);c.assign(p),u.assign(d);let f=Z(L(ve(h,Z(en(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(L(this.accBeta1,this.beta1)),this.accBeta2.assign(L(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Fe(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),D(()=>{this.accBeta1.assign(yr(this.beta1,this.iterations_+1)),this.accBeta2.assign(yr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Uh.className="Adam";Kr(Uh);var Gh=class extends xr{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],D(()=>{this.iteration=de(0).variable(),this.accBeta1=de(t).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=ve(-this.learningRate,Z(L(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedWeightedInfNorm[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=L(u,this.beta2),h=Lt(l),m=Xa(d,h);c.assign(p),u.assign(m);let f=Z(L(ve(a,n),ve(p,Z(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Z(this.iteration,1)),this.accBeta1.assign(L(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Fe(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Gh.className="Adamax";Kr(Gh);var Kc=class extends xr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=M.registeredVariables[t];D(()=>{let s=Z(L(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=jt(de(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Kc.className="SGD";Kr(Kc);var Hh=class extends Kc{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=de(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&D(()=>{let i,o=Z(L(this.m,r),s);this.useNesterov?i=Z(L(this.c,Z(s,L(o,this.m))),a):i=Z(L(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Fe(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Hh.className="Momentum";Kr(Hh);var jh=class extends xr{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=M.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;D(()=>{let l=Z(L(i,this.decay),L(lt(s),1-this.decay));if(this.centered){let c=this.accumulatedMeanGrads[n].variable,u=Z(L(c,this.decay),L(s,1-this.decay)),p=ve(L(s,this.learningRate),en(fe(l,Z(lt(u),this.epsilon)))),d=Z(L(o,this.momentum),p);i.assign(l),c.assign(u),o.assign(d);let h=fe(a,d);a.assign(h)}else{let c=Z(L(i,this.decay),L(lt(s),1-this.decay)),u=Z(L(o,this.momentum),ve(L(s,this.learningRate),en(Z(c,this.epsilon))));i.assign(c),o.assign(u);let p=fe(a,u);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Fe(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Fe(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Fe(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};jh.className="RMSProp";Kr(jh);var $i=class{static sgd(e){return new Kc(e)}static momentum(e,t,n=!1){return new Hh(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new jh(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Uh(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new Wh(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Gh(e,t,n,a,r)}static adagrad(e,t=.1){return new Vh(e,t)}},Di={sgd:$i.sgd,momentum:$i.momentum,adadelta:$i.adadelta,adagrad:$i.adagrad,rmsprop:$i.rmsprop,adamax:$i.adamax,adam:$i.adam},QP=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function qh(){return new Promise(e=>QP(()=>e()))}var _={};Oe(_,{ERF_A1:()=>cO,ERF_A2:()=>pO,ERF_A3:()=>dO,ERF_A4:()=>hO,ERF_A5:()=>mO,ERF_P:()=>uO,PARALLELIZE_THRESHOLD:()=>mb,SELU_SCALE:()=>J1,SELU_SCALEALPHA:()=>Z1,applyActivation:()=>zh,assertAndGetBroadcastShape:()=>xt,assertAxesAreInnerMostDims:()=>LD,assertParamsConsistent:()=>eO,assignToTypedArray:()=>kO,axesAreInnerMostDims:()=>qy,calculateShapes:()=>L0,combineLocations:()=>I1,complexWithEvenIndex:()=>xO,complexWithOddIndex:()=>vO,computeConv2DInfo:()=>Pc,computeConv3DInfo:()=>s1,computeDefaultPad:()=>My,computeDilation2DInfo:()=>l$,computeOptimalWindowSize:()=>nO,computeOutAndReduceShapes:()=>N1,computeOutShape:()=>tO,computePool2DInfo:()=>r1,computePool3DInfo:()=>u$,convertConv2DDataFormat:()=>a1,eitherStridesOrDilationsAreOne:()=>ja,expandShapeToKeepDim:()=>Ei,exponent:()=>NO,exponents:()=>IO,fromStringArrayToUint8:()=>CO,fromUint8ToStringArray:()=>SO,getAxesPermutation:()=>T1,getBroadcastDims:()=>eD,getComplexWithIndex:()=>wO,getFusedBiasGradient:()=>Lh,getFusedDyActivation:()=>Oh,getImageCenter:()=>aO,getInnerMostAxes:()=>zD,getPermuted:()=>sO,getReductionAxes:()=>zt,getReshaped:()=>rO,getReshapedPermuted:()=>iO,getSliceBeginCoords:()=>oO,getSliceSize:()=>lO,getUndoAxesPermutation:()=>Ky,log:()=>gO,mergeRealAndImagArrays:()=>yO,prepareAndValidate:()=>O0,prepareSplitSize:()=>TO,segment_util:()=>Q1,shouldFuse:()=>Bh,slice_util:()=>cn,splitRealAndImagArrays:()=>bO,tupleValuesAreOne:()=>Xr,upcastType:()=>ua,validateInput:()=>wy,validateUpdateShape:()=>vy,warn:()=>fO});function eO(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function tO(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function iO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var Q1={};Oe(Q1,{collectGatherOpShapeInfo:()=>AO,computeOutShape:()=>EO,segOpComputeOptimalWindowSize:()=>_O});function _O(e,t){let n=!1,a;for(e<=mb?(a=e,n=!0):a=bd(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=bd(e,a+1);return a}function EO(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(neh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function CO(e){return e.map(t=>Cc(t))}var Ja={};Oe(Ja,{nonMaxSuppressionV3Impl:()=>U1,nonMaxSuppressionV4Impl:()=>G1,nonMaxSuppressionV5Impl:()=>H1,whereImpl:()=>D1});var ek={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,Gl(ce(n,"float32"),-1))}}},FO={kernelName:Eo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(ce(n,"float32")),r=en(fe(de(1),a));return Tt(ve(e,r))}}}},$O={kernelName:Ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=en(fe(lt(ce(n,"float32")),1));return ve(e,a)}}}},DO={kernelName:zr,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),H(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),H(s,a.shape)}}}},RO={kernelName:Ss,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},MO={kernelName:Cs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},PO={kernelName:oc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},OO={kernelName:Fo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,en(fe(de(1),lt(ce(n,"float32")))))}}},LO={kernelName:$o,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=en(Z(de(1),lt(ce(n,"float32"))));return ve(e,a)}}}},zO={kernelName:Mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=Z(lt(n),lt(a)),i=L(e,ve(a,s)),o=zt(n.shape,r);return o.length>0&&(i=Te(i,o)),H(i,n.shape)},b:()=>{let s=Z(lt(n),lt(a)),i=Tt(L(e,ve(n,s))),o=zt(a.shape,r);return o.length>0&&(i=Te(i,o)),H(i,a.shape)}}}},BO={kernelName:Do,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(lt(ce(n,"float32")),1))}}},WO={kernelName:Ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,fe(de(1),lt(ce(n,"float32"))))}}};function VO(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,c=o,u=!1;o.rank===4&&(u=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),s!=null&&A(Gt(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:c},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=M.runKernel(Id,p,d);return u?H(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var UO=O({avgPool3dGrad_:VO}),GO={kernelName:lc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>UO(e,a,r,s,i,o)}}};function HO(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,c=!1;i.rank===3&&(c=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let u={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=M.runKernel(kd,u,p);return c?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var jO=O({avgPoolGrad_:HO}),qO={kernelName:_s,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>jO(e,a,r,s,i)}}},KO={kernelName:Es,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},XO={kernelName:uc,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Vc(e,a,r)}}},YO={kernelName:l0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Te(e,o,!0)}}},ZO={kernelName:As,gradFunc:e=>({x:()=>e.clone()})},JO={kernelName:Fs,gradFunc:e=>({x:()=>Ge(e)})},QO={kernelName:Br,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>vn(da(Jr(a,r),_i(a,s)),e,Ge(e))}}},eL={kernelName:cc,inputsToSave:["x"],gradFunc:ek.gradFunc},tL={kernelName:Po,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=la(r,t[0].shape)[0],i=a.map(o=>o[s]);return Pn(e,i,s).map(o=>()=>o)}},nL={kernelName:$s,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(Xr(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Ly(a.shape,e,r,i,o,l),filter:()=>db(a,e,r.shape,i,o,l)}}},aL={kernelName:Ds,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>db(e,a,r.shape,s,i,o,l)}}};function rL(e,t,n,a,r){let s=e;e.rank===4&&(s=H(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return M.runKernel(Cd,o,l)}var sL=O({conv3DBackpropFilter_:rL}),iL={kernelName:pc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(Xr(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>m1(i.shape,e,o,r,s),filter:()=>sL(i,e,o.shape,r,s)}}},oL={kernelName:Rs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Tt(Eh(ce(n,"float32"))),e)}}},lL={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Ah(ce(n,"float32")),e)}}},uL={kernelName:Ms,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=T1([r],a.rank),l=gh(e,r,s,!i);return o!=null&&(l=Ue(l,o)),l}}}},cL={kernelName:Ps,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(Xr(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,c]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),A(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),A(ja(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&A(Gt(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>B1(l.shape,e,c,r,s,a,i),filter:()=>z1(l,e,c.shape,r,s,a,i)}}},pL={kernelName:dc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>M.runKernel(Dd,s,n),filter:()=>M.runKernel(Rd,i,n)}}},dL={kernelName:Bo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>M.runKernel(Md,a)}}},hL={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(pn(Tt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>L(e,a)}}},mL={kernelName:Ls,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,n)}}},fL={kernelName:Uo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>H(e,n.shape)}}},gL={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,pn(n))}}},yL={kernelName:zs,gradFunc:e=>({x:()=>Ge(e)})},bL={kernelName:Bs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?H(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=H(Te(s,i),a.shape));let o=lt(a);return Tt(ve(s,ce(o,"float32")))}}}},xL={kernelName:Ws,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?de(1):o,c=zt(s.shape,r.shape),u=[];if(s.rank===1){for(let f=0;fs.rank===1?H(L(L(e,qa(H(h,[1,1,1,s.shape[0]]),u)),l),r.shape):H(L(L(e,h),l),r.shape),mean:()=>{let f=L(L(h,de(-1)),d);return s.rank===1&&(f=Te(f,c)),H(f,s.shape)},variance:()=>{let f=L(L(m,p),d);return s.rank===1&&(f=Te(f,c)),H(f,s.shape)},scale:()=>{let f=L(p,h),g=L(e,f);return s.rank===1&&(g=Te(g,c)),H(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Te(f,c)),H(f,s.shape)}}}},vL={kernelName:jo,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=la(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,c=o.slice(0,i),u=c.length,p=o.slice(s,o.length).slice(1),d=p.length,h=tk(0,u),m=tk(u+1,u+1+d),f=nk([c,[l],p]),g=H(e,f),y=H(r,[l]),b=nk([[u],h,m]),v=Ue(g,b),x=lb(v,y,a.shape[i]),N=Ky(b);return x=Ue(x,N),x},indices:()=>r}}};function tk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},kL={kernelName:Us,gradFunc:e=>({x:()=>ce(e,"float32")})},IL={kernelName:Xo,gradFunc:e=>({x:()=>Ge(e)})},NL={kernelName:Yo,gradFunc:e=>({x:()=>Ge(e)})},TL={kernelName:Zo,gradFunc:e=>({x:()=>Ge(e)})},SL={kernelName:Gs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=pa(a,0);return{x:()=>vn(s,e,L(e,r))}}},CL={kernelName:el,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(n,1))}}},_L={kernelName:Hs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,ce(n,"float32"))}}},EL={kernelName:u0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=pn(a);return fe(e,L(Te(e,r,s),i))}}}};function AL(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return M.runKernel(Bd,o,l)}var FL=O({localResponseNormalizationBackprop_:AL}),$L={kernelName:gc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>FL(a,r,e,s,i,o,l)}}};function ak(e,t,n,a){return t.rankL(e,ce(Zr(n,t),e.dtype))}}var rk={kernelName:js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=la(r,s.shape),l=ak(e,i,s,o);return{x:()=>l.x()}}},DL={kernelName:qs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(Jr(n,a),"float32")),b:()=>L(e,ce(bh(n,a),"float32"))}}};function RL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),c=E(n,"output","maxPool3dGrad"),u=o,p=l,d=c,h=!1;l.rank===4&&(h=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=H(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=H(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),A(u.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:u,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=M.runKernel(Vd,m,f);return h?H(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var ML=O({maxPool3dGrad_:RL}),PL={kernelName:yc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>ML(e,a,r,s,i,o,l)}}};function OL(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),c=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let u={dy:o,input:l,output:c},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return M.runKernel(Wd,u,p)}var LL=O({maxPoolGrad_:OL}),zL={kernelName:Ks,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>LL(e,a,r,s,i,o)}}},BL={kernelName:Xs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=la(r,a.shape),i=N1(a.shape,s)[1],o=Pt(i);return{x:()=>{let l=a.shape.slice();s.forEach(u=>{l[u]=1});let c=H(e,l);return ve(L(c,Ya(a.shape,"float32")),o)}}}},WL={kernelName:Ys,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=la(r,s.shape),l=ak(e,i,s,o);return{x:()=>l.x()}}},VL={kernelName:Zs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(_i(n,a),"float32")),b:()=>L(e,ce(pa(n,a),"float32"))}}},UL={kernelName:bc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},GL={kernelName:nl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=zt(n.shape,r);return s.length>0?H(Te(e,s),n.shape):e},b:()=>{let s=L(e,Tt(Ol(ve(n,a)))),i=zt(a.shape,r);return i.length>0?H(Te(s,i),a.shape):s}}}},HL={kernelName:Js,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=L(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?H(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);return i.length>0?H(Te(s,i),a.shape):s}}}},jL={kernelName:al,gradFunc:e=>({x:()=>Tt(e)})},qL={kernelName:Qs,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>vt(n.shape,"float32")}}},KL={kernelName:ll,gradFunc:e=>({x:()=>Ge(e)})},XL={kernelName:ul,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},sk={kernelName:ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},YL={kernelName:ti,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=xt(s.shape,i.shape);return{a:()=>{let l=ce(i,"float32"),c=L(e,L(l,yr(s,fe(l,de(1))))),u=zt(s.shape,o);return u.length>0&&(c=Te(c,u)),H(c,s.shape)},b:()=>{let l=pa(s,0),c=vn(l,Dn(s),Ge(s)),u=L(e,L(r,c)),p=zt(i.shape,o);return p.length>0&&(u=Te(u,p)),H(u,i.shape)}}}},ZL={kernelName:ni,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=pa(n,0);return{x:()=>vn(r,e,L(e,a)),alpha:()=>{let s=vn(r,Ge(e),L(e,n)),i=zt(a.shape,e.shape);return i.length>0&&(s=Te(s,i)),H(s,a.shape)}}}},JL={kernelName:Os,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?H(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=H(Te(s,i),a.shape));let o=lt(a);return Tt(ve(s,ce(o,"float32")))}}}},QL={kernelName:pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Tt(lt(n)))}}},e3={kernelName:si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(_i(n,6),Gl(n));return{x:()=>L(e,ce(a,"float32"))}}},t3={kernelName:ai,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ce(Gl(n),"float32"))}}},n3={kernelName:dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>H(e,n.shape)}}},a3={kernelName:ri,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(qd,r,n)}}},r3={kernelName:vc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(jd,r,n)}}},s3={kernelName:ii,gradFunc:(e,t,n)=>{let{dims:a}=n,r=la(a,e.shape);return{x:()=>Mn(e,r)}}},i3={kernelName:oi,gradFunc:e=>({x:()=>Ge(e)})},o3={kernelName:li,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Tt(ve(e,L(yr(n,1.5),2)))}}},l3={kernelName:ml,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ce(Ge(n),"float32"),t:()=>L(e,ce(n,e.dtype)),e:()=>L(e,ce(Wc(n),e.dtype))}}},u3={kernelName:fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pa(n,de(0)),r=de(Z1),s=de(J1),i=L(e,s),o=L(L(e,r),pn(ce(n,"float32")));return vn(a,i,o)}}}},c3={kernelName:ci,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(n,fe(de(1),n)))}}},p3={kernelName:bl,gradFunc:e=>({x:()=>Ge(e)})},d3={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(zc(ce(n,"float32")),e)}}},h3={kernelName:yl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(fh(ce(n,"float32")),e)}}},m3={kernelName:gl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=q0(a,r,s),c=[];for(let u=0;uZn(e,c)}}},f3={kernelName:hi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=L(e,a);return{logits:()=>fe(i,L(Te(i,[r],s),a))}}},g3={kernelName:xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ca(n))}}},ik={kernelName:wc,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Oc(e,a,r)}}},ok={kernelName:vl,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},y3={kernelName:pi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,L(en(ce(n,"float32")),2))}}},b3={kernelName:kc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(ce(n,"float32"),2))}}},x3={kernelName:mi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=de(2);return{a:()=>L(e,L(r,fe(n,a))),b:()=>L(e,L(r,fe(a,n)))}}},v3={kernelName:Vr,gradFunc:e=>({x:()=>Ge(e)})},w3={kernelName:fi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),H(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),H(Tt(s),a.shape)}}}},k3={kernelName:di,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;la(s,a.shape).forEach(l=>{r[l]=1});let i=H(e,r),o=L(i,Ya(a.shape,"float32"));return{x:()=>o}}},I3={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,lt(zc(n)))}}},N3={kernelName:gi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(fe(de(1),lt(n)),e)}}},T3={kernelName:Wr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Ky(r);return{x:()=>Ue(e,s)}}},C3={kernelName:Nl,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},E3={kernelName:Ic,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>_3(e,n)}}};function _3(e,t){let n=Xa(t,Ge(t)),a=Ci(e,n),r=Jr(t,de(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},F3=[ek,FO,$O,DO,RO,MO,PO,OO,LO,zO,BO,WO,GO,qO,KO,XO,YO,ZO,JO,QO,eL,tL,aL,nL,iL,oL,lL,uL,cL,pL,JL,dL,hL,mL,fL,gL,bL,yL,xL,vL,wL,kL,IL,NL,TL,SL,CL,_L,EL,$L,rk,rk,DL,PL,zL,BL,WL,VL,UL,GL,HL,jL,qL,KL,XL,sk,sk,YL,ZL,QL,e3,t3,n3,a3,r3,s3,i3,o3,l3,u3,c3,p3,d3,h3,m3,f3,g3,ik,ik,ok,ok,y3,x3,b3,v3,w3,k3,I3,N3,T3,S3,C3,E3,A3];for(let e of F3)c0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),Sy(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),Cy(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),Z(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),ph(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),Rc(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Mc(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),_y(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),H(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),H(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),H(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),H(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),H(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),Ey(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),Ay(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),Fy(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),$y(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Dy(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Xn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Oc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),gr(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Lc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),Oy(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),qt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ae&&(e=[e]),Qe([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),hh(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),mh(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),zc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),fh(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),gh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),By(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Yr(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),Wy(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),Vy(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),ve(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),g1(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),Pl(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),Zr(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),Uy(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),pn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),$n(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),Gy(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),jc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Ol(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),ch(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),Ci(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Jr(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),pa(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),Ul(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),$h(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),y1(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),b1(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),x1(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Bc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),_i(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),bh(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),jy(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),k1(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),wh(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Xy(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),Dn(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),xh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),da(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Wc(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),kh(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),S1(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Ft(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),Yn(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),Xa(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),St(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),zl(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Bl(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Zy(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),Jy(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),L(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),Tt(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Ph(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),Ai(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),$l(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),Rn(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),Zn(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),E1(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),yr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),Uc(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),Nh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),tb(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),Ye(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),Sh(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),H(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),H(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),q1(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),K1(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Mn(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),qc(this)};Y().prototype.round=function(){return this.throwIfDisposed(),nb(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),Ch(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),_h(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fi(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),ca(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),ab(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),Eh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),Ah(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Ta(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),Ll(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Vc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),Pn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),en(this)};Y().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Dh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),Qr(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ae?[this,e]:[this,...e];return $t(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),Gl(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),sb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),fe(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Te(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),ib(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),Ml(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),qa(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ce(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ce(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ce(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),ob(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ue(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Mh(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),lb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),vn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var lk={};Oe(lk,{maxNorm:()=>$3,minMaxNorm:()=>M3,nonNeg:()=>R3,unitNorm:()=>D3});var fb;function Bt(){return fb==null&&(fb=t1().epsilon()),fb}function _a(){return"channelsLast"}var vr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,vr.prototype)}},Ea=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ea.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},uk=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,uk.prototype)}},P3=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,P3.prototype)}};function Ri(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var ha={};function gb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function yb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>yb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:yb(a))}}}function Xc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ha)i=ha[s];else if(i=t[s],i==null)throw new z(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new z(`${a}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in da?[o,l]=da.className:i in t&&([o,l]=t[i]),o==null)throw new z(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in ha?[o,l]=ha.className:i in t&&([o,l]=t[i]),o==null)throw new z(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let c={};for(let h of Object.keys(da))c[h]=da[h];for(let h of Object.keys(n))c[h]=n[h];let u=s.config;u.customObjects=c;let p=Object.assign({},da);for(let h of Object.keys(n))da[h]=n[h];mb(s.config);let d=l(o,s.config,n,r);return da=Object.assign({},p),d}else{let c=Object.assign({},da);for(let p of Object.keys(n))da[p]=n[p];let u=new o(s.config);return da=Object.assign({},c),u}}}function F3(e,t){return et?1:0}function Hh(e,t){return-1*F3(e,t)}function ts(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function $3(e){if(e==null)throw new z(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Ri(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new z(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function fb(e,t,n=0,a=Infinity){return Ja(n>=0),Ja(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(k.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):k.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${ik(e)}.`)}function ik(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>ik(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function D3(e,t){let n=k.now(),a;return(...r)=>{let s=k.now();return s-nen(Te(L(e,e),t,!0)))}var Yc=class extends re.Serializable{getConfig(){return{}}},yb=class extends Yc{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=gb(e,this.axis),n=qt(t,0,this.maxValue);return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};yb.className="MaxNorm";re.registerClass(yb);var bb=class extends Yc{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>ve(e,Z(Bt(),gb(e,this.axis))))}getConfig(){return{axis:this.axis}}};bb.className="UnitNorm";re.registerClass(bb);var xb=class extends Yc{apply(e){return Ye(e)}};xb.className="NonNeg";re.registerClass(xb);var vb=class extends Yc{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=gb(e,this.axis),n=Z(L(this.rate,qt(t,this.minValue,this.maxValue)),L(1-this.rate,t));return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};vb.className="MinMaxNorm";re.registerClass(vb);var lk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Wt(e){return hb(e)}function uk(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Vt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in lk?lk[e]:e,config:{}};return uk(t)}else return e instanceof Yc?e:uk(e)}function S3(e){return new yb(e)}function C3(e){return new bb(e)}function _3(){return new xb}function E3(e){return new vb(e)}var ck={};Oe(ck,{constant:()=>P3,glorotNormal:()=>U3,glorotUniform:()=>V3,heNormal:()=>G3,heUniform:()=>H3,identity:()=>B3,leCunNormal:()=>j3,leCunUniform:()=>q3,ones:()=>M3,orthogonal:()=>K3,randomNormal:()=>L3,randomUniform:()=>O3,truncatedNormal:()=>z3,varianceScaling:()=>W3,zeros:()=>R3});var X3=["channelsFirst","channelsLast"],Y3=["nearest","bilinear"],Z3=["valid","same","causal"],J3=["max","avg"],Q3=["sum","mul","concat","ave"],jl=new Map;function Dt(e){Ri(X3,"DataFormat",e)}function ez(e){Ri(Y3,"InterpolationFormat",e)}function Jn(e){Ri(Z3,"PaddingMode",e)}function pk(e){Ri(J3,"PoolMode",e)}var Zc=[],dk="/";function Mi(e,t){Zc.push(e);try{let n=t();return Zc.pop(),n}catch(n){throw Zc.pop(),n}}function tz(){return Zc.length===0?"":Zc.join(dk)+dk}function mk(e){if(!hk(e))throw new Error("Not a valid tensor name: '"+e+"'");return tz()+e}function fk(e){if(!hk(e))throw new Error("Not a valid tensor name: '"+e+"'");jl.has(e)||jl.set(e,0);let t=jl.get(e);if(jl.set(e,jl.get(e)+1),t>0){let n=`${e}_${t}`;return jl.set(n,1),n}else return e}var nz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function hk(e){return!!e.match(nz)}function az(e){return e===parseInt(e.toString(),10)}function ns(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r{if(e.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Qc(e,1);return wb(n,[1,t,1])})}function sz(e){let t=[ns(e.shape)];return e.reshape(t)}function iz(e){if(e.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ns(e.shape,1)];return e.reshape(t)}function Pi(e,t,n){return D(()=>{switch(e.rank){case 1:return _h(e,t,n);case 2:return tb(e,[t,0],[n,e.shape[1]]);case 3:return Vl(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Hc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function kb(e,t,n){return D(()=>{switch(e.rank){case 1:return _h(e,t,n);case 2:return tb(e,[0,t],[e.shape[0],n]);case 3:return Vl(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Hc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function jh(e,t,n,a){return D(()=>{switch(e.rank){case 1:return _h(e,t,n);case 2:switch(a){case 1:return Pi(e,t,n);case 2:return kb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Pi(e,t,n);case 2:return Vl(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return kb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Pi(e,t,n);case 2:return Hc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Hc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return kb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Ib(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function yk(e,t){switch(e.rank){case 1:return s1([e,t]);case 2:return i1([e,t],0);case 3:return o1([e,t],0);case 4:return l1([e,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function wb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return ja(e,t)}function qh(e,t=0,n=1,a,r){return T1(e,t,n,a,r)}function Qa(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return es.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?Nb(e.rank,a,Ca()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),c=[...i,o],u=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(u).reshape([l,-1]);let p=[...r,...c],d=!1,h=!1;return es.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?Nb(e.rank,a,Ca()):null,activation:n}).reshape(p)}}function bk(e,t,n){return D(()=>(Array.isArray(t)?t=tt(t,"int32"):t=t.toInt(),Ti(e,t,n)))}function ep(e){return L(e,e)}function Nb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function er(e,t,n){return D(()=>(n==null&&(n=Ca()),Dt(n),e.add(Nb(e.rank,t,n))))}function oz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Pl(e)}function lz(e){return D(()=>ve(e,Lt(e).add(1)))}function xk(e,t,n,a){return D(()=>$1(e,t,n,a))}function uz(e){return D(()=>{let t=Z(.5,L(.2,e));return qt(t,0,1)})}function tp(e,t,n=!1){return n?e():t()}var cz=["fanIn","fanOut","fanAvg"],pz=["normal","uniform","truncatedNormal"];function dz(e){Ri(cz,"FanMode",e)}function hz(e){Ri(pz,"Distribution",e)}var ha=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Tb=class extends ha{apply(e,t){return vt(e,t)}};Tb.className="Zeros";re.registerClass(Tb);var Kh=class extends ha{apply(e,t){return Xa(e,t)}};Kh.className="Ones";re.registerClass(Kh);var Sb=class extends ha{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return D(()=>L(de(this.value),Xa(e,t)))}getConfig(){return{value:this.value}}};Sb.className="Constant";re.registerClass(Sb);var Cb=class extends ha{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Wl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Cb.className="RandomUniform";re.registerClass(Cb);var _b=class extends ha{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return qh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};_b.className="RandomNormal";re.registerClass(_b);var Eb=class extends ha{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Fh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Eb.className="TruncatedNormal";re.registerClass(Eb);var Ab=class extends ha{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return D(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return L(this.gain,Vy(e[0]))})}getConfig(){return{gain:this.gain}}};Ab.className="Identity";re.registerClass(Ab);function mz(e,t="channelsLast"){let n,a;if(Dt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ns(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ns(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ns(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var In=class extends ha{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,dz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,hz(this.distribution),this.seed=e.seed}apply(e,t){let n=mz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Fh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Wl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};In.className="VarianceScaling";re.registerClass(In);var Xh=class extends In{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return In.className}};Xh.className="GlorotUniform";re.registerClass(Xh);var Yh=class extends In{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return In.className}};Yh.className="GlorotNormal";re.registerClass(Yh);var Zh=class extends In{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return In.className}};Zh.className="HeNormal";re.registerClass(Zh);var Jh=class extends In{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return In.className}};Jh.className="HeUniform";re.registerClass(Jh);var Qh=class extends In{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return In.className}};Qh.className="LeCunNormal";re.registerClass(Qh);var em=class extends In{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return In.className}};em.className="LeCunNormal";re.registerClass(em);var Fb=class extends ha{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return D(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=qh(n,0,1,"float32"),r=H1.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),L(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Fb.className="Orthogonal";re.registerClass(Fb);var vk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function wk(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return hb(e)}function wt(e){if(typeof e=="string"){let t=e in vk?vk[e]:e;if(t==="GlorotNormal")return new Yh;if(t==="GlorotUniform")return new Xh;if(t==="HeNormal")return new Zh;if(t==="HeUniform")return new Jh;if(t==="LeCunNormal")return new Qh;if(t==="LeCunUniform")return new em;{let n={};return n.className=t,n.config={},wk(n)}}else return e instanceof ha?e:wk(e)}function R3(){return new Tb}function M3(){return new Kh}function P3(e){return new Sb(e)}function O3(e){return new Cb(e)}function L3(e){return new _b(e)}function z3(e){return new Eb(e)}function B3(e){return new Ab(e)}function W3(e){return new In(e)}function V3(e){return new Xh(e)}function U3(e){return new Yh(e)}function G3(e){return new Zh(e)}function H3(e){return new Jh(e)}function j3(e){return new Qh(e)}function q3(e){return new em(e)}function K3(e){return new Fb(e)}var kk={};Oe(kk,{Layer:()=>qe,RNN:()=>tr,RNNCell:()=>np,activation:()=>Az,add:()=>zz,alphaDropout:()=>kB,average:()=>Bz,averagePooling1d:()=>$b,averagePooling2d:()=>Db,averagePooling3d:()=>Rb,avgPool1d:()=>Xz,avgPool2d:()=>Zz,avgPool3d:()=>Qz,avgPooling1d:()=>Yz,avgPooling2d:()=>Jz,avgPooling3d:()=>eB,batchNormalization:()=>jz,bidirectional:()=>mB,concatenate:()=>Wz,conv1d:()=>kz,conv2d:()=>Iz,conv2dTranspose:()=>Nz,conv3d:()=>Tz,convLstm2d:()=>cB,convLstm2dCell:()=>pB,cropping2D:()=>Cz,dense:()=>Fz,depthwiseConv2d:()=>Ez,dot:()=>Hz,dropout:()=>$z,elu:()=>gz,embedding:()=>Lz,flatten:()=>Rz,gaussianDropout:()=>wB,gaussianNoise:()=>vB,globalAveragePooling1d:()=>tB,globalAveragePooling2d:()=>nB,globalMaxPool1d:()=>gB,globalMaxPool2d:()=>yB,globalMaxPooling1d:()=>Nk,globalMaxPooling2d:()=>Tk,gru:()=>rB,gruCell:()=>sB,input:()=>Ik,inputLayer:()=>fz,layerNormalization:()=>qz,leakyReLU:()=>bz,lstm:()=>iB,lstmCell:()=>oB,masking:()=>IB,maxPool1d:()=>bB,maxPool2d:()=>xB,maxPooling1d:()=>Sk,maxPooling2d:()=>Ck,maxPooling3d:()=>aB,maximum:()=>Vz,minimum:()=>Uz,multiply:()=>Gz,permute:()=>Oz,prelu:()=>xz,reLU:()=>yz,repeatVector:()=>Mz,reshape:()=>Pz,rnn:()=>dB,separableConv2d:()=>Sz,simpleRNN:()=>lB,simpleRNNCell:()=>uB,softmax:()=>vz,spatialDropout1d:()=>Dz,stackedRNNCells:()=>hB,thresholdedReLU:()=>wz,timeDistributed:()=>fB,upSampling2d:()=>_z,zeroPadding2d:()=>Kz});var NB=0;function _k(){return NB++}var tm={};function nm(e=""){return e in tm||(tm[e]=0),tm[e]+=1,e+tm[e].toString()}function Mb(e){return Array.isArray(e)&&Array.isArray(e[0])}function am(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new z(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ht(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new z(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function rm(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Ek="Variable",Ak=class{constructor(e,t="float32",n=Ek,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=_k(),n=n==null?Ek:n,this.originalName=mk(n),this.name=fk(this.originalName),this.trainable_=a,this.constraint=r,this.val=C1(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),TB(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function TB(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Pb(e){return e.map(t=>t.read())}function Ob(e){e.forEach(t=>{t[0].write(t[1])})}var Xt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Aa=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=_k(),s!=null&&(this.originalName=mk(s),this.name=fk(this.originalName)),this.rank=t.length}},SB=0,sm=class{constructor(e,t){this.callArgs=t,this.id=SB++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},CB=0,qe=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=CB++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=vr(n)+"_"+nm(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new _a(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return kn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return kn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} is not connected, no input to return.`);return kn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new xr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new xr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return kn(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(c!=null&&[c,null].indexOf(u)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(kn(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=kn(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=_B(e),i=this.computeOutputShape(s),o,l=EB(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((c,u)=>new Aa(l,c,this,yt(e),t,this.name,u)):o=new Aa(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new xr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new xr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new _a(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return rm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Pb(e?this.trainableWeights:this.weights)}setWeights(e){D(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Pb(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=am(r),s=am(s);let l=[],c=[],u=[];for(let p of o)l.push(p.sourceLayer),c.push(p.nodeIndex),u.push(p.tensorIndex);new sm({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:u,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function _B(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return kn(t)}function EB(e){return"float32"}function Fk(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sZ(this.totals[a],L(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:D(()=>{let a=L(ve(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),jt(t[n])}))}},Pk=class extends Xl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew Ok(n,t))}var ma=class{constructor(){}static registerCallbackConstructor(e,t){k.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),ma.checkForDuplicate(t),ma.constructors[e]==null&&(ma.constructors[e]=[]),ma.constructors[e].push(t)}static checkForDuplicate(e){for(let t in ma.constructors)ma.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){ma.constructors={}}static createCallbacks(e){let t=[];for(let n in ma.constructors){let a=+n;e>=a&&t.push(...ma.constructors[a])}return t.map(n=>new n)}};ma.constructors={};function zk(e,t,n,a,r,s,i,o,l){let c=new Pk,u=[new FB,...ma.createCallbacks(t)];e!=null&&u.push(...e),u.push(c);let p=new Mk(u);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:c}}function Fa(e,t={},n=!1){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function im(e,t){return D(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Te(ep(e),t,!0),a=wn(n.shape,Bt()),r=en(Ka(n,a));return ve(e,r)})}function Oi(e,t){return D(()=>St(ep(fe(t,e)),-1))}function om(e,t){return D(()=>St(Lt(fe(t,e)),-1))}function Yl(e,t){return D(()=>{let n=fe(e,t),a=qt(Lt(e),Bt(),Number.MAX_VALUE),r=Lt(ve(n,a));return L(100,St(r,-1))})}function $B(e,t){return D(()=>{let n=qt(t,Bt(),Number.MAX_VALUE),a=$n(Z(1,n)),r=qt(e,Bt(),Number.MAX_VALUE),s=$n(Z(1,r));return St(ep(fe(a,s)),-1)})}function DB(e,t){return D(()=>{let n=Ka(0,fe(1,L(e,t)));return St(ep(n),-1)})}function RB(e,t){return D(()=>{let n=Ka(0,fe(1,L(e,t)));return St(n,-1)})}function MB(e,t){return D(()=>{let n=Te(L(e,t),-1),a=Yn(L(fe(1,e),t),-1);return Ka(0,Z(1,fe(a,n)))})}function PB(e,t){return D(()=>{let n=Math.log(2),a=fe(t,e),r=fe(Z(a,Ll(L(-2,a))),n);return St(r,-1)})}function ap(e,t,n=!1){return D(()=>{if(n)t=Na(t);else{let a=Te(t,t.shape.length-1,!0);t=ve(t,a)}return t=qt(t,Bt(),1-Bt()),Tt(Te(L(e.toFloat(),$n(t)),t.shape.length-1))})}function lm(e,t,n=!1){return D(()=>{let a=Ol(sz(e)).toInt();t=qt(t,Bt(),1-Bt());let r=t.shape,s=$l(a,r[r.length-1]).reshape(r);return ap(s,t,n)})}function OB(e,t){if(!k.arraysEqual(e.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return D(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function um(e,t){return D(()=>{let n;return n=qt(t,Bt(),1-Bt()),n=$n(ve(n,fe(1,n))),St(OB(e,n),-1)})}function LB(e,t){return D(()=>{let n=qt(e,Bt(),1),a=qt(t,Bt(),1);return Te(L(e,$n(ve(n,a))),-1)})}function zB(e,t){return D(()=>{let n=$n(Z(Bt(),t));return St(fe(t,L(e,n)),-1)})}function Lb(e,t){return D(()=>{let n=im(e,-1),a=im(t,-1),r=L(n,a);return Tt(Te(r,-1))})}var cm={meanSquaredError:Oi,meanAbsoluteError:om,meanAbsolutePercentageError:Yl,meanSquaredLogarithmicError:$B,squaredHinge:DB,hinge:RB,categoricalHinge:MB,logcosh:PB,categoricalCrossentropy:ap,sparseCategoricalCrossentropy:lm,binaryCrossentropy:um,kullbackLeiblerDivergence:LB,poisson:zB,cosineProximity:Lb};function zb(e){if(typeof e=="string"){if(e in cm)return cm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return e}function Bb(e,t){return D(()=>{let n=L(.5,Dn(t)),a=Jc(ca(t,n),e.dtype);return St(Zr(e,a),-1)})}function Wb(e,t){return D(()=>Jc(Zr(Mc(e,-1),Mc(t,-1)),"float32"))}function Bk(e,t){return D(()=>pa(e.equal(1),t.equal(1)).sum().cast("float32"))}function BB(e,t){return D(()=>pa(e.equal(1),t.equal(0)).sum().cast("float32"))}function WB(e,t){return D(()=>pa(e.equal(0),t.equal(1)).sum().cast("float32"))}function Wk(e,t){return D(()=>{let n=Bk(e,t),a=WB(e,t),r=n.add(a);return vn(ca(r,0),n.div(r),0).cast("float32")})}function VB(e,t){return D(()=>{let n=Bk(e,t),a=BB(e,t),r=n.add(a);return vn(ca(r,0),n.div(r),0).cast("float32")})}function Vk(e,t){return um(e,t)}function Uk(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),Zr(e,t).asType("float32")}var UB=Oi,GB=Oi,HB=om,jB=om,qB=Yl,KB=Yl,Vb=ap,XB=Lb,Gk=lm,pm={binaryAccuracy:Bb,categoricalAccuracy:Wb,precision:Wk,categoricalCrossentropy:Vb,sparseCategoricalCrossentropy:Gk,mse:UB,MSE:GB,mae:HB,MAE:jB,mape:qB,MAPE:KB,cosine:XB};function YB(e){if(typeof e=="string"&&e in pm)return pm[e];if(typeof e!="string"&&e!=null)return e;throw new z(`Unknown metric ${e}`)}function dm(e){if(Ja(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(cm))if(cm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(pm))if(pm[n]===e){t=n;break}return t!==void 0?t:e.name}}function ZB(e){let t={Adagrad:()=>Fi.adagrad(.01),Adadelta:()=>Fi.adadelta(1,.95,Bt()),Adam:()=>Fi.adam(.001,.9,.999,Bt()),Adamax:()=>Fi.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Fi.rmsprop(.001,.9,0,Bt()),SGD:()=>Fi.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new z(`Unknown Optimizer ${e}`)}var Hk=1*1024*1024;function jk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Ub(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>Hk&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${Hk}.`)}}function Ub(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Ub(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Ub(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function nW(e,t,n,a=console.log){let r=QB(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(u=>Math.floor(t*u)));let i;if(!r){s.push("Receives inputs"),i=[];for(let u in e.nodesByDepth)i.push(...e.nodesByDepth[u])}a("_".repeat(t)),hm(s,n,a),a("=".repeat(t));let o=e.layers;for(let u=0;u1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function hm(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function eW(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];hm(i,t,n)}function tW(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(u){r="multiple"}let s=[];for(let u of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(u)===-1))for(let p=0;pm.name),l=[],c=t.names();for(let m of o)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let u=o.join(",")+"|"+t.names().join(","),p,d;if(Hb[u]==null){let m=rW(i,t);p=m.sorted,d=m.recipientCounts,Hb[u]=p,Kk[u]=d}p=Hb[u],d={},r||Object.assign(d,Kk[u]);let h=new Li(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Xk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Xk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(c=>a[l].add(c))}}return{sorted:n,recipientCounts:iW(a)}}function iW(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Xk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let c of o.inputs)r[c.name]==null&&(r[c.name]=new Set),r[c.name].add(o.name),!n.has(c.name)&&s.push(c)}}return{sorted:a,recipientMap:r}}function sW(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);ts(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(x)}for(let y of this.inputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;Ja(v===0,"input layer has >1 nodes"),Ja(x===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(x)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,v,x,N,T)=>{(x==null||N==null||T==null)&&(x=y.sourceLayer,N=y.nodeIndex,T=y.tensorIndex);let C=x.inboundNodes[N];if(v.indexOf(C)!==-1)throw new _a(`The tensor ${y.name} at layer "${x.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(nr.nodeKey(x,N)),x.id in s||(s[x.id]=Object.keys(s).length),v.indexOf(C)===-1&&v.push(C);let $=C.inboundLayers.length;for(let F=0;F<$;F++){let O=C.inputTensors[F],B=C.inboundLayers[F],W=C.nodeIndices[F],G=C.tensorIndices[F];o(O,b,v,B,W,G)}for(b.push(C);v.indexOf(C)>=0;)v.splice(v.indexOf(C),1);i.push(C)},l=[],c=[];for(let y of this.outputs)o(y,l,c);let u=i.slice().reverse();for(let y of u){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],v=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,v),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let x=0;xparseInt(y,10)).sort(Hh);this.layers=[];for(let y of h){let b=d[y];b.sort((v,x)=>{let N=s[v.id],T=s[x.id];return NT?1:0});for(let v of b)v instanceof nr&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(Hh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let v=b.outboundLayer;if(v!=null){for(let x of b.inputTensors)if(m.indexOf(x)===-1)throw new _a(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${v.name}". The following previous layers were accessed without issue: ${f}`);for(let x of b.outputTensors)m.push(x);f.push(v.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(v=>v===y).length;if(b!==1)throw new _a(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new sm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new z(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new z(`${s.length} of ${a} weights are not set: ${s}`)}Ob(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${mm}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Gb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return D(()=>{e=yt(e);let n=new Li;for(let a=0;a{e=yt(e);let n;return t==null?n=$i(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=am(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(Hh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;let u=[];for(let m=0;mparseInt(o,10)).sort(Hh);for(let o of a){let l=this.nodesByDepth[o];for(let c of l){let u=c.outboundLayer,p=c.inputTensors,d=c.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(c.callArgs!=null&&(m=c.callArgs),h.length===1){let[v,x]=h[0];m.mask==null&&(m.mask=x),y=yt(u.call(v,m)),b=yt(u.computeMask(v,x)),f=[v],g=[x]}else f=h.map(v=>v[0]),g=h.map(v=>v[1]),m.mask==null&&(m.mask=g),y=yt(u.call(f,m)),b=yt(u.computeMask(f,g));if(u.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(kn(y),b)}function l(f){let g=f.name,y=Fa(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let c=t.name,u=t.layers;for(let f of u)l(f);for(;!$3(s);)for(let f of u){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];Ja(g in r);let v=r[g].inboundNodes[y].outputTensors;p.push(v[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];Ja(g in r);let v=r[g].inboundNodes[y].outputTensors;d.push(v[b])}return new e({inputs:p,outputs:d,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){D(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function oW(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function Yk(e,t){return oW(e,t,"classWeight")}async function Zk(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=D(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Fe(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),tt(i,"float32")}else return null}function lW(e,t){return L(e,t)}var uW=32;function Qk(e,t){let n,a,r=t;n=r.xs,a=r.ys,k.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=Jk("input",e.inputNames,n),i=Jk("output",e.outputNames,a),o=s[0].shape[0];k.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),k.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function Jk(e,t,n){if(n instanceof Ae)return[n];if(Array.isArray(n))return k.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new z(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function cW(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function dW(e,t,n){let a=n.batchesPerEpoch!=null;if(k.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),k.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),k.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),k.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),k.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(eI(n.validationData))k.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=cW(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),c;r?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();let u=Lk(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=zk(u,p,n.epochs,null,null,pW(t,n),null,r,c);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:v.done){if(r){let x;eI(n.validationData)?x=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):x=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?uW:n.validationBatchSize,verbose:0}));for(let N=0;N0)throw new $e("Verbose mode is not implemented yet.");k.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=hW(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(c.value){let{xs:u,ys:p}=Qk(e,c.value),d=u.concat(p),h=D(()=>r(d));if(Fe(d),l===0)for(let f=0;fZ(s[f],L(m,g))),l>0&&Fe(y)}Fe(h),o+=m,++l}return s}),c.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function ip(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Pi(a,t,n-t)):Pi(e,t,n-t)}function qb(e,t){return D(()=>e==null?null:Array.isArray(e)?e.map(n=>qb(n,t)):bk(e,t.dtype==="int32"?t:t.toInt()))}function Kb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function fW(e,t,n,a,r,s,i,o,l,c,u,p,d,h,m){r==null&&(r=32),s==null&&(s=1),u==null&&(u=!0),d==null&&(d=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ea(0,g)),i==null&&(i=1);let{callbackList:b,history:v}=zk(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let x=d;x{let O=C[$][0],B=C[$][1],W=Pi(T,O,B-O);F.batch=$,F.size=B-O;let G=qb(n,W),q=t(G);for(let H=0;H0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let T=!0,C=await e.standardizeUserData(i,o,null,null,T,p);l=C[0],c=C[1],f=l.concat(c)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let T=Math.floor(r[0].shape[0]*(1-a.validationSplit)),C=r[0].shape[0];l=ip(r,T,C),r=ip(r,0,T),c=ip(s,T,C),s=ip(s,0,T),f=l.concat(c)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(u);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),v,x;m?(e.makeTestFunction(),v=e.testFunction,x=b.slice().concat(b.map(T=>"val_"+T))):(v=null,f=[],x=b.slice());let N=Lk(a.callbacks,a.yieldEvery);return await fW(e,y,g,b,p,a.epochs,a.verbose,N,v,f,a.shuffle,x,a.initialEpoch,null,null)}finally{e.isTraining=!1,zi(r,t),zi(s,n),zi(l,i),zi(c,o),u!=null&&Fe(u)}}function tI(e){let t=[];e instanceof Ae&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Ae)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function yW(e){return e instanceof Ae}function Xb(e){return Array.isArray(e)}function nI(e){return!yW(e)&&!Xb(e)}function aI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Xb(e)&&e.length>0)i=!0;else if(nI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(nI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Xb(e)){if(e=e,e.length!==t.length)throw new z(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new z(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=tI(s),n!=null)for(let i=0;i=0&&c!==u)throw new z(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function bW(e,t,n){let a=ts(e.map(s=>s.shape[0]));a.sort();let r=ts(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!k.arraysEqual(a,r))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function xW(e,t,n){let a=[Oi,um,ap];for(let r=0;r1)throw new z(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var wW="layers-model",wr=class extends nr{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");nW(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=ZB(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof br))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new z(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(zb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>zb(s))}else{let s=zb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=vW(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Mi("metric",()=>{for(let s=0;s{let l="",c,u,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===um?["accuracy","acc"].indexOf(d)!==-1?u=Bb:["crossentropy","ce"].indexOf(d)!==-1&&(u=Vk):this.lossFunctions[s]===lm?["accuracy","acc"].indexOf(d)!==-1?u=Uk:["crossentropy","ce"].indexOf(d)!==-1&&(u=Gk):["accuracy","acc"].indexOf(d)!==-1?u=Wb:["crossentropy","ce"].indexOf(d)!==-1&&(u=Vb);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=u,c=l+f}else p=YB(d),c=l+dm(d);let h;Mi(c,()=>{h=p}),r(s,c,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;jb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return kn(l)}finally{zi(s[0],e),zi(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),mW(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new z(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Li;if(e instanceof Ae&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return D(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=Kb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],c=ip(e,o,l),u=[];if(Array.isArray(c))for(let d=0;ds[l].push(o));return kn(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=tI(e);rI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return jb(a),this.predictLoop(n,a)}finally{zi(n,e)}}predictOnBatch(e){rI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new _a("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let c=Yk(a,this.outputNames);l=[];for(let u=0;u{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=Kb(s,n),l=tt(Ea(0,s));for(let c=0;c1&&(r+=`_${sk(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let c=[];for(let h=0;h1&&h{d=Z(d,h)}),d},o=this.collectedTrainableWeights.map(c=>c.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>D(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lvr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=vr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[vr(dm(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>vr(dm(e)));{let e={};for(let t in this.metrics)e[t]=vr(dm(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=rp(e.optimizer_config),n=Fa(t),a;if(typeof e.loss=="string")a=Di(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Di(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Di(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Di(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Di(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ht.getSaveHandlers(e);if(i.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new z(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ht.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:wW,generatedBy:`TensorFlow.js tfjs-layers v${mm}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ht.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ht.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;jk(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){jk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};wr.className="Model";re.registerClass(wr);var sI=class extends wr{};sI.className="Functional";re.registerClass(sI);async function kW(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=rp(n),r=Fa(a,t);if(e.weightsManifest!=null){let s=await Ht.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Fe(s)}return r}async function NW(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ht.getLoadHandlers(e,t);if(n.length===0)n.push(Ht.browserHTTPRequest(e,t));else if(n.length>1)throw new z(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return IW(e,void 0,t)}async function IW(e,t,n){if(n==null&&(n={}),e.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Fa(rp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:c,optimizerWeights:u}=TW(a.weightData,a.weightSpecs);o.loadWeights(c,s),o.optimizer!=null&&u.length>0&&await o.optimizer.setWeights(u),Fe(c),Fe(u.map(p=>p.tensor))}return o}function TW(e,t){let n=Ht.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Zl=class extends wr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:nm("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Zl||e instanceof wr,n;if(t){if(n=e,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=$k({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Fk(this.outputs[0])}this.inboundNodes=[],new sm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:$i(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(ht(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new wr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new _a("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");r=t}else k.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Zl))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Fa(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Zl.className="Sequential";re.registerClass(Zl);function SW(e){return new wr(e)}function CW(e){return new Zl(e)}function _W(e,t){return t==null&&(t={}),NW(e,t)}function Ik(e){return $k(e)}function EW(e,t){ma.registerCallbackConstructor(e,t)}var Pn=class extends re.Serializable{getConfig(){return{}}},iI=class extends Pn{apply(e,t=1){return oz(e,t)}};iI.className="elu";re.registerClass(iI);var oI=class extends Pn{apply(e){return Th(e)}};oI.className="selu";re.registerClass(oI);var lI=class extends Pn{apply(e){return Ye(e)}};lI.className="relu";re.registerClass(lI);var uI=class extends Pn{apply(e){return D(()=>Bl(6,Ye(e)))}};uI.className="relu6";re.registerClass(uI);var cI=class extends Pn{apply(e){return e}};cI.className="linear";re.registerClass(cI);var pI=class extends Pn{apply(e){return ua(e)}};pI.className="sigmoid";re.registerClass(pI);var dI=class extends Pn{apply(e){return uz(e)}};dI.className="hardSigmoid";re.registerClass(dI);var hI=class extends Pn{apply(e){return Ll(e)}};hI.className="softplus";re.registerClass(hI);var mI=class extends Pn{apply(e){return lz(e)}};mI.className="softsign";re.registerClass(mI);var fI=class extends Pn{apply(e){return Ml(e)}};fI.className="tanh";re.registerClass(fI);var Yb=class extends Pn{apply(e,t=-1){return Na(e,t)}};Yb.className="softmax";re.registerClass(Yb);var gI=class extends Pn{apply(e,t=-1){return bh(e,t)}};gI.className="logSoftmax";re.registerClass(gI);var yI=class extends Pn{apply(e,t=1){return D(()=>ua(e.mul(t)).mul(e))}};yI.className="swish";re.registerClass(yI);function ss(e){return e.getClassName()}function Zb(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function is(e){if(e==null){let t={};return t.className="linear",t.config={},Zb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},Zb(t)}else return e instanceof Pn?e:Zb(e)}function Jb(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var bI=class extends re.Serializable{},op=class extends bI{constructor(e){super();Jb(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return D(()=>{let t=vt([1]);return this.hasL1&&(t=Z(t,Te(L(this.l1,Lt(e))))),this.hasL2&&(t=Z(t,Te(L(this.l2,ep(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};op.className="L1L2";re.registerClass(op);function AW(e){return Jb(e),new op({l1:e!=null?e.l1:null,l2:0})}function FW(e){return Jb(e),new op({l2:e!=null?e.l2:null,l1:0})}var xI={l1l2:"L1L2"};function mt(e){return hb(e)}function vI(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in xI?xI[e]:e,config:{}};return vI(t)}else return e instanceof bI?e:vI(e)}var Qb=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=Ye(e);return this.maxValue!=null&&(n=qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Qb.className="ReLU";re.registerClass(Qb);var ex=class extends qe{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Me(e);return Bc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};ex.className="LeakyReLU";re.registerClass(ex);var tx=class extends qe{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=wt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=kt(e.alphaRegularizer),this.alphaConstraint=Vt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=ht(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,1]):e))}function wI(e,t){return D(()=>(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,4,1]):e))}function $W(e,t,n,a=1,r="valid",s,i=1){return D(()=>{if(s==null&&(s=Ca()),Dt(s),e.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ue(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=ch(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=er(o,n)),o})}function kI(e,t,n,a=[1,1],r="valid",s,i,o=null){return D(()=>{if(s==null&&(s=Ca()),Dt(s),e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=sx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=es.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ue(l,[0,3,1,2])),l})}function DW(e,t,n,a=[1,1,1],r="valid",s,i){return D(()=>{if(s==null&&(s=Ca()),Dt(s),e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=wI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Py(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=er(o,n)),s==="channelsFirst"&&(o=Ue(o,[0,4,1,2,3])),o})}var ix=class extends qe{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",ix.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Jl(t.kernelSize,e,"kernelSize"),this.strides=Jl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Jn(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Dt(this.dataFormat),this.activation=is(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=wt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Vt(t.biasConstraint),this.biasRegularizer=kt(t.biasRegularizer),this.activityRegularizer=kt(t.activityRegularizer),this.dilationRate=Jl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Ja("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!fb(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ss(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},lp=class extends ix{constructor(e,t){super(e,t);this.kernel=null,lp.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=wt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Vt(t.kernelConstraint),this.kernelRegularizer=kt(t.kernelRegularizer)}build(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return D(()=>{e=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=ok(this.activation.getClassName());if(r!=null&&this.rank===2)n=kI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=$W(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=kI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=DW(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=ht(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},up=class extends lp{constructor(e){super(2,e);up.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!fb(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};up.className="Conv2D";re.registerClass(up);var gm=class extends lp{constructor(e){super(3,e);gm.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};gm.className="Conv3D";re.registerClass(gm);var ox=class extends up{constructor(e){super(e);if(this.inputSpec=[new Xt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=ht(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Xt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return D(()=>{let n=Me(e);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],c=this.kernelSize[0],u=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=fm(o,p,c,this.padding),m=fm(l,d,u,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ue(n,[0,2,3,1]));let g=ph(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ue(g,[0,3,1,2])),this.bias!=null&&(g=er(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=ht(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=fm(t[a],o,s,this.padding),t[r]=fm(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};ox.className="Conv2DTranspose";re.registerClass(ox);var II=class extends lp{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=kt(t.depthwiseRegularizer),this.depthwiseConstraint=Vt(t.depthwiseConstraint),this.pointwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=kt(t.pointwiseRegularizer),this.pointwiseConstraint=Vt(t.pointwiseConstraint)}build(e){if(e=ht(e),e.length{e=Me(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ue(e,[0,2,3,1])),n=Ei(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=er(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ue(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseConstraint),e.pointwiseConstraint=Wt(this.pointwiseConstraint),e}};II.className="SeparableConv";var lx=class extends II{constructor(e){super(2,e)}};lx.className="SeparableConv2D";re.registerClass(lx);var ym=class extends lp{constructor(e){super(1,e);ym.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!fb(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};ym.className="Conv1D";re.registerClass(ym);var ux=class extends qe{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return D(()=>{if(e=Me(e),this.dataFormat==="channelsLast"){let n=jh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return jh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=jh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return jh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};ux.className="Cropping2D";re.registerClass(ux);var cx=class extends qe{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,ez(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return D(()=>{let n=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ue(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ue(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};cx.className="UpSampling2D";re.registerClass(cx);function RW(e,t,n=[1,1],a="valid",r,s){return D(()=>{r==null&&(r=Ca()),Dt(r);let i=sx(e,r);if(e.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Yr(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}var px=class extends ix{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=wt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Vt(e.depthwiseConstraint),this.depthwiseRegularizer=kt(e.depthwiseRegularizer)}build(e){if(e=ht(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{e=Me(e);let n=RW(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=er(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=$a(t,this.kernelSize[0],this.padding,this.strides[0]),s=$a(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseRegularizer),e}};px.className="DepthwiseConv2D";re.registerClass(px);function NI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function TI(e,t,n,a=!1,r,s,i=!1,o=!1){return D(()=>{let l=t.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let c=[1,0].concat(Ea(2,l));if(t=Ue(t,c),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=Fn(r,-1)),r=Ue(r,c)),a&&(t=Rn(t,0),r!=null&&(r=Rn(r,0)));let u=[],p,d=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let y=0;ye(b,d));if(r==null)p=v[0],d=v[1];else{let x=D(()=>{let N=f[y],T=Dn(N).sub(N),C=v[0].mul(N).add(d[0].mul(T)),$=d.map((F,O)=>v[1][O].mul(N).add(F.mul(T)));return{output:C,newStates:$}});p=x.output,d=x.newStates}o&&u.push(p)}let g;return o&&(g=$t(u,1)),[p,g,d]})}var tr=class extends qe{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new bm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Xt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ea(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Mb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return D(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Xt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_=[vt([n,this.cell.stateSize])];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_[0]=vt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let a=0;ajt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=NI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Xt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Aa){let o=[e].concat(s),l=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=l;let u=super.apply(o,t);return this.inputSpec=c,u}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Me(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new z(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=TI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],c=o[1],u=o[2];this.stateful&&this.resetStates(u,a);let p=this.returnSequences?c:l;return this.returnState?[p].concat(u):p})}getInitialState(e){return D(()=>{let t=vt(e.shape);return t=Te(t,[1,2]),t=Qc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?wb(t,[1,n]):t):this.cell.stateSize>1?[wb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===tr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Fa(a,n);return new e(Object.assign(t,{cell:r}))}};tr.className="RNN";re.registerClass(tr);var np=class extends qe{},xm=class extends np{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ql([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ql([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0Dn(e),rate:this.dropout,training:a})),0Dn(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=Qa(L(e,s),this.kernel.read()):r=Qa(e,this.kernel.read()),this.bias!=null&&(r=er(r,this.bias.read())),i!=null&&(n=L(n,i));let o=Z(r,Qa(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:ss(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),recurrentConstraint:Wt(this.recurrentConstraint),biasConstraint:Wt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};xm.className="SimpleRNNCell";re.registerClass(xm);var dx=class extends tr{constructor(e){e.cell=new xm(e),super(e)}call(e,t){return D(()=>{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};dx.className="SimpleRNN";re.registerClass(dx);var vm=class extends np{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=is(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ql([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ql([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0Dn(e),rate:this.dropout,training:n,count:3})),0Dn(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};hx.className="GRU";re.registerClass(hx);var cp=class extends np{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=is(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ql([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ql([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=ht(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ha{apply(i,o){let l=r.apply([s]),c=new Kh().apply([s]),u=r.apply([s*2]);return yk(yk(l,c),u)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0Dn(e),rate:this.dropout,training:n,count:4})),0Dn(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,c,u;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};mx.className="LSTM";re.registerClass(mx);var bm=class extends np{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return D(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Mi(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Fa(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Pb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sxk(t(),n),i=()=>tp(s,t,a);return!r||r<=1?jt(i().clone()):Array(r).fill(void 0).map(i).map(o=>jt(o.clone()))}var MW=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return D(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=vt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new xr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_=[vt(r)];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_[0]=vt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let s=0;sjt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],c=e[o?4:3],u=$a(l,a[0],r,s[0],i[0]),p=$a(c,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,u,p]:[u,p,n]]}};SI.className="ConvRNN2D";var wm=class extends cp{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=Jl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=Jl(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",Jn(this.padding),this.dataFormat=s||"channelsLast",Dt(this.dataFormat),this.dilationRate=Jl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=ht(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;o=new(t=class extends ha{apply(u,p){let d=l.apply([c]),h=Xa([c]),m=l.apply([c*2]);return Ib([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return D(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0Dn(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(J,se,Q)=>!se||!se[Q]?J:L(se[Q],J),c=l(a,o,0),u=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0Dn(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[v,x,N,T]=Mn(this.kernel.read(),i,b),[C,$,F,O]=this.useBias?Mn(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,v,C,this.padding),u=this.inputConv(u,x,$,this.padding),p=this.inputConv(p,N,F,this.padding),d=this.inputConv(d,T,O,this.padding);let[B,W,G,q]=Mn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,B),f=this.recurrentConv(f,W),g=this.recurrentConv(g,G),y=this.recurrentConv(y,q);let H=this.recurrentActivation.apply(Z(c,m)),K=this.recurrentActivation.apply(Z(u,f)),X=Z(L(K,s),L(H,this.activation.apply(Z(p,g)))),ne=L(this.recurrentActivation.apply(Z(d,y)),this.activation.apply(X));return[ne,ne,X]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=MW(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?er(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};wm.className="ConvLSTM2DCell";re.registerClass(wm);var fx=class extends SI{constructor(e){let t=new wm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};fx.className="ConvLSTM2D";re.registerClass(fx);var km=class extends qe{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);if(0xk(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};km.className="Dropout";re.registerClass(km);var gx=class extends km{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};gx.className="SpatialDropout1D";re.registerClass(gx);var yx=class extends qe{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Vt(e.kernelConstraint),this.biasConstraint=Vt(e.biasConstraint),this.kernelRegularizer=kt(e.kernelRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=ht(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=ht(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=ok(this.activation.getClassName()),r;return a!=null?r=Qa(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=Qa(n,this.kernel.read()),this.bias!=null&&(r=er(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ss(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};yx.className="Dense";re.registerClass(yx);var bx=class extends qe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ht(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],ns(e,1)]}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:ss(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};xx.className="Activation";re.registerClass(xx);var vx=class extends qe{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return D(()=>(e=Me(e),rz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};vx.className="RepeatVector";re.registerClass(vx);var wx=class extends qe{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};wx.className="Reshape";re.registerClass(wx);var kx=class extends qe{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Ea(1,e.dims.length+1);if(!k.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Xt({ndim:this.dims.length+1})]}computeOutputShape(e){e=ht(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ue(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};kx.className="Permute";re.registerClass(kx);var Ix=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Me(e),a=-1;return Rc(_i(n,this.maskValue),a)}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=Rc(_i(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};Ix.className="Masking";re.registerClass(Ix);var Nx=class extends qe{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=wt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=kt(e.embeddingsRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.embeddingsConstraint=Vt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return D(()=>this.maskZero?(e=Me(e),_i(e,Ge(e))):null)}computeOutputShape(e){if(e=ht(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);return n.dtype!=="int32"&&(n=Jc(n,"int32")),bk(this.embeddings.read(),n.as1D()).reshape(ht(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Wt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Nx.className="Embedding";re.registerClass(Nx);var Bi=class extends qe{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&ts(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return D(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=as(a);for(let s of e){let i=s.rank;for(let o=0;o1){let c=Ea(1,l).concat([0]);n.push(Ue(o,c)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,c=o[l-1],u=[c].concat(o.slice(0,o.length-1));s=Ue(s.reshape([-1,c]),[1,0]).reshape(u)}else if(i>1){let o=[i-1].concat(Ea(0,i-1));s=Ue(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Fn(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return D(()=>Ib(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return D(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(k.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),k.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return D(()=>{let i;if(a>r){i=a-r;let l=[];for(let c=0;ca){i=r-a;let l=[];for(let c=0;c0){let l;a>r?l=a+r-3:l=a-1;let c=[];for(let u=l;u"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new z(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>pp(r,e[s].shape.length)):a=[pp(this.axes,t.shape.length),pp(this.axes,n.shape.length)],this.normalize&&(t=im(t,a[0]),n=im(n,a[1])),PW(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[pp(this.axes,e.length),pp(this.axes,t.length)],n}computeOutputShape(e){k.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Fx.className="Dot";re.registerClass(Fx);var $x=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return tp(()=>qh(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};$x.className="GaussianNoise";re.registerClass($x);var Dx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return this.rate>0&&this.rate<1?tp(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(qh(n.shape,1,a))},()=>n,t.training||!1):n})}};Dx.className="GaussianDropout";re.registerClass(Dx);var Rx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return tp(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Jr(Wl(n),this.rate);o=Jc(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,c=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(c)},()=>Me(e),t.training||!1)}return e})}};Rx.className="AlphaDropout";re.registerClass(Rx);function dp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=t1(e,t,n,a,r,s);else if(e.rank===3)i=n1(e,t,n,a,r,s);else if(e.rank===4)i=a1(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function OW(e,t,n,a,r=.001){return D(()=>{let s=vh(e,a),i=s.mean,o=s.variance;return[dp(e,i,o,n,t,r),i,o]})}function LW(e,t,n,a,r=.001){return D(()=>{let s=vh(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ea(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let c=i.reshape(l),u=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[dp(e,c,u,d,p,r),i,o]})}function zW(e,t,n,a,r=.001){return k.arraysEqual(a.slice().sort(),Ea(0,e.rank-1))?OW(e,t,n,a,r):LW(e,t,n,a,r)}var Mx=class extends qe{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.movingMeanInitializer=wt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=wt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Vt(e.betaConstraint),this.gammaConstraint=Vt(e.gammaConstraint),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer)}build(e){e=ht(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Xt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training,a=Me(e),r=a.shape,s=r.length,i=Ea(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=$i(1,s);l[o]=r[o];let c=i.slice();c.sort();let u=!k.arraysEqual(c,Ea(0,s).slice(0,s-1)),p=()=>{if(u){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,v=this.scale?this.gamma.read().reshape(l):null;return dp(a,g,y,b,v,this.epsilon)}else return dp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=zW(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{D(()=>{let v=1-b,x=g.read(),N=x.sub(y).mul(v);g.write(x.sub(N))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Wt(this.betaConstraint),gammaConstraint:Wt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Mx.className="BatchNormalization";re.registerClass(Mx);var Px=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=ht(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==ts(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Me(e),a=n.shape,r=a.length;return D(()=>{let s=!0,{mean:i,variance:o}=vh(n,this.axis,s),l=$i(1,r);for(let m of this.axis)l[m]=a[m];let c=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,u=c(this.gamma.read()),p=c(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Ca()),n!=="channelsLast"&&n!=="channelsFirst")throw new z(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],Zn(e,a)})}var Ox=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ca():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return D(()=>BW(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Ox.className="ZeroPadding2D";re.registerClass(Ox);function Im(e,t,n,a,r,s){return D(()=>{Dt(r),pk(s),Jn(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ca()),s==null&&(s="max"),e=sx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Ft(e,t,n,o):i=Xn(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}function CI(e,t,n,a,r,s){return D(()=>{Dt(r),pk(s),Jn(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ca()),s==null&&(s="max"),e=wI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=qy(e,t,n,o):i=Dy(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,4,1,2,3])),i})}var _I=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Jn(this.padding),this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){e=ht(e);let t=$a(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return D(()=>{this.invokeCallHook(e,t),e=Qc(Me(e),2);let n=this.poolingFunction(Me(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Qr(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},Lx=class extends _I{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Im(e,t,n,a,r,"max")}};Lx.className="MaxPooling1D";re.registerClass(Lx);var zx=class extends _I{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Im(e,t,n,a,r,"avg")}};zx.className="AveragePooling1D";re.registerClass(zx);var EI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Jn(this.padding),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=$a(t,this.poolSize[0],this.padding,this.strides[0]),n=$a(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Bx=class extends EI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Im(e,t,n,a,r,"max")}};Bx.className="MaxPooling2D";re.registerClass(Bx);var Wx=class extends EI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Im(e,t,n,a,r,"avg")}};Wx.className="AveragePooling2D";re.registerClass(Wx);var AI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Jn(this.padding),this.inputSpec=[new Xt({ndim:5})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=$a(t,this.poolSize[0],this.padding,this.strides[0]),n=$a(n,this.poolSize[1],this.padding,this.strides[1]),a=$a(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Vx=class extends AI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),CI(e,t,n,a,r,"max")}};Vx.className="MaxPooling3D";re.registerClass(Vx);var Ux=class extends AI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),CI(e,t,n,a,r,"avg")}};Ux.className="AveragePooling3D";re.registerClass(Ux);var FI=class extends qe{constructor(e){super(e);this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},Gx=class extends FI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return St(n,1)})}};Gx.className="GlobalAveragePooling1D";re.registerClass(Gx);var Hx=class extends FI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return Yn(n,1)})}};Hx.className="GlobalMaxPooling1D";re.registerClass(Hx);var $I=class extends qe{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},jx=class extends $I{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?St(n,[1,2]):St(n,[2,3])})}};jx.className="GlobalAveragePooling2D";re.registerClass(jx);var qx=class extends $I{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?Yn(n,[1,2]):Yn(n,[2,3])})}};qx.className="GlobalMaxPooling2D";re.registerClass(qx);var DI=class extends qe{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Fa(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},Kx=class extends DI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=ht(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=ht(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return D(()=>(e=Me(e),TI((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};Kx.className="TimeDistributed";re.registerClass(Kx);function WW(e){Ri(Q3,"BidirectionalMergeMode",e)}var VW="concat",Xx=class extends DI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Fa(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Fa(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?VW:e.mergeMode,WW(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):kn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=NI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let c=n.map(u=>new Xt({shape:u.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),i.push(...c)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Aa;for(let l of s)if(l instanceof Aa!==o)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),c=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=c;let p=super.apply(l,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Rn(r,1));let i;return this.mergeMode==="concat"?i=Ib([a,r]):this.mergeMode==="sum"?i=Z(a,r):this.mergeMode==="ave"?i=L(.5,Z(a,r)):this.mergeMode==="mul"?i=L(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Mi(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Mi(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Fa(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};Xx.className="Bidirectional";re.registerClass(Xx);function fz(e){return new Kl(e)}function gz(e){return new nx(e)}function yz(e){return new Qb(e)}function bz(e){return new ex(e)}function xz(e){return new tx(e)}function vz(e){return new rx(e)}function wz(e){return new ax(e)}function kz(e){return new ym(e)}function Iz(e){return new up(e)}function Nz(e){return new ox(e)}function Tz(e){return new gm(e)}function Sz(e){return new lx(e)}function Cz(e){return new ux(e)}function _z(e){return new cx(e)}function Ez(e){return new px(e)}function Az(e){return new xx(e)}function Fz(e){return new yx(e)}function $z(e){return new km(e)}function Dz(e){return new gx(e)}function Rz(e){return new bx(e)}function Mz(e){return new vx(e)}function Pz(e){return new wx(e)}function Oz(e){return new kx(e)}function Lz(e){return new Nx(e)}function zz(e){return new Tx(e)}function Bz(e){return new Cx(e)}function Wz(e){return new Ax(e)}function Vz(e){return new _x(e)}function Uz(e){return new Ex(e)}function Gz(e){return new Sx(e)}function Hz(e){return new Fx(e)}function jz(e){return new Mx(e)}function qz(e){return new Px(e)}function Kz(e){return new Ox(e)}function $b(e){return new zx(e)}function Xz(e){return $b(e)}function Yz(e){return $b(e)}function Db(e){return new Wx(e)}function Zz(e){return Db(e)}function Jz(e){return Db(e)}function Rb(e){return new Ux(e)}function Qz(e){return Rb(e)}function eB(e){return Rb(e)}function tB(e){return new Gx(e)}function nB(e){return new jx(e)}function Nk(e){return new Hx(e)}function Tk(e){return new qx(e)}function Sk(e){return new Lx(e)}function Ck(e){return new Bx(e)}function aB(e){return new Vx(e)}function rB(e){return new hx(e)}function sB(e){return new vm(e)}function iB(e){return new mx(e)}function oB(e){return new cp(e)}function lB(e){return new dx(e)}function uB(e){return new xm(e)}function cB(e){return new fx(e)}function pB(e){return new wm(e)}function dB(e){return new tr(e)}function hB(e){return new bm(e)}function mB(e){return new Xx(e)}function fB(e){return new Kx(e)}var gB=Nk,yB=Tk,bB=Sk,xB=Ck;function vB(e){return new $x(e)}function wB(e){return new Dx(e)}function kB(e){return new Rx(e)}function IB(e){return new Ix(e)}var RI={};Oe(RI,{MAPE:()=>QW,MSE:()=>n4,binaryAccuracy:()=>UW,binaryCrossentropy:()=>GW,categoricalAccuracy:()=>jW,categoricalCrossentropy:()=>qW,cosineProximity:()=>YW,mape:()=>e4,meanAbsoluteError:()=>ZW,meanAbsolutePercentageError:()=>JW,meanSquaredError:()=>t4,mse:()=>a4,precision:()=>KW,recall:()=>XW,sparseCategoricalAccuracy:()=>HW});function UW(e,t){return Bb(e,t)}function GW(e,t){return Vk(e,t)}function HW(e,t){return Uk(e,t)}function jW(e,t){return Wb(e,t)}function qW(e,t){return Vb(e,t)}function KW(e,t){return Wk(e,t)}function XW(e,t){return VB(e,t)}function YW(e,t){return Lb(e,t)}function ZW(e,t){return om(e,t)}function JW(e,t){return Yl(e,t)}function QW(e,t){return Yl(e,t)}function e4(e,t){return Yl(e,t)}function t4(e,t){return Oi(e,t)}function n4(e,t){return Oi(e,t)}function a4(e,t){return Oi(e,t)}var MI={};Oe(MI,{modelFromJSON:()=>kW});var PI={};Oe(PI,{l1:()=>s4,l1l2:()=>r4,l2:()=>i4});function r4(e){return new op(e)}function s4(e){return AW(e)}function i4(e){return FW(e)}var OI=class extends Xl{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof wr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Nm(e,t){return et}var zI=class extends OI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Nm:this.mode==="max"?this.monitorFunc=LI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=LI:this.monitorFunc=Nm,this.monitorFunc===Nm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Nm?Infinity:-Infinity}async onEpochEnd(e,t){await rs(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function o4(e){return new zI(e)}var l4={earlyStopping:o4},Da;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Da||(Da={}));var BI;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(BI||(BI={}));var Yx={};function u4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};Yx[e]=n}function WI(e){return Yx[e]}function c4(e){delete Yx[e]}function I(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return Nn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>Nn(p,n,a,r));let c=Nn(t.inputNames.slice(o)[0],n,a,r),u=c.dataSync();return s.type==="number"?u[0]:k.toNestedArray(c.shape,u)}let i=t.attrParams[e];return i&&i.value}function Nn(e,t,n,a){let[r,s]=On(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Tm(r,o)]);return i!==void 0?t[Tm(r,i)][s]:void 0}function p4(e,t,n){return t[Tm(e,n.currentContextId)]}function kr(e,t){let[n,a]=On(e);return[Tm(n,t&&t.currentContextId),a]}function Tm(e,t){return t?`${e}-${t}`:e}function On(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function Sm(e,t,n){let a=I("pad",e,t,n);if(a==="explicit"){a=I("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Ir(e){return e.kept?e:jr(e)}var VI={};Oe(VI,{json:()=>d4});var d4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],UI={};Oe(UI,{json:()=>h4});var h4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],GI={};Oe(GI,{json:()=>m4});var m4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],HI={};Oe(HI,{json:()=>f4});var f4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],jI={};Oe(jI,{json:()=>g4});var g4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],qI={};Oe(qI,{json:()=>y4});var y4=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],KI={};Oe(KI,{json:()=>b4});var b4=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],XI={};Oe(XI,{json:()=>x4});var x4=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],YI={};Oe(YI,{json:()=>v4});var v4=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],ZI={};Oe(ZI,{json:()=>w4});var w4=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],JI={};Oe(JI,{json:()=>k4});var k4=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],QI={};Oe(QI,{json:()=>I4});var I4=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],eN={};Oe(eN,{json:()=>N4});var N4=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],tN={};Oe(tN,{json:()=>T4});var T4=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],nN={};Oe(nN,{json:()=>S4});var S4=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],aN={};Oe(aN,{json:()=>C4});var C4=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],rN={};Oe(rN,{json:()=>_4});var _4=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],iN=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[VI,UI,GI,HI,jI,qI,KI,JI,ZI,XI,QI,eN,tN,nN,aN,rN,YI],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],c={},u={};t!=null&&(c=this.mapSignatureEntries(t.inputs),u=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=kr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(u).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(u).forEach(m=>{let[f]=kr(m),g=i[f];g!=null&&(g.signatureKey=u[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{let[f]=kr(m),g=i[f];g&&(g.signatureKey=c[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=WI(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Zx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=sv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Qx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=Qx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=rv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Jx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=ov(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ov(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=av(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=av(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=iv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=tv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=tv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=nv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=sN(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sN(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((c,u)=>(c[u.name]=this.mapNode(u),u.op==="Const"&&a.push(c[u.name]),c),{}));let s=[],i=[];e.signature.inputArg.forEach(c=>{let[u]=kr(c.name),p={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:ev(c.type),type:"dtype"}},children:[]};p.signatureKey=c.name,s.push(p),r[u]=p}),Object.keys(r).forEach(c=>{let u=r[c];u.inputNames.forEach(p=>{let[d]=kr(p);u.inputs.push(r[d]),r[d].children.push(u)})});let o=e.ret;e.signature.outputArg.forEach(c=>{let[u,p]=kr(o[c.name]),d=r[u];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function E4(e){let t=ee().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function oN(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):E4(e);return t?n:n.toLowerCase()}function Zx(e,t,n,a=!1){let r=e[t];return r!=null?oN(r.s,a):n}function Jx(e,t,n){let a=e[t];return a?a.b:n}function Qx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function ev(e){switch(typeof e=="string"&&(e=Da[e]),e){case Da.DT_FLOAT:return"float32";case Da.DT_INT32:case Da.DT_INT64:case Da.DT_INT8:case Da.DT_UINT8:return"int32";case Da.DT_BOOL:return"bool";case Da.DT_DOUBLE:return"float32";case Da.DT_STRING:return"string";default:return null}}function sN(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function tv(e,t,n){let a=e[t];return a&&a.type?ev(a.type):n}function nv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>ev(r)):n}function lN(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function av(e,t,n){let a=e[t];return a&&a.shape?lN(a.shape):n}function rv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function sv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>oN(s,a)):n}function iv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>lN(r)):n}function ov(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var A4=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return Nn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Nn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Qx(this.node.rawAttrs,e,t);if(n.s!=null)return Zx(this.node.rawAttrs,e,t);if(n.b!=null)return Jx(this.node.rawAttrs,e,t);if(n.shape!=null)return av(this.node.rawAttrs,e,t);if(n.type!=null)return tv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return rv(this.node.rawAttrs,e,t);if(n.list.s!=null)return sv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return iv(this.node.rawAttrs,e,t);if(n.list.b!=null)return ov(this.node.rawAttrs,e,t);if(n.list.type!=null)return nv(this.node.rawAttrs,e,t)}return t}},F4=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[Z(I("a",e,t,n),I("b",e,t,n))];case"AddN":return[Z0(I("tensors",e,t,n))];case"FloorMod":case"Mod":return[Xy(I("a",e,t,n),I("b",e,t,n))];case"Mul":return[L(I("a",e,t,n),I("b",e,t,n))];case"RealDiv":case"Div":return[ve(I("a",e,t,n),I("b",e,t,n))];case"DivNoNan":return[zy(I("a",e,t,n),I("b",e,t,n))];case"FloorDiv":return[oh(I("a",e,t,n),I("b",e,t,n))];case"Sub":return[fe(I("a",e,t,n),I("b",e,t,n))];case"Minimum":return[Bl(I("a",e,t,n),I("b",e,t,n))];case"Maximum":return[Ka(I("a",e,t,n),I("b",e,t,n))];case"Pow":return[gr(I("a",e,t,n),I("b",e,t,n))];case"SquaredDifference":return[Ah(I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},$4=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lt(I("x",e,t,n))];case"Acos":return[Iy(I("x",e,t,n))];case"Acosh":return[Ny(I("x",e,t,n))];case"Asin":return[Sy(I("x",e,t,n))];case"Asinh":return[Cy(I("x",e,t,n))];case"Atan":return[_y(I("x",e,t,n))];case"Atan2":return[Ey(I("x",e,t,n),I("y",e,t,n))];case"Atanh":return[Ay(I("x",e,t,n))];case"Ceil":return[Ry(I("x",e,t,n))];case"Complex":return[Ur(I("real",e,t,n),I("imag",e,t,n))];case"Cos":return[zc(I("x",e,t,n))];case"Cosh":return[dh(I("x",e,t,n))];case"Elu":return[Pl(I("x",e,t,n))];case"Erf":return[By(I("x",e,t,n))];case"Exp":return[pn(I("x",e,t,n))];case"Expm1":return[Wy(I("x",e,t,n))];case"Floor":return[Ol(I("x",e,t,n))];case"Log":return[$n(I("x",e,t,n))];case"Log1p":return[gh(I("x",e,t,n))];case"Imag":return[mh(I("x",e,t,n))];case"Neg":return[Tt(I("x",e,t,n))];case"Reciprocal":return[Jy(I("x",e,t,n))];case"Real":return[Gc(I("x",e,t,n))];case"Relu":return[Ye(I("x",e,t,n))];case"Round":return[Qy(I("x",e,t,n))];case"Selu":return[Th(I("x",e,t,n))];case"Sigmoid":return[ua(I("x",e,t,n))];case"Sin":return[Sh(I("x",e,t,n))];case"Sign":return[eb(I("x",e,t,n))];case"Sinh":return[Ch(I("x",e,t,n))];case"Softplus":return[Ll(I("x",e,t,n))];case"Sqrt":return[en(I("x",e,t,n))];case"Square":return[lt(I("x",e,t,n))];case"Tanh":return[Ml(I("x",e,t,n))];case"Tan":return[ab(I("x",e,t,n))];case"ClipByValue":return[qt(I("x",e,t,n),I("clipValueMin",e,t,n),I("clipValueMax",e,t,n))];case"Relu6":return[Ih(I("x",e,t,n))];case"Rsqrt":return[Nh(Nn(e.inputNames[0],t,n))];case"Prod":return[wh(I("x",e,t,n),I("axes",e,t,n))];case"LeakyRelu":return[Bc(I("x",e,t,n),I("alpha",e,t,n))];case"Prelu":return[Uc(I("x",e,t,n),I("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function fa(e,t,n=""){k.assert(D4(e,t),()=>n+` Shapes ${e} and ${t} must match`)}function D4(e,t){if(e.length!==t.length)return!1;for(let n=0;n{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),fa(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,dt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let c={};for(let h of Object.keys(ha))c[h]=ha[h];for(let h of Object.keys(n))c[h]=n[h];let u=s.config;u.customObjects=c;let p=Object.assign({},ha);for(let h of Object.keys(n))ha[h]=n[h];yb(s.config);let d=l(o,s.config,n,r);return ha=Object.assign({},p),d}else{let c=Object.assign({},ha);for(let p of Object.keys(n))ha[p]=n[p];let u=new o(s.config);return ha=Object.assign({},c),u}}}function O3(e,t){return et?1:0}function Kh(e,t){return-1*O3(e,t)}function ts(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function L3(e){if(e==null)throw new z(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Pi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new z(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function bb(e,t,n=0,a=Infinity){return Qa(n>=0),Qa(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(k.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):k.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${pk(e)}.`)}function pk(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>pk(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function z3(e,t){let n=k.now(),a;return(...r)=>{let s=k.now();return s-nen(Te(L(e,e),t,!0)))}var Yc=class extends re.Serializable{getConfig(){return{}}},vb=class extends Yc{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=xb(e,this.axis),n=qt(t,0,this.maxValue);return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};vb.className="MaxNorm";re.registerClass(vb);var wb=class extends Yc{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>ve(e,Z(Bt(),xb(e,this.axis))))}getConfig(){return{axis:this.axis}}};wb.className="UnitNorm";re.registerClass(wb);var kb=class extends Yc{apply(e){return Ye(e)}};kb.className="NonNeg";re.registerClass(kb);var Ib=class extends Yc{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=xb(e,this.axis),n=Z(L(this.rate,qt(t,this.minValue,this.maxValue)),L(1-this.rate,t));return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Ib.className="MinMaxNorm";re.registerClass(Ib);var hk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Wt(e){return gb(e)}function mk(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Vt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in hk?hk[e]:e,config:{}};return mk(t)}else return e instanceof Yc?e:mk(e)}function $3(e){return new vb(e)}function D3(e){return new wb(e)}function R3(){return new kb}function M3(e){return new Ib(e)}var fk={};Oe(fk,{constant:()=>V3,glorotNormal:()=>X3,glorotUniform:()=>K3,heNormal:()=>Y3,heUniform:()=>Z3,identity:()=>j3,leCunNormal:()=>J3,leCunUniform:()=>Q3,ones:()=>W3,orthogonal:()=>ez,randomNormal:()=>G3,randomUniform:()=>U3,truncatedNormal:()=>H3,varianceScaling:()=>q3,zeros:()=>B3});var tz=["channelsFirst","channelsLast"],nz=["nearest","bilinear"],az=["valid","same","causal"],rz=["max","avg"],sz=["sum","mul","concat","ave"],jl=new Map;function Dt(e){Pi(tz,"DataFormat",e)}function iz(e){Pi(nz,"InterpolationFormat",e)}function Jn(e){Pi(az,"PaddingMode",e)}function gk(e){Pi(rz,"PoolMode",e)}var Zc=[],yk="/";function Oi(e,t){Zc.push(e);try{let n=t();return Zc.pop(),n}catch(n){throw Zc.pop(),n}}function oz(){return Zc.length===0?"":Zc.join(yk)+yk}function xk(e){if(!bk(e))throw new Error("Not a valid tensor name: '"+e+"'");return oz()+e}function vk(e){if(!bk(e))throw new Error("Not a valid tensor name: '"+e+"'");jl.has(e)||jl.set(e,0);let t=jl.get(e);if(jl.set(e,jl.get(e)+1),t>0){let n=`${e}_${t}`;return jl.set(n,1),n}else return e}var lz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function bk(e){return!!e.match(lz)}function uz(e){return e===parseInt(e.toString(),10)}function ns(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r{if(e.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Qc(e,1);return Nb(n,[1,t,1])})}function pz(e){let t=[ns(e.shape)];return e.reshape(t)}function dz(e){if(e.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ns(e.shape,1)];return e.reshape(t)}function Li(e,t,n){return D(()=>{switch(e.rank){case 1:return Fh(e,t,n);case 2:return rb(e,[t,0],[n,e.shape[1]]);case 3:return Vl(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Hc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Tb(e,t,n){return D(()=>{switch(e.rank){case 1:return Fh(e,t,n);case 2:return rb(e,[0,t],[e.shape[0],n]);case 3:return Vl(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Hc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Xh(e,t,n,a){return D(()=>{switch(e.rank){case 1:return Fh(e,t,n);case 2:switch(a){case 1:return Li(e,t,n);case 2:return Tb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Li(e,t,n);case 2:return Vl(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Tb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Li(e,t,n);case 2:return Hc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Hc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Tb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Sb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function kk(e,t){switch(e.rank){case 1:return c1([e,t]);case 2:return p1([e,t],0);case 3:return d1([e,t],0);case 4:return h1([e,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Nb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return qa(e,t)}function Yh(e,t=0,n=1,a,r){return A1(e,t,n,a,r)}function er(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return es.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?Cb(e.rank,a,_a()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),c=[...i,o],u=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(u).reshape([l,-1]);let p=[...r,...c],d=!1,h=!1;return es.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?Cb(e.rank,a,_a()):null,activation:n}).reshape(p)}}function Ik(e,t,n){return D(()=>(Array.isArray(t)?t=tt(t,"int32"):t=t.toInt(),Ci(e,t,n)))}function ep(e){return L(e,e)}function Cb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function tr(e,t,n){return D(()=>(n==null&&(n=_a()),Dt(n),e.add(Cb(e.rank,t,n))))}function hz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Pl(e)}function mz(e){return D(()=>ve(e,Lt(e).add(1)))}function Nk(e,t,n,a){return D(()=>O1(e,t,n,a))}function fz(e){return D(()=>{let t=Z(.5,L(.2,e));return qt(t,0,1)})}function tp(e,t,n=!1){return n?e():t()}var gz=["fanIn","fanOut","fanAvg"],yz=["normal","uniform","truncatedNormal"];function bz(e){Pi(gz,"FanMode",e)}function xz(e){Pi(yz,"Distribution",e)}var ma=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},_b=class extends ma{apply(e,t){return vt(e,t)}};_b.className="Zeros";re.registerClass(_b);var Zh=class extends ma{apply(e,t){return Ya(e,t)}};Zh.className="Ones";re.registerClass(Zh);var Eb=class extends ma{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return D(()=>L(de(this.value),Ya(e,t)))}getConfig(){return{value:this.value}}};Eb.className="Constant";re.registerClass(Eb);var Ab=class extends ma{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Wl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Ab.className="RandomUniform";re.registerClass(Ab);var Fb=class extends ma{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return Yh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Fb.className="RandomNormal";re.registerClass(Fb);var $b=class extends ma{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Rh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$b.className="TruncatedNormal";re.registerClass($b);var Db=class extends ma{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return D(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return L(this.gain,Hy(e[0]))})}getConfig(){return{gain:this.gain}}};Db.className="Identity";re.registerClass(Db);function vz(e,t="channelsLast"){let n,a;if(Dt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ns(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ns(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ns(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var In=class extends ma{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,bz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,xz(this.distribution),this.seed=e.seed}apply(e,t){let n=vz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Rh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Wl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};In.className="VarianceScaling";re.registerClass(In);var Jh=class extends In{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return In.className}};Jh.className="GlorotUniform";re.registerClass(Jh);var Qh=class extends In{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return In.className}};Qh.className="GlorotNormal";re.registerClass(Qh);var em=class extends In{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return In.className}};em.className="HeNormal";re.registerClass(em);var tm=class extends In{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return In.className}};tm.className="HeUniform";re.registerClass(tm);var nm=class extends In{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return In.className}};nm.className="LeCunNormal";re.registerClass(nm);var am=class extends In{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return In.className}};am.className="LeCunNormal";re.registerClass(am);var Rb=class extends ma{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return D(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=Yh(n,0,1,"float32"),r=Y1.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),L(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rb.className="Orthogonal";re.registerClass(Rb);var Tk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Sk(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return gb(e)}function wt(e){if(typeof e=="string"){let t=e in Tk?Tk[e]:e;if(t==="GlorotNormal")return new Qh;if(t==="GlorotUniform")return new Jh;if(t==="HeNormal")return new em;if(t==="HeUniform")return new tm;if(t==="LeCunNormal")return new nm;if(t==="LeCunUniform")return new am;{let n={};return n.className=t,n.config={},Sk(n)}}else return e instanceof ma?e:Sk(e)}function B3(){return new _b}function W3(){return new Zh}function V3(e){return new Eb(e)}function U3(e){return new Ab(e)}function G3(e){return new Fb(e)}function H3(e){return new $b(e)}function j3(e){return new Db(e)}function q3(e){return new In(e)}function K3(e){return new Jh(e)}function X3(e){return new Qh(e)}function Y3(e){return new em(e)}function Z3(e){return new tm(e)}function J3(e){return new nm(e)}function Q3(e){return new am(e)}function ez(e){return new Rb(e)}var Ck={};Oe(Ck,{Layer:()=>qe,RNN:()=>nr,RNNCell:()=>np,activation:()=>Pz,add:()=>Hz,alphaDropout:()=>_B,average:()=>jz,averagePooling1d:()=>Mb,averagePooling2d:()=>Pb,averagePooling3d:()=>Ob,avgPool1d:()=>tB,avgPool2d:()=>aB,avgPool3d:()=>sB,avgPooling1d:()=>nB,avgPooling2d:()=>rB,avgPooling3d:()=>iB,batchNormalization:()=>Jz,bidirectional:()=>vB,concatenate:()=>qz,conv1d:()=>_z,conv2d:()=>Ez,conv2dTranspose:()=>Az,conv3d:()=>Fz,convLstm2d:()=>gB,convLstm2dCell:()=>yB,cropping2D:()=>Dz,dense:()=>Oz,depthwiseConv2d:()=>Mz,dot:()=>Zz,dropout:()=>Lz,elu:()=>kz,embedding:()=>Gz,flatten:()=>Bz,gaussianDropout:()=>CB,gaussianNoise:()=>SB,globalAveragePooling1d:()=>oB,globalAveragePooling2d:()=>lB,globalMaxPool1d:()=>kB,globalMaxPool2d:()=>IB,globalMaxPooling1d:()=>Ek,globalMaxPooling2d:()=>Ak,gru:()=>cB,gruCell:()=>pB,input:()=>_k,inputLayer:()=>wz,layerNormalization:()=>Qz,leakyReLU:()=>Nz,lstm:()=>dB,lstmCell:()=>hB,masking:()=>EB,maxPool1d:()=>NB,maxPool2d:()=>TB,maxPooling1d:()=>Fk,maxPooling2d:()=>$k,maxPooling3d:()=>uB,maximum:()=>Kz,minimum:()=>Xz,multiply:()=>Yz,permute:()=>Uz,prelu:()=>Tz,reLU:()=>Iz,repeatVector:()=>Wz,reshape:()=>Vz,rnn:()=>bB,separableConv2d:()=>$z,simpleRNN:()=>mB,simpleRNNCell:()=>fB,softmax:()=>Sz,spatialDropout1d:()=>zz,stackedRNNCells:()=>xB,thresholdedReLU:()=>Cz,timeDistributed:()=>wB,upSampling2d:()=>Rz,zeroPadding2d:()=>eB});var AB=0;function Dk(){return AB++}var rm={};function sm(e=""){return e in rm||(rm[e]=0),rm[e]+=1,e+rm[e].toString()}function Lb(e){return Array.isArray(e)&&Array.isArray(e[0])}function im(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new z(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ht(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new z(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function om(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Rk="Variable",Mk=class{constructor(e,t="float32",n=Rk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Dk(),n=n==null?Rk:n,this.originalName=xk(n),this.name=vk(this.originalName),this.trainable_=a,this.constraint=r,this.val=$1(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),FB(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function FB(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function zb(e){return e.map(t=>t.read())}function Bb(e){e.forEach(t=>{t[0].write(t[1])})}var Xt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Fa=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=Dk(),s!=null&&(this.originalName=xk(s),this.name=vk(this.originalName)),this.rank=t.length}},$B=0,lm=class{constructor(e,t){this.callArgs=t,this.id=$B++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},DB=0,qe=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=DB++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=wr(n)+"_"+sm(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ea(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return kn(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return kn(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} is not connected, no input to return.`);return kn(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return kn(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(c!=null&&[c,null].indexOf(u)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(kn(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=kn(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=RB(e),i=this.computeOutputShape(s),o,l=MB(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((c,u)=>new Fa(l,c,this,yt(e),t,this.name,u)):o=new Fa(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new vr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ea(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return om(this.weights)}build(e){this.built=!0}getWeights(e=!1){return zb(e?this.trainableWeights:this.weights)}setWeights(e){D(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=zb(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=im(r),s=im(s);let l=[],c=[],u=[];for(let p of o)l.push(p.sourceLayer),c.push(p.nodeIndex),u.push(p.tensorIndex);new lm({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:u,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function RB(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return kn(t)}function MB(e){return"float32"}function Pk(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sZ(this.totals[a],L(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:D(()=>{let a=L(ve(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),jt(t[n])}))}},Wk=class extends Xl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew Vk(n,t))}var fa=class{constructor(){}static registerCallbackConstructor(e,t){k.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),fa.checkForDuplicate(t),fa.constructors[e]==null&&(fa.constructors[e]=[]),fa.constructors[e].push(t)}static checkForDuplicate(e){for(let t in fa.constructors)fa.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){fa.constructors={}}static createCallbacks(e){let t=[];for(let n in fa.constructors){let a=+n;e>=a&&t.push(...fa.constructors[a])}return t.map(n=>new n)}};fa.constructors={};function Gk(e,t,n,a,r,s,i,o,l){let c=new Wk,u=[new OB,...fa.createCallbacks(t)];e!=null&&u.push(...e),u.push(c);let p=new Bk(u);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:c}}function $a(e,t={},n=!1){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function um(e,t){return D(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Te(ep(e),t,!0),a=wn(n.shape,Bt()),r=en(Xa(n,a));return ve(e,r)})}function zi(e,t){return D(()=>St(ep(fe(t,e)),-1))}function cm(e,t){return D(()=>St(Lt(fe(t,e)),-1))}function Yl(e,t){return D(()=>{let n=fe(e,t),a=qt(Lt(e),Bt(),Number.MAX_VALUE),r=Lt(ve(n,a));return L(100,St(r,-1))})}function LB(e,t){return D(()=>{let n=qt(t,Bt(),Number.MAX_VALUE),a=Dn(Z(1,n)),r=qt(e,Bt(),Number.MAX_VALUE),s=Dn(Z(1,r));return St(ep(fe(a,s)),-1)})}function zB(e,t){return D(()=>{let n=Xa(0,fe(1,L(e,t)));return St(ep(n),-1)})}function BB(e,t){return D(()=>{let n=Xa(0,fe(1,L(e,t)));return St(n,-1)})}function WB(e,t){return D(()=>{let n=Te(L(e,t),-1),a=Yn(L(fe(1,e),t),-1);return Xa(0,Z(1,fe(a,n)))})}function VB(e,t){return D(()=>{let n=Math.log(2),a=fe(t,e),r=fe(Z(a,Ll(L(-2,a))),n);return St(r,-1)})}function ap(e,t,n=!1){return D(()=>{if(n)t=Ta(t);else{let a=Te(t,t.shape.length-1,!0);t=ve(t,a)}return t=qt(t,Bt(),1-Bt()),Tt(Te(L(e.toFloat(),Dn(t)),t.shape.length-1))})}function pm(e,t,n=!1){return D(()=>{let a=Ol(pz(e)).toInt();t=qt(t,Bt(),1-Bt());let r=t.shape,s=$l(a,r[r.length-1]).reshape(r);return ap(s,t,n)})}function UB(e,t){if(!k.arraysEqual(e.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return D(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function dm(e,t){return D(()=>{let n;return n=qt(t,Bt(),1-Bt()),n=Dn(ve(n,fe(1,n))),St(UB(e,n),-1)})}function GB(e,t){return D(()=>{let n=qt(e,Bt(),1),a=qt(t,Bt(),1);return Te(L(e,Dn(ve(n,a))),-1)})}function HB(e,t){return D(()=>{let n=Dn(Z(Bt(),t));return St(fe(t,L(e,n)),-1)})}function Wb(e,t){return D(()=>{let n=um(e,-1),a=um(t,-1),r=L(n,a);return Tt(Te(r,-1))})}var hm={meanSquaredError:zi,meanAbsoluteError:cm,meanAbsolutePercentageError:Yl,meanSquaredLogarithmicError:LB,squaredHinge:zB,hinge:BB,categoricalHinge:WB,logcosh:VB,categoricalCrossentropy:ap,sparseCategoricalCrossentropy:pm,binaryCrossentropy:dm,kullbackLeiblerDivergence:GB,poisson:HB,cosineProximity:Wb};function Vb(e){if(typeof e=="string"){if(e in hm)return hm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return e}function Ub(e,t){return D(()=>{let n=L(.5,Rn(t)),a=Jc(pa(t,n),e.dtype);return St(Zr(e,a),-1)})}function Gb(e,t){return D(()=>Jc(Zr(Mc(e,-1),Mc(t,-1)),"float32"))}function Hk(e,t){return D(()=>da(e.equal(1),t.equal(1)).sum().cast("float32"))}function jB(e,t){return D(()=>da(e.equal(1),t.equal(0)).sum().cast("float32"))}function qB(e,t){return D(()=>da(e.equal(0),t.equal(1)).sum().cast("float32"))}function jk(e,t){return D(()=>{let n=Hk(e,t),a=qB(e,t),r=n.add(a);return vn(pa(r,0),n.div(r),0).cast("float32")})}function KB(e,t){return D(()=>{let n=Hk(e,t),a=jB(e,t),r=n.add(a);return vn(pa(r,0),n.div(r),0).cast("float32")})}function qk(e,t){return dm(e,t)}function Kk(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),Zr(e,t).asType("float32")}var XB=zi,YB=zi,ZB=cm,JB=cm,QB=Yl,eW=Yl,Hb=ap,tW=Wb,Xk=pm,mm={binaryAccuracy:Ub,categoricalAccuracy:Gb,precision:jk,categoricalCrossentropy:Hb,sparseCategoricalCrossentropy:Xk,mse:XB,MSE:YB,mae:ZB,MAE:JB,mape:QB,MAPE:eW,cosine:tW};function nW(e){if(typeof e=="string"&&e in mm)return mm[e];if(typeof e!="string"&&e!=null)return e;throw new z(`Unknown metric ${e}`)}function fm(e){if(Qa(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(hm))if(hm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(mm))if(mm[n]===e){t=n;break}return t!==void 0?t:e.name}}function aW(e){let t={Adagrad:()=>Di.adagrad(.01),Adadelta:()=>Di.adadelta(1,.95,Bt()),Adam:()=>Di.adam(.001,.9,.999,Bt()),Adamax:()=>Di.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Di.rmsprop(.001,.9,0,Bt()),SGD:()=>Di.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new z(`Unknown Optimizer ${e}`)}var Yk=1*1024*1024;function Zk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!jb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>Yk&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${Yk}.`)}}function jb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!jb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!jb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function lW(e,t,n,a=console.log){let r=sW(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(u=>Math.floor(t*u)));let i;if(!r){s.push("Receives inputs"),i=[];for(let u in e.nodesByDepth)i.push(...e.nodesByDepth[u])}a("_".repeat(t)),gm(s,n,a),a("=".repeat(t));let o=e.layers;for(let u=0;u1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function gm(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function iW(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];gm(i,t,n)}function oW(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(u){r="multiple"}let s=[];for(let u of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(u)===-1))for(let p=0;pm.name),l=[],c=t.names();for(let m of o)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let u=o.join(",")+"|"+t.names().join(","),p,d;if(Kb[u]==null){let m=cW(i,t);p=m.sorted,d=m.recipientCounts,Kb[u]=p,Qk[u]=d}p=Kb[u],d={},r||Object.assign(d,Qk[u]);let h=new Bi(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=eI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=eI(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(c=>a[l].add(c))}}return{sorted:n,recipientCounts:dW(a)}}function dW(e){let t={};for(let n in e)t[n]=e[n].size;return t}function eI(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let c of o.inputs)r[c.name]==null&&(r[c.name]=new Set),r[c.name].add(o.name),!n.has(c.name)&&s.push(c)}}return{sorted:a,recipientMap:r}}function pW(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);ts(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(x)}for(let y of this.inputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;Qa(v===0,"input layer has >1 nodes"),Qa(x===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(x)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,v,x,N,T)=>{(x==null||N==null||T==null)&&(x=y.sourceLayer,N=y.nodeIndex,T=y.tensorIndex);let C=x.inboundNodes[N];if(v.indexOf(C)!==-1)throw new Ea(`The tensor ${y.name} at layer "${x.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(ar.nodeKey(x,N)),x.id in s||(s[x.id]=Object.keys(s).length),v.indexOf(C)===-1&&v.push(C);let F=C.inboundLayers.length;for(let $=0;$=0;)v.splice(v.indexOf(C),1);i.push(C)},l=[],c=[];for(let y of this.outputs)o(y,l,c);let u=i.slice().reverse();for(let y of u){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],v=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,v),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let x=0;xparseInt(y,10)).sort(Kh);this.layers=[];for(let y of h){let b=d[y];b.sort((v,x)=>{let N=s[v.id],T=s[x.id];return NT?1:0});for(let v of b)v instanceof ar&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(Kh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let v=b.outboundLayer;if(v!=null){for(let x of b.inputTensors)if(m.indexOf(x)===-1)throw new Ea(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${v.name}". The following previous layers were accessed without issue: ${f}`);for(let x of b.outputTensors)m.push(x);f.push(v.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(v=>v===y).length;if(b!==1)throw new Ea(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new lm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new z(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new z(`${s.length} of ${a} weights are not set: ${s}`)}Bb(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${ym}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=qb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return D(()=>{e=yt(e);let n=new Bi;for(let a=0;a{e=yt(e);let n;return t==null?n=Ri(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=im(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(Kh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;let u=[];for(let m=0;mparseInt(o,10)).sort(Kh);for(let o of a){let l=this.nodesByDepth[o];for(let c of l){let u=c.outboundLayer,p=c.inputTensors,d=c.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(c.callArgs!=null&&(m=c.callArgs),h.length===1){let[v,x]=h[0];m.mask==null&&(m.mask=x),y=yt(u.call(v,m)),b=yt(u.computeMask(v,x)),f=[v],g=[x]}else f=h.map(v=>v[0]),g=h.map(v=>v[1]),m.mask==null&&(m.mask=g),y=yt(u.call(f,m)),b=yt(u.computeMask(f,g));if(u.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(kn(y),b)}function l(f){let g=f.name,y=$a(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let c=t.name,u=t.layers;for(let f of u)l(f);for(;!L3(s);)for(let f of u){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];Qa(g in r);let v=r[g].inboundNodes[y].outputTensors;p.push(v[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];Qa(g in r);let v=r[g].inboundNodes[y].outputTensors;d.push(v[b])}return new e({inputs:p,outputs:d,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){D(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function hW(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function tI(e,t){return hW(e,t,"classWeight")}async function nI(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=D(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Fe(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),tt(i,"float32")}else return null}function mW(e,t){return L(e,t)}var fW=32;function rI(e,t){let n,a,r=t;n=r.xs,a=r.ys,k.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=aI("input",e.inputNames,n),i=aI("output",e.outputNames,a),o=s[0].shape[0];k.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),k.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function aI(e,t,n){if(n instanceof Ae)return[n];if(Array.isArray(n))return k.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new z(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function gW(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function bW(e,t,n){let a=n.batchesPerEpoch!=null;if(k.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),k.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),k.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),k.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),k.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(sI(n.validationData))k.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=gW(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),c;r?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();let u=Uk(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=Gk(u,p,n.epochs,null,null,yW(t,n),null,r,c);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:v.done){if(r){let x;sI(n.validationData)?x=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):x=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?fW:n.validationBatchSize,verbose:0}));for(let N=0;N0)throw new $e("Verbose mode is not implemented yet.");k.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=xW(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(c.value){let{xs:u,ys:p}=rI(e,c.value),d=u.concat(p),h=D(()=>r(d));if(Fe(d),l===0)for(let f=0;fZ(s[f],L(m,g))),l>0&&Fe(y)}Fe(h),o+=m,++l}return s}),c.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function ip(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Li(a,t,n-t)):Li(e,t,n-t)}function Yb(e,t){return D(()=>e==null?null:Array.isArray(e)?e.map(n=>Yb(n,t)):Ik(e,t.dtype==="int32"?t:t.toInt()))}function Zb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function wW(e,t,n,a,r,s,i,o,l,c,u,p,d,h,m){r==null&&(r=32),s==null&&(s=1),u==null&&(u=!0),d==null&&(d=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Aa(0,g)),i==null&&(i=1);let{callbackList:b,history:v}=Gk(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let x=d;x{let P=C[F][0],B=C[F][1],W=Li(T,P,B-P);$.batch=F,$.size=B-P;let G=Yb(n,W),q=t(G);for(let j=0;j0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let T=!0,C=await e.standardizeUserData(i,o,null,null,T,p);l=C[0],c=C[1],f=l.concat(c)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let T=Math.floor(r[0].shape[0]*(1-a.validationSplit)),C=r[0].shape[0];l=ip(r,T,C),r=ip(r,0,T),c=ip(s,T,C),s=ip(s,0,T),f=l.concat(c)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(u);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),v,x;m?(e.makeTestFunction(),v=e.testFunction,x=b.slice().concat(b.map(T=>"val_"+T))):(v=null,f=[],x=b.slice());let N=Uk(a.callbacks,a.yieldEvery);return await wW(e,y,g,b,p,a.epochs,a.verbose,N,v,f,a.shuffle,x,a.initialEpoch,null,null)}finally{e.isTraining=!1,Wi(r,t),Wi(s,n),Wi(l,i),Wi(c,o),u!=null&&Fe(u)}}function iI(e){let t=[];e instanceof Ae&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Ae)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function IW(e){return e instanceof Ae}function Jb(e){return Array.isArray(e)}function oI(e){return!IW(e)&&!Jb(e)}function lI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Jb(e)&&e.length>0)i=!0;else if(oI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(oI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Jb(e)){if(e=e,e.length!==t.length)throw new z(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new z(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=iI(s),n!=null)for(let i=0;i=0&&c!==u)throw new z(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function NW(e,t,n){let a=ts(e.map(s=>s.shape[0]));a.sort();let r=ts(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!k.arraysEqual(a,r))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function TW(e,t,n){let a=[zi,dm,ap];for(let r=0;r1)throw new z(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var CW="layers-model",kr=class extends ar{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");lW(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=aW(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof xr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new z(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(Vb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>Vb(s))}else{let s=Vb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=SW(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Oi("metric",()=>{for(let s=0;s{let l="",c,u,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===dm?["accuracy","acc"].indexOf(d)!==-1?u=Ub:["crossentropy","ce"].indexOf(d)!==-1&&(u=qk):this.lossFunctions[s]===pm?["accuracy","acc"].indexOf(d)!==-1?u=Kk:["crossentropy","ce"].indexOf(d)!==-1&&(u=Xk):["accuracy","acc"].indexOf(d)!==-1?u=Gb:["crossentropy","ce"].indexOf(d)!==-1&&(u=Hb);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=u,c=l+f}else p=nW(d),c=l+fm(d);let h;Oi(c,()=>{h=p}),r(s,c,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;Xb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return kn(l)}finally{Wi(s[0],e),Wi(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),vW(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new z(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Bi;if(e instanceof Ae&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return D(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=Zb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],c=ip(e,o,l),u=[];if(Array.isArray(c))for(let d=0;ds[l].push(o));return kn(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=iI(e);uI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Xb(a),this.predictLoop(n,a)}finally{Wi(n,e)}}predictOnBatch(e){uI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Ea("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let c=tI(a,this.outputNames);l=[];for(let u=0;u{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=Zb(s,n),l=tt(Aa(0,s));for(let c=0;c1&&(r+=`_${ck(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let c=[];for(let h=0;h1&&h{d=Z(d,h)}),d},o=this.collectedTrainableWeights.map(c=>c.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>D(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lwr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=wr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[wr(fm(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>wr(fm(e)));{let e={};for(let t in this.metrics)e[t]=wr(fm(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=rp(e.optimizer_config),n=$a(t),a;if(typeof e.loss=="string")a=Mi(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Mi(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Mi(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Mi(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Mi(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ht.getSaveHandlers(e);if(i.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new z(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ht.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:CW,generatedBy:`TensorFlow.js tfjs-layers v${ym}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ht.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ht.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;Zk(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Zk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};kr.className="Model";re.registerClass(kr);var cI=class extends kr{};cI.className="Functional";re.registerClass(cI);async function _W(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=rp(n),r=$a(a,t);if(e.weightsManifest!=null){let s=await Ht.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Fe(s)}return r}async function AW(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ht.getLoadHandlers(e,t);if(n.length===0)n.push(Ht.browserHTTPRequest(e,t));else if(n.length>1)throw new z(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return EW(e,void 0,t)}async function EW(e,t,n){if(n==null&&(n={}),e.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=$a(rp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:c,optimizerWeights:u}=FW(a.weightData,a.weightSpecs);o.loadWeights(c,s),o.optimizer!=null&&u.length>0&&await o.optimizer.setWeights(u),Fe(c),Fe(u.map(p=>p.tensor))}return o}function FW(e,t){let n=Ht.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Zl=class extends kr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:sm("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Zl||e instanceof kr,n;if(t){if(n=e,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=Ok({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Pk(this.outputs[0])}this.inboundNodes=[],new lm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Ri(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(ht(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new kr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");r=t}else k.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Zl))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=$a(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Zl.className="Sequential";re.registerClass(Zl);function $W(e){return new kr(e)}function DW(e){return new Zl(e)}function RW(e,t){return t==null&&(t={}),AW(e,t)}function _k(e){return Ok(e)}function MW(e,t){fa.registerCallbackConstructor(e,t)}var On=class extends re.Serializable{getConfig(){return{}}},pI=class extends On{apply(e,t=1){return hz(e,t)}};pI.className="elu";re.registerClass(pI);var dI=class extends On{apply(e){return _h(e)}};dI.className="selu";re.registerClass(dI);var hI=class extends On{apply(e){return Ye(e)}};hI.className="relu";re.registerClass(hI);var mI=class extends On{apply(e){return D(()=>Bl(6,Ye(e)))}};mI.className="relu6";re.registerClass(mI);var fI=class extends On{apply(e){return e}};fI.className="linear";re.registerClass(fI);var gI=class extends On{apply(e){return ca(e)}};gI.className="sigmoid";re.registerClass(gI);var yI=class extends On{apply(e){return fz(e)}};yI.className="hardSigmoid";re.registerClass(yI);var bI=class extends On{apply(e){return Ll(e)}};bI.className="softplus";re.registerClass(bI);var xI=class extends On{apply(e){return mz(e)}};xI.className="softsign";re.registerClass(xI);var vI=class extends On{apply(e){return Ml(e)}};vI.className="tanh";re.registerClass(vI);var Qb=class extends On{apply(e,t=-1){return Ta(e,t)}};Qb.className="softmax";re.registerClass(Qb);var wI=class extends On{apply(e,t=-1){return wh(e,t)}};wI.className="logSoftmax";re.registerClass(wI);var kI=class extends On{apply(e,t=1){return D(()=>ca(e.mul(t)).mul(e))}};kI.className="swish";re.registerClass(kI);function ss(e){return e.getClassName()}function ex(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function is(e){if(e==null){let t={};return t.className="linear",t.config={},ex(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},ex(t)}else return e instanceof On?e:ex(e)}function tx(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var II=class extends re.Serializable{},op=class extends II{constructor(e){super();tx(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return D(()=>{let t=vt([1]);return this.hasL1&&(t=Z(t,Te(L(this.l1,Lt(e))))),this.hasL2&&(t=Z(t,Te(L(this.l2,ep(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};op.className="L1L2";re.registerClass(op);function PW(e){return tx(e),new op({l1:e!=null?e.l1:null,l2:0})}function OW(e){return tx(e),new op({l2:e!=null?e.l2:null,l1:0})}var NI={l1l2:"L1L2"};function mt(e){return gb(e)}function TI(e,t={}){return Xc(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in NI?NI[e]:e,config:{}};return TI(t)}else return e instanceof II?e:TI(e)}var nx=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=Ye(e);return this.maxValue!=null&&(n=qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};nx.className="ReLU";re.registerClass(nx);var ax=class extends qe{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Me(e);return Bc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};ax.className="LeakyReLU";re.registerClass(ax);var rx=class extends qe{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=wt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=kt(e.alphaRegularizer),this.alphaConstraint=Vt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=ht(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,1]):e))}function SI(e,t){return D(()=>(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,4,1]):e))}function LW(e,t,n,a=1,r="valid",s,i=1){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ue(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=hh(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=tr(o,n)),o})}function CI(e,t,n,a=[1,1],r="valid",s,i,o=null){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=lx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=es.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ue(l,[0,3,1,2])),l})}function zW(e,t,n,a=[1,1,1],r="valid",s,i){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=SI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=zy(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=tr(o,n)),s==="channelsFirst"&&(o=Ue(o,[0,4,1,2,3])),o})}var ux=class extends qe{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",ux.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Jl(t.kernelSize,e,"kernelSize"),this.strides=Jl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Jn(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Dt(this.dataFormat),this.activation=is(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=wt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Vt(t.biasConstraint),this.biasRegularizer=kt(t.biasRegularizer),this.activityRegularizer=kt(t.activityRegularizer),this.dilationRate=Jl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Qa("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!bb(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ss(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},lp=class extends ux{constructor(e,t){super(e,t);this.kernel=null,lp.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=wt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Vt(t.kernelConstraint),this.kernelRegularizer=kt(t.kernelRegularizer)}build(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return D(()=>{e=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=dk(this.activation.getClassName());if(r!=null&&this.rank===2)n=CI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=LW(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=CI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=zW(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=ht(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},up=class extends lp{constructor(e){super(2,e);up.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!bb(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};up.className="Conv2D";re.registerClass(up);var xm=class extends lp{constructor(e){super(3,e);xm.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};xm.className="Conv3D";re.registerClass(xm);var cx=class extends up{constructor(e){super(e);if(this.inputSpec=[new Xt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=ht(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Xt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return D(()=>{let n=Me(e);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],c=this.kernelSize[0],u=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=bm(o,p,c,this.padding),m=bm(l,d,u,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ue(n,[0,2,3,1]));let g=mh(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ue(g,[0,3,1,2])),this.bias!=null&&(g=tr(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=ht(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=bm(t[a],o,s,this.padding),t[r]=bm(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};cx.className="Conv2DTranspose";re.registerClass(cx);var _I=class extends lp{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=kt(t.depthwiseRegularizer),this.depthwiseConstraint=Vt(t.depthwiseConstraint),this.pointwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=kt(t.pointwiseRegularizer),this.pointwiseConstraint=Vt(t.pointwiseConstraint)}build(e){if(e=ht(e),e.length{e=Me(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ue(e,[0,2,3,1])),n=Fi(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=tr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ue(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseConstraint),e.pointwiseConstraint=Wt(this.pointwiseConstraint),e}};_I.className="SeparableConv";var px=class extends _I{constructor(e){super(2,e)}};px.className="SeparableConv2D";re.registerClass(px);var vm=class extends lp{constructor(e){super(1,e);vm.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!bb(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};vm.className="Conv1D";re.registerClass(vm);var dx=class extends qe{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return D(()=>{if(e=Me(e),this.dataFormat==="channelsLast"){let n=Xh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Xh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Xh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Xh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};dx.className="Cropping2D";re.registerClass(dx);var hx=class extends qe{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,iz(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return D(()=>{let n=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ue(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ue(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};hx.className="UpSampling2D";re.registerClass(hx);function BW(e,t,n=[1,1],a="valid",r,s){return D(()=>{r==null&&(r=_a()),Dt(r);let i=lx(e,r);if(e.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Yr(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}var mx=class extends ux{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=wt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Vt(e.depthwiseConstraint),this.depthwiseRegularizer=kt(e.depthwiseRegularizer)}build(e){if(e=ht(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{e=Me(e);let n=BW(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=tr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Da(t,this.kernelSize[0],this.padding,this.strides[0]),s=Da(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseRegularizer),e}};mx.className="DepthwiseConv2D";re.registerClass(mx);function EI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function AI(e,t,n,a=!1,r,s,i=!1,o=!1){return D(()=>{let l=t.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let c=[1,0].concat(Aa(2,l));if(t=Ue(t,c),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=$n(r,-1)),r=Ue(r,c)),a&&(t=Mn(t,0),r!=null&&(r=Mn(r,0)));let u=[],p,d=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let y=0;ye(b,d));if(r==null)p=v[0],d=v[1];else{let x=D(()=>{let N=f[y],T=Rn(N).sub(N),C=v[0].mul(N).add(d[0].mul(T)),F=d.map(($,P)=>v[1][P].mul(N).add($.mul(T)));return{output:C,newStates:F}});p=x.output,d=x.newStates}o&&u.push(p)}let g;return o&&(g=$t(u,1)),[p,g,d]})}var nr=class extends qe{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new wm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Xt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Aa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Lb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return D(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Xt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_=[vt([n,this.cell.stateSize])];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_[0]=vt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let a=0;ajt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=EI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Xt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Fa){let o=[e].concat(s),l=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=l;let u=super.apply(o,t);return this.inputSpec=c,u}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Me(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new z(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=AI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],c=o[1],u=o[2];this.stateful&&this.resetStates(u,a);let p=this.returnSequences?c:l;return this.returnState?[p].concat(u):p})}getInitialState(e){return D(()=>{let t=vt(e.shape);return t=Te(t,[1,2]),t=Qc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Nb(t,[1,n]):t):this.cell.stateSize>1?[Nb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===nr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=$a(a,n);return new e(Object.assign(t,{cell:r}))}};nr.className="RNN";re.registerClass(nr);var np=class extends qe{},km=class extends np{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ql([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ql([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0Rn(e),rate:this.dropout,training:a})),0Rn(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=er(L(e,s),this.kernel.read()):r=er(e,this.kernel.read()),this.bias!=null&&(r=tr(r,this.bias.read())),i!=null&&(n=L(n,i));let o=Z(r,er(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:ss(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),recurrentConstraint:Wt(this.recurrentConstraint),biasConstraint:Wt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};km.className="SimpleRNNCell";re.registerClass(km);var fx=class extends nr{constructor(e){e.cell=new km(e),super(e)}call(e,t){return D(()=>{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};fx.className="SimpleRNN";re.registerClass(fx);var Im=class extends np{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=is(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ql([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ql([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0Rn(e),rate:this.dropout,training:n,count:3})),0Rn(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};gx.className="GRU";re.registerClass(gx);var cp=class extends np{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=is(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ql([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ql([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=ht(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ma{apply(i,o){let l=r.apply([s]),c=new Zh().apply([s]),u=r.apply([s*2]);return kk(kk(l,c),u)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0Rn(e),rate:this.dropout,training:n,count:4})),0Rn(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,c,u;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};yx.className="LSTM";re.registerClass(yx);var wm=class extends np{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return D(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Oi(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push($a(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return zb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sNk(t(),n),i=()=>tp(s,t,a);return!r||r<=1?jt(i().clone()):Array(r).fill(void 0).map(i).map(o=>jt(o.clone()))}var WW=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return D(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=vt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_=[vt(r)];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_[0]=vt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let s=0;sjt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],c=e[o?4:3],u=Da(l,a[0],r,s[0],i[0]),p=Da(c,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,u,p]:[u,p,n]]}};FI.className="ConvRNN2D";var Nm=class extends cp{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=Jl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=Jl(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",Jn(this.padding),this.dataFormat=s||"channelsLast",Dt(this.dataFormat),this.dilationRate=Jl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=ht(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;o=new(t=class extends ma{apply(u,p){let d=l.apply([c]),h=Ya([c]),m=l.apply([c*2]);return Sb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return D(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0Rn(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(J,se,Q)=>!se||!se[Q]?J:L(se[Q],J),c=l(a,o,0),u=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0Rn(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[v,x,N,T]=Pn(this.kernel.read(),i,b),[C,F,$,P]=this.useBias?Pn(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,v,C,this.padding),u=this.inputConv(u,x,F,this.padding),p=this.inputConv(p,N,$,this.padding),d=this.inputConv(d,T,P,this.padding);let[B,W,G,q]=Pn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,B),f=this.recurrentConv(f,W),g=this.recurrentConv(g,G),y=this.recurrentConv(y,q);let j=this.recurrentActivation.apply(Z(c,m)),X=this.recurrentActivation.apply(Z(u,f)),K=Z(L(X,s),L(j,this.activation.apply(Z(p,g)))),ne=L(this.recurrentActivation.apply(Z(d,y)),this.activation.apply(K));return[ne,ne,K]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=WW(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?tr(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Nm.className="ConvLSTM2DCell";re.registerClass(Nm);var bx=class extends FI{constructor(e){let t=new Nm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};bx.className="ConvLSTM2D";re.registerClass(bx);var Tm=class extends qe{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);if(0Nk(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Tm.className="Dropout";re.registerClass(Tm);var xx=class extends Tm{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};xx.className="SpatialDropout1D";re.registerClass(xx);var vx=class extends qe{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=is(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Vt(e.kernelConstraint),this.biasConstraint=Vt(e.biasConstraint),this.kernelRegularizer=kt(e.kernelRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=ht(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=ht(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=dk(this.activation.getClassName()),r;return a!=null?r=er(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=er(n,this.kernel.read()),this.bias!=null&&(r=tr(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ss(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};vx.className="Dense";re.registerClass(vx);var wx=class extends qe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ht(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],ns(e,1)]}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:ss(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};kx.className="Activation";re.registerClass(kx);var Ix=class extends qe{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return D(()=>(e=Me(e),cz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Ix.className="RepeatVector";re.registerClass(Ix);var Nx=class extends qe{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Nx.className="Reshape";re.registerClass(Nx);var Tx=class extends qe{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Aa(1,e.dims.length+1);if(!k.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Xt({ndim:this.dims.length+1})]}computeOutputShape(e){e=ht(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ue(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Tx.className="Permute";re.registerClass(Tx);var Sx=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Me(e),a=-1;return Rc(Ai(n,this.maskValue),a)}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=Rc(Ai(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};Sx.className="Masking";re.registerClass(Sx);var Cx=class extends qe{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=wt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=kt(e.embeddingsRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.embeddingsConstraint=Vt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return D(()=>this.maskZero?(e=Me(e),Ai(e,Ge(e))):null)}computeOutputShape(e){if(e=ht(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);return n.dtype!=="int32"&&(n=Jc(n,"int32")),Ik(this.embeddings.read(),n.as1D()).reshape(ht(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Wt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Cx.className="Embedding";re.registerClass(Cx);var Vi=class extends qe{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&ts(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return D(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=as(a);for(let s of e){let i=s.rank;for(let o=0;o1){let c=Aa(1,l).concat([0]);n.push(Ue(o,c)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,c=o[l-1],u=[c].concat(o.slice(0,o.length-1));s=Ue(s.reshape([-1,c]),[1,0]).reshape(u)}else if(i>1){let o=[i-1].concat(Aa(0,i-1));s=Ue(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:$n(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return D(()=>Sb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return D(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(k.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),k.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return D(()=>{let i;if(a>r){i=a-r;let l=[];for(let c=0;ca){i=r-a;let l=[];for(let c=0;c0){let l;a>r?l=a+r-3:l=a-1;let c=[];for(let u=l;u"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new z(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>pp(r,e[s].shape.length)):a=[pp(this.axes,t.shape.length),pp(this.axes,n.shape.length)],this.normalize&&(t=um(t,a[0]),n=um(n,a[1])),VW(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[pp(this.axes,e.length),pp(this.axes,t.length)],n}computeOutputShape(e){k.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Rx.className="Dot";re.registerClass(Rx);var Mx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return tp(()=>Yh(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};Mx.className="GaussianNoise";re.registerClass(Mx);var Px=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return this.rate>0&&this.rate<1?tp(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(Yh(n.shape,1,a))},()=>n,t.training||!1):n})}};Px.className="GaussianDropout";re.registerClass(Px);var Ox=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return tp(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Jr(Wl(n),this.rate);o=Jc(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,c=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(c)},()=>Me(e),t.training||!1)}return e})}};Ox.className="AlphaDropout";re.registerClass(Ox);function dp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=i1(e,t,n,a,r,s);else if(e.rank===3)i=o1(e,t,n,a,r,s);else if(e.rank===4)i=l1(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function UW(e,t,n,a,r=.001){return D(()=>{let s=Ih(e,a),i=s.mean,o=s.variance;return[dp(e,i,o,n,t,r),i,o]})}function GW(e,t,n,a,r=.001){return D(()=>{let s=Ih(e,a),i=s.mean,o=s.variance,l=[];for(let h of Aa(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let c=i.reshape(l),u=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[dp(e,c,u,d,p,r),i,o]})}function HW(e,t,n,a,r=.001){return k.arraysEqual(a.slice().sort(),Aa(0,e.rank-1))?UW(e,t,n,a,r):GW(e,t,n,a,r)}var Lx=class extends qe{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.movingMeanInitializer=wt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=wt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Vt(e.betaConstraint),this.gammaConstraint=Vt(e.gammaConstraint),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer)}build(e){e=ht(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Xt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training,a=Me(e),r=a.shape,s=r.length,i=Aa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=Ri(1,s);l[o]=r[o];let c=i.slice();c.sort();let u=!k.arraysEqual(c,Aa(0,s).slice(0,s-1)),p=()=>{if(u){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,v=this.scale?this.gamma.read().reshape(l):null;return dp(a,g,y,b,v,this.epsilon)}else return dp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=HW(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{D(()=>{let v=1-b,x=g.read(),N=x.sub(y).mul(v);g.write(x.sub(N))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Wt(this.betaConstraint),gammaConstraint:Wt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Lx.className="BatchNormalization";re.registerClass(Lx);var zx=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=ht(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==ts(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Me(e),a=n.shape,r=a.length;return D(()=>{let s=!0,{mean:i,variance:o}=Ih(n,this.axis,s),l=Ri(1,r);for(let m of this.axis)l[m]=a[m];let c=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,u=c(this.gamma.read()),p=c(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=_a()),n!=="channelsLast"&&n!=="channelsFirst")throw new z(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],Zn(e,a)})}var Bx=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?_a():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return D(()=>jW(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Bx.className="ZeroPadding2D";re.registerClass(Bx);function Sm(e,t,n,a,r,s){return D(()=>{Dt(r),gk(s),Jn(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=_a()),s==null&&(s="max"),e=lx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Ft(e,t,n,o):i=Xn(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}function $I(e,t,n,a,r,s){return D(()=>{Dt(r),gk(s),Jn(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=_a()),s==null&&(s="max"),e=SI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Yy(e,t,n,o):i=Py(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,4,1,2,3])),i})}var DI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Jn(this.padding),this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){e=ht(e);let t=Da(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return D(()=>{this.invokeCallHook(e,t),e=Qc(Me(e),2);let n=this.poolingFunction(Me(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Qr(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},Wx=class extends DI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Sm(e,t,n,a,r,"max")}};Wx.className="MaxPooling1D";re.registerClass(Wx);var Vx=class extends DI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Sm(e,t,n,a,r,"avg")}};Vx.className="AveragePooling1D";re.registerClass(Vx);var RI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Jn(this.padding),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Ux=class extends RI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Sm(e,t,n,a,r,"max")}};Ux.className="MaxPooling2D";re.registerClass(Ux);var Gx=class extends RI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),Sm(e,t,n,a,r,"avg")}};Gx.className="AveragePooling2D";re.registerClass(Gx);var MI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Jn(this.padding),this.inputSpec=[new Xt({ndim:5})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),a=Da(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Hx=class extends MI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),$I(e,t,n,a,r,"max")}};Hx.className="MaxPooling3D";re.registerClass(Hx);var jx=class extends MI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Jn(a),$I(e,t,n,a,r,"avg")}};jx.className="AveragePooling3D";re.registerClass(jx);var PI=class extends qe{constructor(e){super(e);this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},qx=class extends PI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return St(n,1)})}};qx.className="GlobalAveragePooling1D";re.registerClass(qx);var Kx=class extends PI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return Yn(n,1)})}};Kx.className="GlobalMaxPooling1D";re.registerClass(Kx);var OI=class extends qe{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Xx=class extends OI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?St(n,[1,2]):St(n,[2,3])})}};Xx.className="GlobalAveragePooling2D";re.registerClass(Xx);var Yx=class extends OI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?Yn(n,[1,2]):Yn(n,[2,3])})}};Yx.className="GlobalMaxPooling2D";re.registerClass(Yx);var LI=class extends qe{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=$a(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},Zx=class extends LI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=ht(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=ht(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return D(()=>(e=Me(e),AI((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};Zx.className="TimeDistributed";re.registerClass(Zx);function qW(e){Pi(sz,"BidirectionalMergeMode",e)}var KW="concat",Jx=class extends LI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=$a(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=$a(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?KW:e.mergeMode,qW(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):kn(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=EI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let c=n.map(u=>new Xt({shape:u.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),i.push(...c)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Fa;for(let l of s)if(l instanceof Fa!==o)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),c=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=c;let p=super.apply(l,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Mn(r,1));let i;return this.mergeMode==="concat"?i=Sb([a,r]):this.mergeMode==="sum"?i=Z(a,r):this.mergeMode==="ave"?i=L(.5,Z(a,r)):this.mergeMode==="mul"?i=L(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Oi(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Oi(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=$a(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};Jx.className="Bidirectional";re.registerClass(Jx);function wz(e){return new Kl(e)}function kz(e){return new sx(e)}function Iz(e){return new nx(e)}function Nz(e){return new ax(e)}function Tz(e){return new rx(e)}function Sz(e){return new ox(e)}function Cz(e){return new ix(e)}function _z(e){return new vm(e)}function Ez(e){return new up(e)}function Az(e){return new cx(e)}function Fz(e){return new xm(e)}function $z(e){return new px(e)}function Dz(e){return new dx(e)}function Rz(e){return new hx(e)}function Mz(e){return new mx(e)}function Pz(e){return new kx(e)}function Oz(e){return new vx(e)}function Lz(e){return new Tm(e)}function zz(e){return new xx(e)}function Bz(e){return new wx(e)}function Wz(e){return new Ix(e)}function Vz(e){return new Nx(e)}function Uz(e){return new Tx(e)}function Gz(e){return new Cx(e)}function Hz(e){return new _x(e)}function jz(e){return new Ax(e)}function qz(e){return new Dx(e)}function Kz(e){return new Fx(e)}function Xz(e){return new $x(e)}function Yz(e){return new Ex(e)}function Zz(e){return new Rx(e)}function Jz(e){return new Lx(e)}function Qz(e){return new zx(e)}function eB(e){return new Bx(e)}function Mb(e){return new Vx(e)}function tB(e){return Mb(e)}function nB(e){return Mb(e)}function Pb(e){return new Gx(e)}function aB(e){return Pb(e)}function rB(e){return Pb(e)}function Ob(e){return new jx(e)}function sB(e){return Ob(e)}function iB(e){return Ob(e)}function oB(e){return new qx(e)}function lB(e){return new Xx(e)}function Ek(e){return new Kx(e)}function Ak(e){return new Yx(e)}function Fk(e){return new Wx(e)}function $k(e){return new Ux(e)}function uB(e){return new Hx(e)}function cB(e){return new gx(e)}function pB(e){return new Im(e)}function dB(e){return new yx(e)}function hB(e){return new cp(e)}function mB(e){return new fx(e)}function fB(e){return new km(e)}function gB(e){return new bx(e)}function yB(e){return new Nm(e)}function bB(e){return new nr(e)}function xB(e){return new wm(e)}function vB(e){return new Jx(e)}function wB(e){return new Zx(e)}var kB=Ek,IB=Ak,NB=Fk,TB=$k;function SB(e){return new Mx(e)}function CB(e){return new Px(e)}function _B(e){return new Ox(e)}function EB(e){return new Sx(e)}var zI={};Oe(zI,{MAPE:()=>s4,MSE:()=>l4,binaryAccuracy:()=>XW,binaryCrossentropy:()=>YW,categoricalAccuracy:()=>JW,categoricalCrossentropy:()=>QW,cosineProximity:()=>n4,mape:()=>i4,meanAbsoluteError:()=>a4,meanAbsolutePercentageError:()=>r4,meanSquaredError:()=>o4,mse:()=>u4,precision:()=>e4,recall:()=>t4,sparseCategoricalAccuracy:()=>ZW});function XW(e,t){return Ub(e,t)}function YW(e,t){return qk(e,t)}function ZW(e,t){return Kk(e,t)}function JW(e,t){return Gb(e,t)}function QW(e,t){return Hb(e,t)}function e4(e,t){return jk(e,t)}function t4(e,t){return KB(e,t)}function n4(e,t){return Wb(e,t)}function a4(e,t){return cm(e,t)}function r4(e,t){return Yl(e,t)}function s4(e,t){return Yl(e,t)}function i4(e,t){return Yl(e,t)}function o4(e,t){return zi(e,t)}function l4(e,t){return zi(e,t)}function u4(e,t){return zi(e,t)}var BI={};Oe(BI,{modelFromJSON:()=>_W});var WI={};Oe(WI,{l1:()=>p4,l1l2:()=>c4,l2:()=>d4});function c4(e){return new op(e)}function p4(e){return PW(e)}function d4(e){return OW(e)}var VI=class extends Xl{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof kr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Cm(e,t){return et}var GI=class extends VI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Cm:this.mode==="max"?this.monitorFunc=UI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=UI:this.monitorFunc=Cm,this.monitorFunc===Cm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Cm?Infinity:-Infinity}async onEpochEnd(e,t){await rs(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function h4(e){return new GI(e)}var m4={earlyStopping:h4},Ra;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Ra||(Ra={}));var HI;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(HI||(HI={}));var Qx={};function f4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};Qx[e]=n}function jI(e){return Qx[e]}function g4(e){delete Qx[e]}function I(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return Nn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>Nn(p,n,a,r));let c=Nn(t.inputNames.slice(o)[0],n,a,r),u=c.dataSync();return s.type==="number"?u[0]:k.toNestedArray(c.shape,u)}let i=t.attrParams[e];return i&&i.value}function Nn(e,t,n,a){let[r,s]=Ln(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[_m(r,o)]);return i!==void 0?t[_m(r,i)][s]:void 0}function y4(e,t,n){return t[_m(e,n.currentContextId)]}function Ir(e,t){let[n,a]=Ln(e);return[_m(n,t&&t.currentContextId),a]}function _m(e,t){return t?`${e}-${t}`:e}function Ln(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function Em(e,t,n){let a=I("pad",e,t,n);if(a==="explicit"){a=I("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Nr(e){return e.kept?e:qr(e)}var qI={};Oe(qI,{json:()=>b4});var b4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],KI={};Oe(KI,{json:()=>x4});var x4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],XI={};Oe(XI,{json:()=>v4});var v4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],YI={};Oe(YI,{json:()=>w4});var w4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],ZI={};Oe(ZI,{json:()=>k4});var k4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],JI={};Oe(JI,{json:()=>I4});var I4=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],QI={};Oe(QI,{json:()=>N4});var N4=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],eN={};Oe(eN,{json:()=>T4});var T4=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],tN={};Oe(tN,{json:()=>S4});var S4=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],nN={};Oe(nN,{json:()=>C4});var C4=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],aN={};Oe(aN,{json:()=>_4});var _4=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],rN={};Oe(rN,{json:()=>E4});var E4=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],sN={};Oe(sN,{json:()=>A4});var A4=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],iN={};Oe(iN,{json:()=>F4});var F4=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],oN={};Oe(oN,{json:()=>$4});var $4=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],lN={};Oe(lN,{json:()=>D4});var D4=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],uN={};Oe(uN,{json:()=>R4});var R4=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],pN=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[qI,KI,XI,YI,ZI,JI,QI,aN,nN,eN,rN,sN,iN,oN,lN,uN,tN],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],c={},u={};t!=null&&(c=this.mapSignatureEntries(t.inputs),u=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=Ir(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(u).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(u).forEach(m=>{let[f]=Ir(m),g=i[f];g!=null&&(g.signatureKey=u[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{let[f]=Ir(m),g=i[f];g&&(g.signatureKey=c[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=jI(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=ev(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ev(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=lv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=lv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=nv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=ov(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ov(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=tv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=tv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=cv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=cv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=iv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=uv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=uv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=rv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=sv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=cN(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=cN(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((c,u)=>(c[u.name]=this.mapNode(u),u.op==="Const"&&a.push(c[u.name]),c),{}));let s=[],i=[];e.signature.inputArg.forEach(c=>{let[u]=Ir(c.name),p={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:av(c.type),type:"dtype"}},children:[]};p.signatureKey=c.name,s.push(p),r[u]=p}),Object.keys(r).forEach(c=>{let u=r[c];u.inputNames.forEach(p=>{let[d]=Ir(p);u.inputs.push(r[d]),r[d].children.push(u)})});let o=e.ret;e.signature.outputArg.forEach(c=>{let[u,p]=Ir(o[c.name]),d=r[u];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function M4(e){let t=ee().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function dN(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):M4(e);return t?n:n.toLowerCase()}function ev(e,t,n,a=!1){let r=e[t];return r!=null?dN(r.s,a):n}function tv(e,t,n){let a=e[t];return a?a.b:n}function nv(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function av(e){switch(typeof e=="string"&&(e=Ra[e]),e){case Ra.DT_FLOAT:return"float32";case Ra.DT_INT32:case Ra.DT_INT64:case Ra.DT_INT8:case Ra.DT_UINT8:return"int32";case Ra.DT_BOOL:return"bool";case Ra.DT_DOUBLE:return"float32";case Ra.DT_STRING:return"string";default:return null}}function cN(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function rv(e,t,n){let a=e[t];return a&&a.type?av(a.type):n}function sv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>av(r)):n}function hN(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function iv(e,t,n){let a=e[t];return a&&a.shape?hN(a.shape):n}function ov(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function lv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>dN(s,a)):n}function uv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>hN(r)):n}function cv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var P4=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return Nn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Nn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return nv(this.node.rawAttrs,e,t);if(n.s!=null)return ev(this.node.rawAttrs,e,t);if(n.b!=null)return tv(this.node.rawAttrs,e,t);if(n.shape!=null)return iv(this.node.rawAttrs,e,t);if(n.type!=null)return rv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return ov(this.node.rawAttrs,e,t);if(n.list.s!=null)return lv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return uv(this.node.rawAttrs,e,t);if(n.list.b!=null)return cv(this.node.rawAttrs,e,t);if(n.list.type!=null)return sv(this.node.rawAttrs,e,t)}return t}},O4=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[Z(I("a",e,t,n),I("b",e,t,n))];case"AddN":return[n1(I("tensors",e,t,n))];case"FloorMod":case"Mod":return[Jy(I("a",e,t,n),I("b",e,t,n))];case"Mul":return[L(I("a",e,t,n),I("b",e,t,n))];case"RealDiv":case"Div":return[ve(I("a",e,t,n),I("b",e,t,n))];case"DivNoNan":return[Vy(I("a",e,t,n),I("b",e,t,n))];case"FloorDiv":return[ch(I("a",e,t,n),I("b",e,t,n))];case"Sub":return[fe(I("a",e,t,n),I("b",e,t,n))];case"Minimum":return[Bl(I("a",e,t,n),I("b",e,t,n))];case"Maximum":return[Xa(I("a",e,t,n),I("b",e,t,n))];case"Pow":return[yr(I("a",e,t,n),I("b",e,t,n))];case"SquaredDifference":return[Dh(I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},L4=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lt(I("x",e,t,n))];case"Acos":return[Sy(I("x",e,t,n))];case"Acosh":return[Cy(I("x",e,t,n))];case"Asin":return[Ey(I("x",e,t,n))];case"Asinh":return[Ay(I("x",e,t,n))];case"Atan":return[Fy(I("x",e,t,n))];case"Atan2":return[$y(I("x",e,t,n),I("y",e,t,n))];case"Atanh":return[Dy(I("x",e,t,n))];case"Ceil":return[Oy(I("x",e,t,n))];case"Complex":return[Gr(I("real",e,t,n),I("imag",e,t,n))];case"Cos":return[zc(I("x",e,t,n))];case"Cosh":return[fh(I("x",e,t,n))];case"Elu":return[Pl(I("x",e,t,n))];case"Erf":return[Uy(I("x",e,t,n))];case"Exp":return[pn(I("x",e,t,n))];case"Expm1":return[Gy(I("x",e,t,n))];case"Floor":return[Ol(I("x",e,t,n))];case"Log":return[Dn(I("x",e,t,n))];case"Log1p":return[xh(I("x",e,t,n))];case"Imag":return[yh(I("x",e,t,n))];case"Neg":return[Tt(I("x",e,t,n))];case"Reciprocal":return[tb(I("x",e,t,n))];case"Real":return[Gc(I("x",e,t,n))];case"Relu":return[Ye(I("x",e,t,n))];case"Round":return[nb(I("x",e,t,n))];case"Selu":return[_h(I("x",e,t,n))];case"Sigmoid":return[ca(I("x",e,t,n))];case"Sin":return[Eh(I("x",e,t,n))];case"Sign":return[ab(I("x",e,t,n))];case"Sinh":return[Ah(I("x",e,t,n))];case"Softplus":return[Ll(I("x",e,t,n))];case"Sqrt":return[en(I("x",e,t,n))];case"Square":return[lt(I("x",e,t,n))];case"Tanh":return[Ml(I("x",e,t,n))];case"Tan":return[ib(I("x",e,t,n))];case"ClipByValue":return[qt(I("x",e,t,n),I("clipValueMin",e,t,n),I("clipValueMax",e,t,n))];case"Relu6":return[Sh(I("x",e,t,n))];case"Rsqrt":return[Ch(Nn(e.inputNames[0],t,n))];case"Prod":return[Nh(I("x",e,t,n),I("axes",e,t,n))];case"LeakyRelu":return[Bc(I("x",e,t,n),I("alpha",e,t,n))];case"Prelu":return[Uc(I("x",e,t,n),I("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ga(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){k.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function mN(e){return!(typeof e=="number"||e.some(t=>t<0))}function hp(e,t,n){let a=pv(e,n),r=!mN(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=pv(s.shape,a)}),!mN(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function pv(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var z4=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=de(0),jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ga(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,dt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];D(()=>{t=j(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);fa(t,r.shape,"TensorList shape mismatch: "),jt(r)}),this.idTensor=de(0),this.maxNumElements=a,jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new hp([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);return fa(e,this.elementShape,"TensorList shape mismatch: "),D(()=>{let a=this.tensors.map(r=>j(r,e));return $t(a,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=this.tensors.pop();return fa(n.shape,e,"TensorList shape mismatch: "),j(n,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(fa(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return fa(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);fa(this.elementShape,t.shape,"TensorList shape mismatch: "),jt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return fa(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?qn([],[0].concat(this.elementShape)):D(()=>{let a=e.map(r=>j(this.tensors[r],n));return $t(a,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return fa(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?qn([],[0].concat(this.elementShape)):D(()=>{let n=this.tensors.map(a=>j(a,t));return Qe(n,0)})}};function M4(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);fa(r,t,"TensorList shape mismatch: ");let s=dt(e);return new hp(s,t,a)}function P4(e,t,n){return new hp([],e,t,n)}function O4(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new hp([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function L4(e,t,n){let a=0,r=t.map(l=>(a+=l,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];D(()=>{t=H(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ga(t,r.shape,"TensorList shape mismatch: "),jt(r)}),this.idTensor=de(0),this.maxNumElements=a,jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new mp([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);ga(e,this.elementShape,"TensorList shape mismatch: ");let a=hp(this.elementShape,this.tensors,e);return D(()=>{let r=this.tensors.map(s=>H(s,a));return $t(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=hp(this.elementShape,this.tensors,e),a=this.tensors.pop();return ga(a.shape,e,"TensorList shape mismatch: "),H(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ga(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);ga(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=hp(this.elementShape,this.tensors,t);return H(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ga(this.elementShape,t.shape,"TensorList shape mismatch: "),jt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);ga(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=hp(this.elementShape,this.tensors,n);return e.length===0?qn([],[0].concat(a)):D(()=>{let r=e.map(s=>H(this.tensors[s],a));return $t(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);ga(this.elementShape,t,"TensorList shape mismatch: ");let n=hp(this.elementShape,this.tensors,t);return this.size()===0?qn([],[0].concat(n)):D(()=>{let a=this.tensors.map(r=>H(r,n));return Qe(a,0)})}};function B4(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ga(r,t,"TensorList shape mismatch: ");let s=dt(e);return new mp(s,t,a)}function W4(e,t,n){return new mp([],e,t,n)}function V4(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new mp([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function U4(e,t,n){let a=0,r=t.map(u=>(a+=u,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=a===0?0:e.size/a,i=D(()=>{let l=[];e=j(e,[1,a,s]);for(let c=0;c{switch(e.op){case"If":case"StatelessIf":{let a=I("thenBranch",e,t,n),r=I("elseBranch",e,t,n),s=I("cond",e,t,n),i=I("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=I("body",e,t,n),r=I("cond",e,t,n),s=I("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(u=>u.id),l=await i[0].data();i.forEach(u=>{!u.kept&&o.indexOf(u.id)===-1&&u.dispose()});let c=s;for(;l[0];){let u=c;c=await n.functionMap[a].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);let p=c.map(h=>h.id);u.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return c}case"LoopCond":{let a=I("pred",e,t,n);return[Ir(a)]}case"Switch":{let a=I("pred",e,t,n),r=I("data",e,t,n);return r.kept||(r=Ir(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Nn(r,t,n)!==void 0);if(a){let r=Nn(a,t,n);return[Ir(r)]}return}case"Enter":{let a=I("frameName",e,t,n),r=I("tensor",e,t,n);return n.enterFrame(a),[Ir(r)]}case"Exit":{let a=I("tensor",e,t,n);return n.exitFrame(),[Ir(a)]}case"NextIteration":{let a=I("tensor",e,t,n);return n.nextIteration(),[Ir(a)]}case"TensorArrayV3":{let a=I("size",e,t,n),r=I("dtype",e,t,n),s=I("elementShape",e,t,n),i=I("dynamicSize",e,t,n),o=I("clearAfterRead",e,t,n),l=I("identicalElementShapes",e,t,n),c=I("name",e,t,n),u=new R4(c,r,a,s,l,i,o);return n.addTensorArray(u),[u.idTensor,de(1)]}case"TensorArrayWriteV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=I("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=I("tensorArrayId",e,t,n),r=I("tensor",e,t,n),s=I("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[de(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=I("indices",e,t,n),r=I("tensor",e,t,n),s=I("elementShape",e,t,n),i=I("numElements",e,t,n),o=O4(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=I("elementShape",e,t,n),r=I("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=I(s,e,t,n),o=P4(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=I("tensorListId",e,t,n),r=I("indices",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=I("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=M4(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=I("tensorListId",e,t,n),r=n.getTensorList(a.id),s=I("dtype",e,t,n),i=I("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=I("tensorListId",e,t,n),r=I("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("lengths",e,t,n),i=L4(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function uN(e,t,n){let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=I("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let c=I("strides",e,t,n),u=Sm(e,t,n),p=I("dataFormat",e,t,n).toUpperCase(),d=I("dilations",e,t,n),[h,m]=I("args",e,t,n),f=I("leakyreluAlpha",e,t,n);return{stride:c,pad:u,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var B4=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=I("stride",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilation",e,t,n);return[ch(I("x",e,t,n),I("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=I("strides",e,t,n),r=Sm(e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[At(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=uN(e,t,n);return[es.conv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=uN(e,t,n);return[es.depthwiseConv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=I("outputShape",e,t,n),r=I("strides",e,t,n),s=Sm(e,t,n);return[ph(I("x",e,t,n),I("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=I("strides",e,t,n),r=Sm(e,t,n),s=I("dilations",e,t,n),i=I("dataFormat",e,t,n).toUpperCase();return[Yr(I("input",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[Py(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Xn(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Ft(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n),i=I("includeBatchInIndex",e,t,n),{result:o,indexes:l}=k1(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Dy(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[qy(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dilations",e,t,n),i=a[1],o=a[2],l=s[1],c=s[2];return[Ly(I("x",e,t,n),I("filter",e,t,n),[i,o],r,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},W4=(e,t,n)=>{switch(e.op){case"Fill":{let a=I("shape",e,t,n),r=I("dtype",e,t,n),s=I("value",e,t,n);return[wn(a,s,r)]}case"LinSpace":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("num",e,t,n);return[f1(a,r,s)]}case"Multinomial":{let a=I("logits",e,t,n),r=I("numSamples",e,t,n),s=I("seed",e,t,n);return[I1(a,r,s)]}case"OneHot":{let a=I("indices",e,t,n),r=I("depth",e,t,n),s=I("onValue",e,t,n),i=I("offValue",e,t,n);return[$l(a,r,s,i)]}case"Ones":return[Xa(I("shape",e,t,n),I("dtype",e,t,n))];case"OnesLike":return[Dn(I("x",e,t,n))];case"RandomUniform":return[Wl(I("shape",e,t,n),I("minval",e,t,n),I("maxval",e,t,n),I("dtype",e,t,n))];case"Range":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("step",e,t,n);return[kh(a,r,s,I("dtype",e,t,n))]}case"TruncatedNormal":{let a=I("shape",e,t,n),r=I("mean",e,t,n),s=I("stdDev",e,t,n),i=I("seed",e,t,n);return[Fh(a,r,s,I("dtype",e,t,n),i)]}case"Zeros":return[vt(I("shape",e,t,n),I("dtype",e,t,n))];case"ZerosLike":return[Ge(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function lv(e,t,n){let a=I("boxes",e,t,n),r=I("scores",e,t,n),s=I("maxOutputSize",e,t,n),i=I("iouThreshold",e,t,n),o=I("scoreThreshold",e,t,n),l=I("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var V4=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=lv(e,t,n),c=await Ya.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=lv(e,t,n),l=I("padToMaxOutputSize",e,t,n),c=await Ya.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=lv(e,t,n);return[await Ya.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ce(I("condition",e,t,n),"bool"),r=[await ib(a)];return a.dispose(),r}case"ListDiff":return S1(I("x",e,t,n),I("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},U4=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=I("x",e,t,n),r=I("k",e,t,n),s=I("sorted",e,t,n),i=rb(a,r,s);return[i.values,i.indices]}case"Unique":{let a=I("x",e,t,n),r=$h(a);return[r.values,r.indices]}case"UniqueV2":{let a=I("x",e,t,n),r=I("axis",e,t,n),s=$h(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},G4=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=I("default",e,t,n);return[Nn(e.name,t,n)||a];case"Placeholder":return[Nn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=I("x",e,t,n);return[Ir(c)]}case"IdentityN":return I("x",e,t,n).map(c=>Ir(c));case"Snapshot":let r=I("x",e,t,n);return[Ir(r)];case"Shape":return[tt(I("x",e,t,n).shape,"int32")];case"ShapeN":return I("x",e,t,n).map(c=>tt(c.shape));case"Size":return[de(I("x",e,t,n).size,"int32")];case"Rank":return[de(I("x",e,t,n).rank,"int32")];case"NoOp":return[de(1)];case"Print":let s=I("x",e,t,n),i=I("data",e,t,n),o=I("message",e,t,n),l=I("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let c=0;ce.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),D(()=>{let a=dt(t),r=n.length,s=a.length;k.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=I("keyDType",e,t,n),s=I("valueDType",e,t,n),i=new H4(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},q4=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Ya.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Ya.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=I("image",e,t,n),r=I("boxes",e,t,n),s=I("boxInd",e,t,n),i=I("cropSize",e,t,n),o=I("method",e,t,n),l=I("extrapolationValue",e,t,n);return[Ya.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},K4=(e,t,n)=>{switch(e.op){case"Equal":return[Zr(I("a",e,t,n),I("b",e,t,n))];case"NotEqual":return[_i(I("a",e,t,n),I("b",e,t,n))];case"Greater":return[ca(I("a",e,t,n),I("b",e,t,n))];case"GreaterEqual":return[Jr(I("a",e,t,n),I("b",e,t,n))];case"Less":return[fh(I("a",e,t,n),I("b",e,t,n))];case"LessEqual":return[Si(I("a",e,t,n),I("b",e,t,n))];case"LogicalAnd":return[pa(I("a",e,t,n),I("b",e,t,n))];case"LogicalNot":return[Wc(I("a",e,t,n))];case"LogicalOr":return[xh(I("a",e,t,n),I("b",e,t,n))];case"Select":case"SelectV2":return[vn(I("condition",e,t,n),I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},X4=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(I("a",e,t,n),I("b",e,t,n),I("transposeA",e,t,n),I("transposeB",e,t,n))];case"Transpose":return[Ue(I("x",e,t,n),I("perm",e,t,n))];case"_FusedMatMul":let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=I("numArgs",e,t,n),l=I("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,u]=I("args",e,t,n);return[es.matMul({a:I("a",e,t,n),b:I("b",e,t,n),transposeA:I("transposeA",e,t,n),transposeB:I("transposeB",e,t,n),bias:c,activation:r,preluActivationWeights:u,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Y4=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[fr(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"FusedBatchNormV3":return[fr(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"LRN":return[Uy(I("x",e,t,n),I("radius",e,t,n),I("bias",e,t,n),I("alpha",e,t,n),I("beta",e,t,n))];case"Softmax":return[Na(I("x",e,t,n))];case"LogSoftmax":return[bh(I("x",e,t,n))];case"SparseToDense":return[ob(I("sparseIndices",e,t,n),I("outputShape",e,t,n),I("sparseValues",e,t,n),I("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},Z4=(e,t,n)=>{switch(e.op){case"Max":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Yn(I("x",e,t,n),i,o)]}case"Mean":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[St(I("x",e,t,n),i,o)]}case"Min":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[zl(I("x",e,t,n),i,o)]}case"Sum":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Te(I("x",e,t,n),i,o)]}case"All":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[lh(I("x",e,t,n),i,o)]}case"Any":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Rc(I("x",e,t,n),i,o)]}case"ArgMax":{let i=I("axis",e,t,n);return[Mc(I("x",e,t,n),i)]}case"ArgMin":{let i=I("axis",e,t,n);return[Ty(I("x",e,t,n),i)]}case"Prod":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[wh(I("x",e,t,n),i,o)]}case"Cumsum":{let i=I("axis",e,t,n),o=I("exclusive",e,t,n),l=I("reverse",e,t,n);return[hh(I("x",e,t,n),i,o,l)]}case"Bincount":let a=I("x",e,t,n),r=I("weights",e,t,n),s=I("size",e,t,n);return[r1(a,r,s)];case"DenseBincount":{let i=I("x",e,t,n),o=I("weights",e,t,n),l=I("size",e,t,n),c=I("binaryOutput",e,t,n);return[c1(i,o,l,c)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},J4=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=I("n",e,t,n),r=I("axis",e,t,n),s=I("tensors",e,t,n);return s=s.slice(0,a),[Qe(s,r)]}case"Gather":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[Ti(a,ce(r,"int32"),0)]}case"GatherV2":{let a=I("axis",e,t,n),r=I("batchDims",e,t,n),s=I("x",e,t,n),i=I("indices",e,t,n);return[Ti(s,ce(i,"int32"),a,r)]}case"Reverse":{let a=I("dims",e,t,n),r=[];for(let i=0;i{let a=I("axis",e,t,n),r=I("tensors",e,t,n),s=r[0].shape,i=Qr(r[0]).shape,o=r.map(l=>{let c=k.arraysEqual(l.shape,s);if(!c&&!k.arraysEqual(Qr(l).shape,i))throw new Error("the input tensors shape does not match");return c?l:j(l,s)});return[$t(o,a)]});case"Unpack":{let a=I("axis",e,t,n),r=I("tensor",e,t,n);return dt(r,a)}case"Tile":{let a=I("reps",e,t,n);return[ja(I("x",e,t,n),a)]}case"Split":case"SplitV":{let a=I("axis",e,t,n),r=I("numOrSizeSplits",e,t,n),s=I("x",e,t,n);return Mn(s,r,a)}case"ScatterNd":{let a=I("indices",e,t,n),r=I("values",e,t,n),s=I("shape",e,t,n);return[A1(a,r,s)]}case"GatherNd":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[F1(a,r)]}case"SparseToDense":{let a=I("sparseIndices",e,t,n),r=I("outputShape",e,t,n),s=I("sparseValues",e,t,n),i=I("defaultValue",e,t,n);return[ob(a,s,r,s.dtype===i.dtype?i:ce(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Q4=(e,t,n)=>{switch(e.op){case"FFT":return[jc(I("x",e,t,n))];case"IFFT":return[Ul(I("x",e,t,n))];case"RFFT":return[qc(I("x",e,t,n))];case"IRFFT":return[Eh(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},eV=(e,t,n)=>{switch(e.op){case"Cast":return[ce(I("x",e,t,n),I("dtype",e,t,n))];case"ExpandDims":{let a=I("axis",e,t,n);return[Fn(I("x",e,t,n),a)]}case"Squeeze":{let a=I("axis",e,t,n);return[Qr(I("x",e,t,n),a)]}case"Reshape":return[j(I("x",e,t,n),I("shape",e,t,n))];case"MirrorPad":return[Ky(I("x",e,t,n),I("padding",e,t,n),I("mode",e,t,n))];case"PadV2":case"Pad":return[Zn(I("x",e,t,n),I("padding",e,t,n),I("constantValue",e,t,n))];case"SpaceToBatchND":{let a=I("blockShape",e,t,n),r=I("paddings",e,t,n);return[Vc(I("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=I("blockShape",e,t,n),r=I("crops",e,t,n);return[Oc(I("x",e,t,n),a,r)]}case"DepthToSpace":{let a=I("blockSize",e,t,n),r=I("dataFormat",e,t,n).toUpperCase();return[Oy(I("x",e,t,n),a,r)]}case"BroadcastTo":return[Lc(I("x",e,t,n),I("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function cN(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return D(()=>F4(s,i,o));case"basic_math":return D(()=>$4(s,i,o));case"control":return z4(s,i,o);case"convolution":return D(()=>B4(s,i,o));case"creation":return D(()=>W4(s,i,o));case"dynamic":return V4(s,i,o);case"evaluation":return D(()=>U4(s,i,o));case"image":return D(()=>q4(s,i,o));case"graph":return D(()=>G4(s,i,o));case"logical":return D(()=>K4(s,i,o));case"matrices":return D(()=>X4(s,i,o));case"normalization":return D(()=>Y4(s,i,o));case"reduction":return D(()=>Z4(s,i,o));case"slice_join":return D(()=>J4(s,i,o));case"spectral":return D(()=>Q4(s,i,o));case"transformation":return D(()=>eV(s,i,o));case"hash_table":return j4(s,i,o,a);case"custom":let l=WI(s.op);if(l&&l.customExecutor)return l.customExecutor(new A4(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return k.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var pN=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function hN(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,c=Object.keys(e).map(d=>On(d)[0]),u=[];a!=null&&(u=a.map(d=>On(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((dN(d)||tV(d)||nV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&c.indexOf(d.name)===-1&&u.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function aV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(u=>On(u)[0]).map(u=>e.nodes[u]),o=e.initNodes;i.forEach(u=>{a.has(u.name)&&s.push(u)}),e.weights.forEach(u=>{a.has(u.name)&&s.push(u)}),o!=null&&o.forEach(u=>{a.has(u.name)&&s.push(u)});let l=new Set,c=[];for(;s.length>0;){let u=s.pop();l.add(u.name),t[u.name]||c.push(u),u.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return c}var rV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],sV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],iV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function dN(e){return rV.indexOf(e.op)>=0}function tV(e){return sV.indexOf(e.op)>=0}function nV(e){return iV.indexOf(e.op)>=0}var uv=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new uv(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=hN(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return aV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(u=>this.graph.nodes[On(u)[0]]),r=t.map(u=>On(u)[0]),s=r.map(u=>this.graph.nodes[u]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},c={};return D(()=>{let u=new pN(this.weightMap,l,c,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=On(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mNn(m,p,u))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=p4(o.name,n,a);l!=null&&l.forEach(c=>{if(c&&!r.has(c.id)){let u=i[c.id];u===1?(c.dispose(),delete i[c.id]):u!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new pN(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>Nn(p,i,s)),l=o.map(p=>p.id),c=Object.keys(e).map(p=>e[p].id),u=new Set([...l,...c,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!u.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(u),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[On(b)[0]]),i=n.map(b=>On(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:u,syncInputs:p}=hN(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[v,x]=On(b),N=[];N[x]=e[b],h[v]=N});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}u==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!dN(b)&&!Nn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw u!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let c=[];for(;t.length>0;){let u=t.pop();n.currentContext=u.contexts;let p="";if(u.node.op==="Enter"&&I("isConstant",u.node,a,n)&&([p]=kr(u.node.name,n)),a[u.node.name]==null){let d=cN(u.node,a,n,this._resourceManager);p||([p]=kr(u.node.name,n));let h=n.currentContext;k.isPromise(d)?c.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l))}else this.processChildNodes(u.node,t,n,a,r,l)}return c}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=kr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Nn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Nn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=On(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);k.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&k.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=On(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=On(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},oV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},lV="?tfjs-format=file",uV="model.json",mN=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new oV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ht.browserHTTPRequest(e,this.loadOptions);else{let t=Ht.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ht.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=Ht.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new uv(iN.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=iN.Instance.transformGraph(e.modelInitializer);this.initializer=new uv(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=Ht.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ae)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function cV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${uV}${lV}`);let n=new mN(e,t);return await n.load(),n}var fN="3.0.0",gN={};Oe(gN,{CSVDataset:()=>bN,Dataset:()=>Ql,FileDataSource:()=>xN,TextLineDataset:()=>yN,URLDataSource:()=>vN,array:()=>pV,csv:()=>hV,func:()=>mV,generator:()=>fV,microphone:()=>yV,version_data:()=>wN,webcam:()=>gV,zip:()=>dV});var bV=Io(dd()),xV=Io(dd());function vV(e,t){return Cm(e,t)}function Cm(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(eu(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Cm(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function wV(e,t=IN){return kN(e,t)}function kN(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(eu(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(c=>c[i]),l=kN(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function IN(e){return e===null?null:eu(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function NN(e,t){let n=new Map;Cm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(k.isPromise(r)){let s=await r;n.set(a,s)}}return Cm(e,t,n)}function eu(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ae))}function IV(e){return e==null||kV(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ae||k.isTypedArray(e)}function kV(e){return e===null||typeof e!="object"&&typeof e!="function"}function TV(e){return vV(e,NV)}function NV(e){return e instanceof Ae?{value:e.clone(),recurse:!1}:eu(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var TN=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},cv=class extends TN{constructor(){super(cv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new RV(this,e,t)}columnMajorBatch(e,t=!0,n=IN){return this.rowMajorBatch(e,t).map(a=>wV(a,n))}concatenate(e,t){return new CN(SN([this,e]),t)}take(e){return e<0||e==null?this:new DV(this,e)}skip(e){return e<0||e==null?this:new $V(this,e)}prefetch(e){return new EN(this,e)}shuffle(e,t){return new zV(this,e,t)}serial(){return new FV(this)}},SV=class extends Yt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:TV(e),done:!1}}},CV=class extends Yt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},FV=class extends Yt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},$V=class extends Yt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},RV=class extends Yt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},MV=class extends Yt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Fe(e.value)}}},PV=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ia.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ia.getTensorsInContainer(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},OV=class extends Yt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},_N=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ia.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ia.getTensorsInContainer(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},dv=class extends Yt{constructor(){super();this.outputQueue=new cv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},LV=class extends dv{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ia.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ia.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ia.isTensorInList(r,a)||r.dispose();return!0}},CN=class extends Yt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ls;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ls||(ls={}));var EV=class extends Yt{constructor(e,t=ls.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Yt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await NN(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ls.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ls.SHORTEST:return{value:null,done:!0};case ls.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},EN=class extends Yt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new TN(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},zV=class extends EN{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=xV.alea(n||k.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Ql=class{constructor(){this.size=null}batch(e,t=!0){let n=this;k.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Ln(async()=>(await n.iterator()).columnMajorBatch(e,t,BV),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Ln(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,Ln(async()=>(await t.iterator()).filter(a=>D(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Ln(async()=>(await t.iterator()).map(n=>D(()=>e(n))),this.size)}mapAsync(e){let t=this;return Ln(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Ln(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=Infinity:n=null,Ln(async()=>{let a=pv(async()=>({value:await t.iterator(),done:!1}));return _V(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=bV.alea(t||k.now().toString());return Ln(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Ln(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Ql.MAX_BUFFER_SIZE=1e4;function Ln(e,t=null){return new class extends Ql{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function pV(e){return Ln(async()=>SN(e),e.length)}function dV(e){if(!eu(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await NN(e,a=>{if(a instanceof Ql)return{value:a.iterator(),recurse:!1};if(eu(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return AV(n,ls.SHORTEST)},t)}function BV(e){if(e===null)return null;let t=e[0];return IV(t)?{value:WV(e),recurse:!1}:{value:null,recurse:!0}}function WV(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ae?$t(e):qn(e)}var yN=class extends Ql{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},_m='"',mp=Symbol("out"),AN=Symbol("field"),Em=Symbol("quote"),hv=Symbol("quoteafterquote"),FN=Symbol("quoteinquote"),bN=class extends Ql{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new yN(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(k.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&k.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(k.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ee().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new $N(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(k.sizeFromShape(t));return n.set(e,n.length-e.length),qn(n,t)}},DN=class extends Yt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tt([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Ta([s,r,o,i],[1,4])}else this.cropBox=Ta([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ee().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new DN(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&k.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=ki.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return D(()=>{let t=Fn(ce(e,"float32"),0),n;n=Ya.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return j(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},RN=class{},MN=class extends Yt{split(e){return new VV(this,e)}},VV=class extends MN{constructor(e,t){super();this.upstream=e,this.impl=new UV(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},UV=class extends dv{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},HV=class extends Yt{decodeUTF8(){return new GV(this)}},GV=class extends MN{constructor(e){super();this.upstream=e,this.impl=new jV(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},jV=class extends dv{constructor(e){super();if(this.upstream=e,ee().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=mE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return ee().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},PN=class extends HV{constructor(e,t={}){super();this.file=e,this.options=t,k.assert(e instanceof Uint8Array||(ee().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function KV(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=qV(e));let r=await k.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new PN(s,t)}else throw new Error(r.statusText)}var qV=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function ON(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var xN=class extends RN{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(ON(this.input)&&ee().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new PN(this.input,this.options)}},vN=class extends RN{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return ON(this.url)?new xN(this.url,this.fileOptions).iterator():KV(this.url,this.fileOptions)}};function hV(e,t={}){return new bN(new vN(e),t)}function mV(e){let t=pv(e);return Ln(async()=>t)}function fV(e){return Ln(async()=>{let t=await e();return pv(()=>t.next())})}async function gV(e,t){return DN.create(e,t)}async function yV(e){return $N.create(e)}var wN="3.0.0";function we(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var XV=Za.whereImpl,YV=class extends sc{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new hd(this,Kr())}write(e,t,n){this.firstUse&&(this.firstUse=!1,ee().get("IS_NODE")&&_.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=pv(s,n),o=a===0?0:e.size/a,l=D(()=>{let u=[];e=H(e,[1,a,o]);for(let p=0;p{switch(e.op){case"If":case"StatelessIf":{let a=I("thenBranch",e,t,n),r=I("elseBranch",e,t,n),s=I("cond",e,t,n),i=I("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=I("body",e,t,n),r=I("cond",e,t,n),s=I("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(u=>u.id),l=await i[0].data();i.forEach(u=>{!u.kept&&o.indexOf(u.id)===-1&&u.dispose()});let c=s;for(;l[0];){let u=c;c=await n.functionMap[a].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);let p=c.map(h=>h.id);u.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return c}case"LoopCond":{let a=I("pred",e,t,n);return[Nr(a)]}case"Switch":{let a=I("pred",e,t,n),r=I("data",e,t,n);return r.kept||(r=Nr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Nn(r,t,n)!==void 0);if(a){let r=Nn(a,t,n);return[Nr(r)]}return}case"Enter":{let a=I("frameName",e,t,n),r=I("tensor",e,t,n);return n.enterFrame(a),[Nr(r)]}case"Exit":{let a=I("tensor",e,t,n);return n.exitFrame(),[Nr(a)]}case"NextIteration":{let a=I("tensor",e,t,n);return n.nextIteration(),[Nr(a)]}case"TensorArrayV3":{let a=I("size",e,t,n),r=I("dtype",e,t,n),s=I("elementShape",e,t,n),i=I("dynamicSize",e,t,n),o=I("clearAfterRead",e,t,n),l=I("identicalElementShapes",e,t,n),c=I("name",e,t,n),u=new z4(c,r,a,s,l,i,o);return n.addTensorArray(u),[u.idTensor,de(1)]}case"TensorArrayWriteV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=I("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=I("tensorArrayId",e,t,n),r=I("tensor",e,t,n),s=I("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[de(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=I("indices",e,t,n),r=I("tensor",e,t,n),s=I("elementShape",e,t,n),i=I("numElements",e,t,n),o=V4(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=I("elementShape",e,t,n),r=I("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=I(s,e,t,n),o=W4(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=I("tensorListId",e,t,n),r=I("indices",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=I("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=B4(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=I("tensorListId",e,t,n),r=n.getTensorList(a.id),s=I("dtype",e,t,n),i=I("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=I("tensorListId",e,t,n),r=I("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("lengths",e,t,n),i=U4(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function fN(e,t,n){let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=I("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let c=I("strides",e,t,n),u=Em(e,t,n),p=I("dataFormat",e,t,n).toUpperCase(),d=I("dilations",e,t,n),[h,m]=I("args",e,t,n),f=I("leakyreluAlpha",e,t,n);return{stride:c,pad:u,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var H4=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=I("stride",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilation",e,t,n);return[hh(I("x",e,t,n),I("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=I("strides",e,t,n),r=Em(e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[At(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=fN(e,t,n);return[es.conv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=fN(e,t,n);return[es.depthwiseConv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=I("outputShape",e,t,n),r=I("strides",e,t,n),s=Em(e,t,n);return[mh(I("x",e,t,n),I("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=I("strides",e,t,n),r=Em(e,t,n),s=I("dilations",e,t,n),i=I("dataFormat",e,t,n).toUpperCase();return[Yr(I("input",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[zy(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Xn(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Ft(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n),i=I("includeBatchInIndex",e,t,n),{result:o,indexes:l}=C1(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Py(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Yy(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dilations",e,t,n),i=a[1],o=a[2],l=s[1],c=s[2];return[Wy(I("x",e,t,n),I("filter",e,t,n),[i,o],r,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},j4=(e,t,n)=>{switch(e.op){case"Fill":{let a=I("shape",e,t,n),r=I("dtype",e,t,n),s=I("value",e,t,n);return[wn(a,s,r)]}case"LinSpace":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("num",e,t,n);return[v1(a,r,s)]}case"Multinomial":{let a=I("logits",e,t,n),r=I("numSamples",e,t,n),s=I("seed",e,t,n);return[_1(a,r,s)]}case"OneHot":{let a=I("indices",e,t,n),r=I("depth",e,t,n),s=I("onValue",e,t,n),i=I("offValue",e,t,n);return[$l(a,r,s,i)]}case"Ones":return[Ya(I("shape",e,t,n),I("dtype",e,t,n))];case"OnesLike":return[Rn(I("x",e,t,n))];case"RandomUniform":return[Wl(I("shape",e,t,n),I("minval",e,t,n),I("maxval",e,t,n),I("dtype",e,t,n))];case"Range":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("step",e,t,n);return[Th(a,r,s,I("dtype",e,t,n))]}case"TruncatedNormal":{let a=I("shape",e,t,n),r=I("mean",e,t,n),s=I("stdDev",e,t,n),i=I("seed",e,t,n);return[Rh(a,r,s,I("dtype",e,t,n),i)]}case"Zeros":return[vt(I("shape",e,t,n),I("dtype",e,t,n))];case"ZerosLike":return[Ge(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function dv(e,t,n){let a=I("boxes",e,t,n),r=I("scores",e,t,n),s=I("maxOutputSize",e,t,n),i=I("iouThreshold",e,t,n),o=I("scoreThreshold",e,t,n),l=I("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var q4=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=dv(e,t,n),c=await Za.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=dv(e,t,n),l=I("padToMaxOutputSize",e,t,n),c=await Za.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=dv(e,t,n);return[await Za.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ce(I("condition",e,t,n),"bool"),r=[await ub(a)];return a.dispose(),r}case"ListDiff":return F1(I("x",e,t,n),I("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},K4=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=I("x",e,t,n),r=I("k",e,t,n),s=I("sorted",e,t,n),i=ob(a,r,s);return[i.values,i.indices]}case"Unique":{let a=I("x",e,t,n),r=Mh(a);return[r.values,r.indices]}case"UniqueV2":{let a=I("x",e,t,n),r=I("axis",e,t,n),s=Mh(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},X4=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=I("default",e,t,n);return[Nn(e.name,t,n)||a];case"Placeholder":return[Nn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=I("x",e,t,n);return[Nr(c)]}case"IdentityN":return I("x",e,t,n).map(c=>Nr(c));case"Snapshot":let r=I("x",e,t,n);return[Nr(r)];case"Shape":return[tt(I("x",e,t,n).shape,"int32")];case"ShapeN":return I("x",e,t,n).map(c=>tt(c.shape));case"Size":return[de(I("x",e,t,n).size,"int32")];case"Rank":return[de(I("x",e,t,n).rank,"int32")];case"NoOp":return[de(1)];case"Print":let s=I("x",e,t,n),i=I("data",e,t,n),o=I("message",e,t,n),l=I("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let c=0;ce.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),D(()=>{let a=dt(t),r=n.length,s=a.length;k.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=I("keyDType",e,t,n),s=I("valueDType",e,t,n),i=new Y4(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},J4=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Za.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Za.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=I("image",e,t,n),r=I("boxes",e,t,n),s=I("boxInd",e,t,n),i=I("cropSize",e,t,n),o=I("method",e,t,n),l=I("extrapolationValue",e,t,n);return[Za.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},Q4=(e,t,n)=>{switch(e.op){case"Equal":return[Zr(I("a",e,t,n),I("b",e,t,n))];case"NotEqual":return[Ai(I("a",e,t,n),I("b",e,t,n))];case"Greater":return[pa(I("a",e,t,n),I("b",e,t,n))];case"GreaterEqual":return[Jr(I("a",e,t,n),I("b",e,t,n))];case"Less":return[bh(I("a",e,t,n),I("b",e,t,n))];case"LessEqual":return[_i(I("a",e,t,n),I("b",e,t,n))];case"LogicalAnd":return[da(I("a",e,t,n),I("b",e,t,n))];case"LogicalNot":return[Wc(I("a",e,t,n))];case"LogicalOr":return[kh(I("a",e,t,n),I("b",e,t,n))];case"Select":case"SelectV2":return[vn(I("condition",e,t,n),I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},eV=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(I("a",e,t,n),I("b",e,t,n),I("transposeA",e,t,n),I("transposeB",e,t,n))];case"Transpose":return[Ue(I("x",e,t,n),I("perm",e,t,n))];case"_FusedMatMul":let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=I("numArgs",e,t,n),l=I("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,u]=I("args",e,t,n);return[es.matMul({a:I("a",e,t,n),b:I("b",e,t,n),transposeA:I("transposeA",e,t,n),transposeB:I("transposeB",e,t,n),bias:c,activation:r,preluActivationWeights:u,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},tV=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[gr(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"FusedBatchNormV3":return[gr(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"LRN":return[jy(I("x",e,t,n),I("radius",e,t,n),I("bias",e,t,n),I("alpha",e,t,n),I("beta",e,t,n))];case"Softmax":return[Ta(I("x",e,t,n))];case"LogSoftmax":return[wh(I("x",e,t,n))];case"SparseToDense":return[cb(I("sparseIndices",e,t,n),I("outputShape",e,t,n),I("sparseValues",e,t,n),I("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},nV=(e,t,n)=>{switch(e.op){case"Max":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Yn(I("x",e,t,n),i,o)]}case"Mean":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[St(I("x",e,t,n),i,o)]}case"Min":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[zl(I("x",e,t,n),i,o)]}case"Sum":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Te(I("x",e,t,n),i,o)]}case"All":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[ph(I("x",e,t,n),i,o)]}case"Any":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Rc(I("x",e,t,n),i,o)]}case"ArgMax":{let i=I("axis",e,t,n);return[Mc(I("x",e,t,n),i)]}case"ArgMin":{let i=I("axis",e,t,n);return[_y(I("x",e,t,n),i)]}case"Prod":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Nh(I("x",e,t,n),i,o)]}case"Cumsum":{let i=I("axis",e,t,n),o=I("exclusive",e,t,n),l=I("reverse",e,t,n);return[gh(I("x",e,t,n),i,o,l)]}case"Bincount":let a=I("x",e,t,n),r=I("weights",e,t,n),s=I("size",e,t,n);return[u1(a,r,s)];case"DenseBincount":{let i=I("x",e,t,n),o=I("weights",e,t,n),l=I("size",e,t,n),c=I("binaryOutput",e,t,n);return[f1(i,o,l,c)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},aV=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=I("n",e,t,n),r=I("axis",e,t,n),s=I("tensors",e,t,n);return s=s.slice(0,a),[Qe(s,r)]}case"Gather":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[Ci(a,ce(r,"int32"),0)]}case"GatherV2":{let a=I("axis",e,t,n),r=I("batchDims",e,t,n),s=I("x",e,t,n),i=I("indices",e,t,n);return[Ci(s,ce(i,"int32"),a,r)]}case"Reverse":{let a=I("dims",e,t,n),r=[];for(let i=0;i{let a=I("axis",e,t,n),r=I("tensors",e,t,n),s=r[0].shape,i=Qr(r[0]).shape,o=r.map(l=>{let c=k.arraysEqual(l.shape,s);if(!c&&!k.arraysEqual(Qr(l).shape,i))throw new Error("the input tensors shape does not match");return c?l:H(l,s)});return[$t(o,a)]});case"Unpack":{let a=I("axis",e,t,n),r=I("tensor",e,t,n);return dt(r,a)}case"Tile":{let a=I("reps",e,t,n);return[qa(I("x",e,t,n),a)]}case"Split":case"SplitV":{let a=I("axis",e,t,n),r=I("numOrSizeSplits",e,t,n),s=I("x",e,t,n);return Pn(s,r,a)}case"ScatterNd":{let a=I("indices",e,t,n),r=I("values",e,t,n),s=I("shape",e,t,n);return[M1(a,r,s)]}case"GatherNd":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[P1(a,r)]}case"SparseToDense":{let a=I("sparseIndices",e,t,n),r=I("outputShape",e,t,n),s=I("sparseValues",e,t,n),i=I("defaultValue",e,t,n);return[cb(a,s,r,s.dtype===i.dtype?i:ce(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},rV=(e,t,n)=>{switch(e.op){case"FFT":return[jc(I("x",e,t,n))];case"IFFT":return[Ul(I("x",e,t,n))];case"RFFT":return[qc(I("x",e,t,n))];case"IRFFT":return[$h(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},sV=(e,t,n)=>{switch(e.op){case"Cast":return[ce(I("x",e,t,n),I("dtype",e,t,n))];case"ExpandDims":{let a=I("axis",e,t,n);return[$n(I("x",e,t,n),a)]}case"Squeeze":{let a=I("axis",e,t,n);return[Qr(I("x",e,t,n),a)]}case"Reshape":return[H(I("x",e,t,n),I("shape",e,t,n))];case"MirrorPad":return[Zy(I("x",e,t,n),I("padding",e,t,n),I("mode",e,t,n))];case"PadV2":case"Pad":return[Zn(I("x",e,t,n),I("padding",e,t,n),I("constantValue",e,t,n))];case"SpaceToBatchND":{let a=I("blockShape",e,t,n),r=I("paddings",e,t,n);return[Vc(I("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=I("blockShape",e,t,n),r=I("crops",e,t,n);return[Oc(I("x",e,t,n),a,r)]}case"DepthToSpace":{let a=I("blockSize",e,t,n),r=I("dataFormat",e,t,n).toUpperCase();return[By(I("x",e,t,n),a,r)]}case"BroadcastTo":return[Lc(I("x",e,t,n),I("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function gN(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return D(()=>O4(s,i,o));case"basic_math":return D(()=>L4(s,i,o));case"control":return G4(s,i,o);case"convolution":return D(()=>H4(s,i,o));case"creation":return D(()=>j4(s,i,o));case"dynamic":return q4(s,i,o);case"evaluation":return D(()=>K4(s,i,o));case"image":return D(()=>J4(s,i,o));case"graph":return D(()=>X4(s,i,o));case"logical":return D(()=>Q4(s,i,o));case"matrices":return D(()=>eV(s,i,o));case"normalization":return D(()=>tV(s,i,o));case"reduction":return D(()=>nV(s,i,o));case"slice_join":return D(()=>aV(s,i,o));case"spectral":return D(()=>rV(s,i,o));case"transformation":return D(()=>sV(s,i,o));case"hash_table":return Z4(s,i,o,a);case"custom":let l=jI(s.op);if(l&&l.customExecutor)return l.customExecutor(new P4(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return k.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var yN=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function xN(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,c=Object.keys(e).map(d=>Ln(d)[0]),u=[];a!=null&&(u=a.map(d=>Ln(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((bN(d)||iV(d)||oV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&c.indexOf(d.name)===-1&&u.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function lV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(u=>Ln(u)[0]).map(u=>e.nodes[u]),o=e.initNodes;i.forEach(u=>{a.has(u.name)&&s.push(u)}),e.weights.forEach(u=>{a.has(u.name)&&s.push(u)}),o!=null&&o.forEach(u=>{a.has(u.name)&&s.push(u)});let l=new Set,c=[];for(;s.length>0;){let u=s.pop();l.add(u.name),t[u.name]||c.push(u),u.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return c}var uV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],cV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],pV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function bN(e){return uV.indexOf(e.op)>=0}function iV(e){return cV.indexOf(e.op)>=0}function oV(e){return pV.indexOf(e.op)>=0}var hv=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new hv(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=xN(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return lV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(u=>this.graph.nodes[Ln(u)[0]]),r=t.map(u=>Ln(u)[0]),s=r.map(u=>this.graph.nodes[u]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},c={};return D(()=>{let u=new yN(this.weightMap,l,c,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Ln(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mNn(m,p,u))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=y4(o.name,n,a);l!=null&&l.forEach(c=>{if(c&&!r.has(c.id)){let u=i[c.id];u===1?(c.dispose(),delete i[c.id]):u!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new yN(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>Nn(p,i,s)),l=o.map(p=>p.id),c=Object.keys(e).map(p=>e[p].id),u=new Set([...l,...c,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!u.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(u),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Ln(b)[0]]),i=n.map(b=>Ln(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:u,syncInputs:p}=xN(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[v,x]=Ln(b),N=[];N[x]=e[b],h[v]=N});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}u==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!bN(b)&&!Nn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw u!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let c=[];for(;t.length>0;){let u=t.pop();n.currentContext=u.contexts;let p="";if(u.node.op==="Enter"&&I("isConstant",u.node,a,n)&&([p]=Ir(u.node.name,n)),a[u.node.name]==null){let d=gN(u.node,a,n,this._resourceManager);p||([p]=Ir(u.node.name,n));let h=n.currentContext;k.isPromise(d)?c.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l))}else this.processChildNodes(u.node,t,n,a,r,l)}return c}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Ir(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Nn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Nn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Ln(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);k.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&k.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Ln(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Ln(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},dV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},hV="?tfjs-format=file",mV="model.json",vN=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new dV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ht.browserHTTPRequest(e,this.loadOptions);else{let t=Ht.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ht.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=Ht.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new hv(pN.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=pN.Instance.transformGraph(e.modelInitializer);this.initializer=new hv(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=Ht.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ae)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function fV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${mV}${hV}`);let n=new vN(e,t);return await n.load(),n}var wN="3.1.0",kN={};Oe(kN,{CSVDataset:()=>NN,Dataset:()=>Ql,FileDataSource:()=>TN,TextLineDataset:()=>IN,URLDataSource:()=>SN,array:()=>gV,csv:()=>bV,func:()=>xV,generator:()=>vV,microphone:()=>kV,version_data:()=>CN,webcam:()=>wV,zip:()=>yV});var IV=To(fd()),NV=To(fd());function TV(e,t){return Am(e,t)}function Am(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(eu(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Am(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function SV(e,t=EN){return _N(e,t)}function _N(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(eu(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(c=>c[i]),l=_N(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function EN(e){return e===null?null:eu(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function AN(e,t){let n=new Map;Am(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(k.isPromise(r)){let s=await r;n.set(a,s)}}return Am(e,t,n)}function eu(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ae))}function _V(e){return e==null||CV(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ae||k.isTypedArray(e)}function CV(e){return e===null||typeof e!="object"&&typeof e!="function"}function AV(e){return TV(e,EV)}function EV(e){return e instanceof Ae?{value:e.clone(),recurse:!1}:eu(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var FN=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},mv=class extends FN{constructor(){super(mv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new zV(this,e,t)}columnMajorBatch(e,t=!0,n=EN){return this.rowMajorBatch(e,t).map(a=>SV(a,n))}concatenate(e,t){return new DN($N([this,e]),t)}take(e){return e<0||e==null?this:new LV(this,e)}skip(e){return e<0||e==null?this:new OV(this,e)}prefetch(e){return new MN(this,e)}shuffle(e,t){return new GV(this,e,t)}serial(){return new PV(this)}},FV=class extends Yt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:AV(e),done:!1}}},$V=class extends Yt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},PV=class extends Yt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},OV=class extends Yt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},zV=class extends Yt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},BV=class extends Yt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Fe(e.value)}}},WV=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Na.getTensorsInContainer(e.value),n=this.transform(e.value),a=Na.getTensorsInContainer(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},VV=class extends Yt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},RN=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Na.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Na.getTensorsInContainer(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},gv=class extends Yt{constructor(){super();this.outputQueue=new mv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},UV=class extends gv{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Na.getTensorsInContainer(e.value),n=this.transform(e.value),a=Na.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return!0}},DN=class extends Yt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ls;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ls||(ls={}));var RV=class extends Yt{constructor(e,t=ls.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Yt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await AN(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ls.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ls.SHORTEST:return{value:null,done:!0};case ls.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},MN=class extends Yt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new FN(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},GV=class extends MN{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=NV.alea(n||k.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Ql=class{constructor(){this.size=null}batch(e,t=!0){let n=this;k.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),zn(async()=>(await n.iterator()).columnMajorBatch(e,t,HV),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,zn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,zn(async()=>(await t.iterator()).filter(a=>D(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return zn(async()=>(await t.iterator()).map(n=>D(()=>e(n))),this.size)}mapAsync(e){let t=this;return zn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return zn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=Infinity:n=null,zn(async()=>{let a=fv(async()=>({value:await t.iterator(),done:!1}));return DV(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=IV.alea(t||k.now().toString());return zn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,zn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Ql.MAX_BUFFER_SIZE=1e4;function zn(e,t=null){return new class extends Ql{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function gV(e){return zn(async()=>$N(e),e.length)}function yV(e){if(!eu(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await AN(e,a=>{if(a instanceof Ql)return{value:a.iterator(),recurse:!1};if(eu(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return MV(n,ls.SHORTEST)},t)}function HV(e){if(e===null)return null;let t=e[0];return _V(t)?{value:jV(e),recurse:!1}:{value:null,recurse:!0}}function jV(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ae?$t(e):qn(e)}var IN=class extends Ql{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Fm='"',fp=Symbol("out"),PN=Symbol("field"),$m=Symbol("quote"),yv=Symbol("quoteafterquote"),ON=Symbol("quoteinquote"),NN=class extends Ql{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new IN(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(k.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&k.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(k.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ee().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new LN(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(k.sizeFromShape(t));return n.set(e,n.length-e.length),qn(n,t)}},zN=class extends Yt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=tt([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Sa([s,r,o,i],[1,4])}else this.cropBox=Sa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ee().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new zN(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&k.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Ni.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return D(()=>{let t=$n(ce(e,"float32"),0),n;n=Za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return H(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},BN=class{},WN=class extends Yt{split(e){return new qV(this,e)}},qV=class extends WN{constructor(e,t){super();this.upstream=e,this.impl=new KV(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},KV=class extends gv{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},YV=class extends Yt{decodeUTF8(){return new XV(this)}},XV=class extends WN{constructor(e){super();this.upstream=e,this.impl=new ZV(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ZV=class extends gv{constructor(e){super();if(this.upstream=e,ee().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=vE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return ee().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},VN=class extends YV{constructor(e,t={}){super();this.file=e,this.options=t,k.assert(e instanceof Uint8Array||(ee().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function QV(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=JV(e));let r=await k.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new VN(s,t)}else throw new Error(r.statusText)}var JV=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function UN(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var TN=class extends BN{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(UN(this.input)&&ee().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new VN(this.input,this.options)}},SN=class extends BN{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return UN(this.url)?new TN(this.url,this.fileOptions).iterator():QV(this.url,this.fileOptions)}};function bV(e,t={}){return new NN(new SN(e),t)}function xV(e){let t=fv(e);return zn(async()=>t)}function vV(e){return zn(async()=>{let t=await e();return fv(()=>t.next())})}async function wV(e,t){return zN.create(e,t)}async function kV(e){return LN.create(e)}var CN="3.1.0";function we(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var eU=Ja.whereImpl,bv=class extends rc{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new gd(this,Ha())}nextDataId(){return bv.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,ee().get("IS_NODE")&&_.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a){this.data.set(e,{values:t,dtype:a,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Kr().makeTensorFromDataId(a,t,n,this)}disposeData(e){if(this.data.has(e)){let{complexTensorInfos:t}=this.data.get(e);t!=null&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){let t=e.dataId;if(this.data.has(t)){let n=this.data.get(t);n.refCount--,n.refCount<1&&this.disposeData(t)}}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){we([e],"where");let t=this.readSync(e.dataId);return XV(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}},LN={};Oe(LN,{addImpl:()=>BN,bincountImpl:()=>mv,bincountReduceImpl:()=>WN,ceilImpl:()=>VN,concatImpl:()=>fv,expImpl:()=>UN,expm1Impl:()=>GN,floorImpl:()=>HN,gatherV2Impl:()=>jN,greaterImpl:()=>qN,lessImpl:()=>KN,linSpaceImpl:()=>XN,logImpl:()=>YN,maxImpl:()=>ZN,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>gv,negImpl:()=>eT,notEqualImpl:()=>tT,prodImpl:()=>nT,rangeImpl:()=>bv,rsqrtImpl:()=>aT,simpleAbsImpl:()=>zN,sliceImpl:()=>Am,squaredDifferenceImpl:()=>rT,stridedSliceImpl:()=>sT,subImpl:()=>iT,tileImpl:()=>oT,topKImpl:()=>lT,transposeImpl:()=>yv,uniqueImpl:()=>uT});function zN(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;we(t,"abs");let a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=zN(r),n.makeOutput(a,t.shape,"float32")},JV={kernelName:So,backendName:"cpu",kernelFunc:ZV};function Rt(e){return(t,n,a,r,s)=>{let i=_.assertAndGetBroadcastShape(t,n),o=i.length,l=k.computeStrides(i),c=k.sizeFromShape(i),u=k.getTypedArrayFromDType(s,c),p=t.length,d=n.length,h=k.computeStrides(t),m=k.computeStrides(n),f=_.getBroadcastDims(t,i),g=_.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yv[C]=0);let x=k.locToIndex(v,p,h),N=b.slice(-d);g.forEach(C=>N[C]=0);let T=k.locToIndex(N,d,m);u[y]=e(a[x],r[T])}return[u,i]}}function zn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var QV={kernelName:kd,backendName:"cpu",kernelFunc:zn};function Fm(e,t,n="float32"){if(n==="complex64"){let r=Fm(e,t,"float32"),s=Fm(e,t,"float32");return zn({inputs:{real:r,imag:s},backend:e})}let a=k.makeZerosTypedArray(k.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function ar(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var eU={kernelName:Ko,backendName:"cpu",kernelFunc:ar};function Wi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var tU={kernelName:Vd,backendName:"cpu",kernelFunc:Wi};function us(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ar({inputs:{x:r},backend:n});let i=Fm(n,r.shape,r.dtype),o=us({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=zn({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Wi({inputs:{input:r},backend:n}),o=us({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=ar({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=k.toTypedArray([0],r.dtype),[l,c]=Rt((u,p)=>u!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var nU={kernelName:As,backendName:"cpu",kernelFunc:us};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;we([i,o],e);let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let c=us({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),u=l.data.get(c.dataId),p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=us({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,v=l.data.get(y.dataId).values,x=l.data.get(b.dataId).values,[N,T,C]=n(i.shape,o.shape,h,m,v,x),$=l.makeTensorInfo(C,"float32",N),F=l.makeTensorInfo(C,"float32",T),O=zn({inputs:{real:$,imag:F},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo($),l.disposeIntermediateTensorInfo(F),O}else{let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}}}function xv(e){return(t,n,a,r,s,i)=>{let o=_.assertAndGetBroadcastShape(t,n),l=k.sizeFromShape(o),c=o.length,u=k.computeStrides(o),p=k.getTypedArrayFromDType("float32",l),d=k.getTypedArrayFromDType("float32",l),h=_.getBroadcastDims(t,o),m=_.getBroadcastDims(n,o),f=_.mergeRealAndImagArrays(a,r),g=_.mergeRealAndImagArrays(s,i),y=t.length,b=k.computeStrides(t),v=n.length,x=k.computeStrides(n);if(h.length+m.length===0)for(let N=0;NC[W]=0);let $=k.locToIndex(C,y,b),F=T.slice(-v);m.forEach(W=>F[W]=0);let O=k.locToIndex(F,v,x),B=e(f[$*2],f[$*2+1],g[O*2],g[O*2+1]);p[N]=B.real,d[N]=B.imag}return[p,d,o]}}var BN=Rt((e,t)=>e+t),aU=xv((e,t,n,a)=>({real:e+n,imag:t+a})),fp=Zt(Lr,BN,aU),rU={kernelName:Lr,backendName:"cpu",kernelFunc:fp};function mv(e,t,n,a,r){let s=k.sizeFromShape(a),i=k.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function WN(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,c):t.size>0?i.set(i.get(o,c)+t.get(o,l),o,c):i.set(i.get(o,c)+1,o,c))}return i}function tu(e){return(t,n,a)=>{let r=k.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=k.sizeFromShape(i.shape),u=n||i.dtype,p=k.getArrayFromDType(u,c);for(let d=0;d{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=n||i.dtype,u=t(l,c,r);return o.makeTensorInfo(i.shape,c,u)}}var VN=tu(e=>Math.ceil(e)),sU=nu(Ro,VN),iU={kernelName:Ro,backendName:"cpu",kernelFunc:sU};function fv(e,t,n,a){let r=k.getArrayFromDType(n,k.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=k.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?_.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let c=0;cMath.exp(e)),cT=nu(Os,UN),oU={kernelName:Os,backendName:"cpu",kernelFunc:cT},GN=tu(e=>Math.expm1(e)),lU=nu(Uo,GN),uU={kernelName:Uo,backendName:"cpu",kernelFunc:lU},HN=tu(e=>Math.floor(e)),cU=nu(Ls,HN),pU={kernelName:Ls,backendName:"cpu",kernelFunc:cU};function jN(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),dU=Zt(qo,qN,null,"bool"),hU={kernelName:qo,backendName:"cpu",kernelFunc:dU},KN=Rt((e,t)=>eMath.log(e)),gU=nu(Us,YN),yU={kernelName:Us,backendName:"cpu",kernelFunc:gU};function ZN(e,t,n,a){let r=k.getTypedArrayFromDType(a,k.sizeFromShape(n));for(let s=0;so&&(o=c)}r[s]=o}return r}var JN=Rt((e,t)=>Math.max(e,t)),bU=Zt(Hs,JN),xU={kernelName:Hs,backendName:"cpu",kernelFunc:bU},QN=Rt((e,t)=>Math.min(e,t)),vU=Zt(Xs,QN),wU={kernelName:Xs,backendName:"cpu",kernelFunc:vU},gv=Rt((e,t)=>e*t),kU=xv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),vv=Zt(Ys,gv,kU),IU={kernelName:Ys,backendName:"cpu",kernelFunc:vv};function eT(e,t,n){let a=k.createScalarValue(-1,n);return gv([],t,a,e,n)}function NU(e){let{inputs:t,backend:n}=e,{x:a}=t;we(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=eT(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var TU={kernelName:al,backendName:"cpu",kernelFunc:NU},tT=Rt((e,t)=>e!==t?1:0),SU=Zt(rl,tT,null,"bool"),CU={kernelName:rl,backendName:"cpu",kernelFunc:SU};function yv(e,t,n,a,r){let s=t.length,i=k.sizeFromShape(t),o=k.computeStrides(t),l=k.computeStrides(r),c=k.getTypedArrayFromDType(n,k.sizeFromShape(r));for(let u=0;un.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var AU={kernelName:cl,backendName:"cpu",kernelFunc:EU};function bv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return k.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=k.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),FU=nu(ii,aT),$U={kernelName:ii,backendName:"cpu",kernelFunc:FU};function Am(e,t,n,a,r){let s=cn.isSliceContinous(a,t,n),i=k.sizeFromShape(n),o=k.computeStrides(a);if(s){let p=cn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?_.fromUint8ToStringArray(e):e,c=Le(a,r,l),u=Le(n,r);for(let p=0;pm+t[f]);u.set(c.get(...h),...d)}return r==="string"?_.fromStringArrayToUint8(u.values):u.values}function Vi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;we(r,"slice");let[o,l]=cn.parseSliceParams(r,s,i);cn.assertParamsValid(r,o,l);let c=n.data.get(r.dataId).values,u=Am(c,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}var DU={kernelName:gl,backendName:"cpu",kernelFunc:Vi},rT=Rt((e,t)=>{let n=e-t;return n*n}),RU=Zt(di,rT),MU={kernelName:di,backendName:"cpu",kernelFunc:RU};function sT(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),PU=xv((e,t,n,a)=>({real:e-n,imag:t-a})),wv=Zt(hi,iT,PU),OU={kernelName:hi,backendName:"cpu",kernelFunc:wv};function oT(e,t){let n=new Array(e.rank);for(let r=0;rv.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=c.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew YV,1);var pT=it(zo,e=>e>=0?e:Math.exp(e)-1),zU={kernelName:zo,backendName:"cpu",kernelFunc:pT};function dT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;we([r],"leakyRelu");let i=k.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=k.getTypedArrayFromDType("float32",i);for(let c=0;ce<0?t*e:e);function hT(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;we([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=WU(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var VU={kernelName:ei,backendName:"cpu",kernelFunc:hT},mT=it(ti,e=>Math.max(0,e)),UU={kernelName:ti,backendName:"cpu",kernelFunc:mT},fT=it(ai,e=>Math.min(Math.max(0,e),6)),GU={kernelName:ai,backendName:"cpu",kernelFunc:fT};function kv(e,t,n,a,r){if(n==="linear")return ar({inputs:{x:t},backend:e});if(n==="relu")return mT({inputs:{x:t},backend:e});if(n==="elu")return pT({inputs:{x:t},backend:e});if(n==="relu6")return fT({inputs:{x:t},backend:e});if(n==="prelu")return hT({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return dT({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function It(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=k.sizeFromShape(r.shape),o=k.inferFromImplicitShape(s,i),l=k.sizeFromShape(o);k.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let c=n.data.get(r.dataId);if(c.complexTensorInfos!=null){let u=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;u.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var HU={kernelName:dl,backendName:"cpu",kernelFunc:It};function gT(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;we([r,s],"matMul");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=It({inputs:{x:r},backend:n,attrs:{shape:x}}),C=It({inputs:{x:s},backend:n,attrs:{shape:N}}),$=i?T.shape[1]:T.shape[2],F=i?T.shape[2]:T.shape[1],O=o?C.shape[1]:C.shape[2],B=Math.max(g,y),W=n.data.get(T.dataId).values,G=n.data.get(C.dataId).values,q=k.computeStrides(T.shape),H=k.computeStrides(C.shape),[K,X,ne]=i?[q[0],1,q[1]]:[q[0],q[1],1],[J,se,Q]=o?[1,H[1],H[0]]:[H[1],1,H[0]],oe=F*O,ae=Le([B,F,O],T.dtype),pe=ae.values,ue=n.blockSize;for(let ge=0;geMath.acos(e)),YU={kernelName:Co,backendName:"cpu",kernelFunc:XU},ZU=it(_o,e=>Math.acosh(e)),JU={kernelName:_o,backendName:"cpu",kernelFunc:ZU};function QU(e){let{inputs:t,backend:n}=e,a=t;we(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=N,v=x)}h[g]=v}return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var iG={kernelName:Cs,backendName:"cpu",kernelFunc:sG};function oG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;we(r,"argMin");let i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=ga({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],_.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[u,p]=_.computeOutAndReduceShapes(l.shape,i),d=k.sizeFromShape(u),h=k.makeZerosTypedArray(d,"int32"),m=k.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var lG={kernelName:lc,backendName:"cpu",kernelFunc:oG},uG=it(Eo,e=>Math.asin(e)),cG={kernelName:Eo,backendName:"cpu",kernelFunc:uG},pG=it(Ao,e=>Math.asinh(e)),dG={kernelName:Ao,backendName:"cpu",kernelFunc:pG},hG=it(Fo,e=>Math.atan(e)),mG={kernelName:Fo,backendName:"cpu",kernelFunc:hG},fG=Rt((e,t)=>Math.atan2(e,t)),gG=Zt(Do,fG),yG={kernelName:Do,backendName:"cpu",kernelFunc:gG},bG=it($o,e=>Math.atanh(e)),xG={kernelName:$o,backendName:"cpu",kernelFunc:bG};function Iv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,u=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],v=r.outShape[3];for(let x=0;xX?X=ue:s==="avg"&&(ne+=ue,J++)}if(isNaN(X))break}let se=W+G*v+C;g[se]=s==="avg"?ne/J:X}}}return f}function yT(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,c=a.dilationHeight,u=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gO&&(O=K,r?B=s?((g*a.inHeight+W)*a.inWidth+q)*a.inChannels+y:(W*a.inWidth+q)*a.inChannels+y:B=G*d+H)}}i.set(B,g,b,T,y)}}return i}function bT(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,c=r.dilationDepth,u=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Le(r.outShape,n),x=v.values,N=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],$=r.outShape[4];for(let F=0;Fke?ke=pt:s==="avg"&&(Se+=pt,Ce++),isNaN(ke))break}if(isNaN(ke))break}if(isNaN(ke))break}let Re=ye+W;x[Re]=s==="avg"?Se/Ce:ke}}}}return v}function vG(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,u=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=G&&(G=Q,q=K*u*p+ne*u+se)}}}n.set(q,f,y,N,F,g)}}}return n}function wG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;we(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=ar({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=Iv(d,r.shape,r.dtype,h,u,"avg");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var kG={kernelName:_s,backendName:"cpu",kernelFunc:wG};function IG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"avgPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=bT(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var NG={kernelName:uc,backendName:"cpu",kernelFunc:IG};function TG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"avgPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=u.strideDepth,d=u.strideHeight,h=u.strideWidth,m=u.filterDepth,f=u.filterHeight,g=u.filterWidth,y=u.dilationDepth,b=u.dilationHeight,v=u.dilationWidth,x=u.effectiveFilterDepth,N=u.effectiveFilterHeight,T=u.effectiveFilterWidth,C=x-1-u.padInfo.front,$=T-1-u.padInfo.left,F=N-1-u.padInfo.top,O=Le(s.shape,"float32"),B=1/(m*f*g),W=n.bufferSync(r);for(let G=0;G=u.outDepth||Math.floor(ae)!==ae))for(let pe=0;pe=u.outHeight||Math.floor(ue)!==ue))for(let ge=0;ge=u.outWidth||Math.floor(ye)!==ye||(Q+=W.get(G,ae,ue,ye,q))}}}O.set(Q*B,G,H,K,X,q)}return n.makeTensorInfo(O.shape,O.dtype,O.values)}var SG={kernelName:vd,backendName:"cpu",kernelFunc:TG};function CG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;we([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=u.strideHeight,d=u.strideWidth,h=u.filterHeight,m=u.filterWidth,f=u.dilationHeight,g=u.dilationWidth,y=u.effectiveFilterHeight,b=u.effectiveFilterWidth,v=b-1-u.padInfo.left,x=y-1-u.padInfo.top,N=Le(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,$=Le(r.shape,"float32",C);for(let F=0;F=u.outHeight||Math.floor(X)!==X))for(let ne=0;ne=u.outWidth||Math.floor(J)!==J||(H+=$.get(F,X,J,O))}}N.set(H*T,F,B,W,O)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}var _G={kernelName:xd,backendName:"cpu",kernelFunc:CG};function EG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;k.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),we([r,o,l,s,i],"batchNorm");let{varianceEpsilon:c}=a;c==null&&(c=.001);let u=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(u.length),g=m.length,y=h.length,b=d.length,v=p.length,x=0,N=0,T=0,C=0;for(let $=0;$=g&&(x=0),N>=v&&(N=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var AG={kernelName:Bs,backendName:"cpu",kernelFunc:EG};function FG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;we([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=It({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ga({inputs:{x:h},backend:n,attrs:{perm:c}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Vi({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var $G={kernelName:cc,backendName:"cpu",kernelFunc:FG};function DG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,c=mv(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var RG={kernelName:wd,backendName:"cpu",kernelFunc:DG},MG=it(zr,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let c=0;cf.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>k.sizeFromShape(f.shape)>0);if(o.length===1)return ar({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(_.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(x=>Wi({inputs:{input:x},backend:n})),g=o.map(x=>au({inputs:{input:x},backend:n})),y=ru({inputs:f,backend:n,attrs:{axis:s}}),b=ru({inputs:g,backend:n,attrs:{axis:s}}),v=zn({inputs:{real:y,imag:b},backend:n});return f.forEach(x=>n.disposeIntermediateTensorInfo(x)),g.forEach(x=>n.disposeIntermediateTensorInfo(x)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),v}let c=o.map(f=>{let g=k.sizeFromShape(f.shape.slice(s));return It({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),u=c.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=_.computeOutShape(c.map(f=>f.shape),1);let p=c[0].shape[0]===1,d=fv(u,i,t[0].dtype,p),h=_.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return c.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var BG={kernelName:Mo,backendName:"cpu",kernelFunc:ru};function xT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a;we([r,s],"conv2d");let p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,v=d.dataFormat==="channelsLast",x=new Ot(d.outShape,r.dtype),N=k.computeStrides(r.shape),T=k.computeStrides(s.shape),C=N[0],$=v?N[1]:N[2],F=v?N[2]:1,O=v?1:N[1],B=x.strides[0],W=v?x.strides[1]:x.strides[2],G=v?x.strides[2]:1,q=v?1:x.strides[1],H=n.data.get(r.dataId).values,K=n.data.get(s.dataId).values,X=x.values;for(let ne=0;ne=d.inHeight)continue;let ge=pe*T[0],ye=J+ue*$;for(let ke=0;ke=d.inWidth)continue;let Ve=ge+Re*T[1],rt=ye+Ke*F,ot=Ve;for(let He=0;He=c.inDepth)continue;let ne=K*F[0],J=B+X*$[1];for(let se=0;se=c.inHeight)continue;let ue=ne+ae*F[1],ge=J+pe*$[2];for(let ye=0;ye=c.inWidth)continue;let Ke=ue+Ce*F[2],Ve=ge+Re*c.inChannels,rt=Ke;for(let ot=0;otMath.cos(e)),QG={kernelName:Ds,backendName:"cpu",kernelFunc:JG},eH=it(Po,e=>Math.cosh(e)),tH={kernelName:Po,backendName:"cpu",kernelFunc:eH};function nH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,[u,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,x=n.data.get(r.dataId).values,N=k.computeStrides(r.shape),T=k.computeStrides(y.shape);for(let C=0;C=u)continue;let q=f>1?(B-F)*(p-1)/(f-1):0,H=g>1?(W-O)*(d-1)/(g-1):0;for(let K=0;K1?F*(p-1)+K*q:.5*(F+B)*(p-1);if(X<0||X>p-1){for(let ne=0;ne1?O*(d-1)+Q*H:.5*(O+W)*(d-1);if(oe<0||oe>d-1){for(let ge=0;ge1?O*(d-1)+ne*H:.5*(O+W)*(d-1);if(J<0||J>d-1){for(let oe=0;oey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],c=r.shape[2],u=r.shape[3],p=l*s,d=c*s,h=u/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=_.computeConv2DInfo(r.shape,s.shape,i,d,o,c,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,v=b.left,x=b.top,N=h.outChannels/h.inChannels,T=new Ot(h.outShape,r.dtype),C=n.data.get(r.dataId).values,$=n.data.get(s.dataId).values,F=T.values;for(let O=0;O=h.inHeight)continue;let ne=K*p[0],J=B+X*u[1];for(let se=0;se=h.inWidth)continue;let ue=ne+ae*p[1],ge=J+pe*h.inChannels,ye=Q,ke=ue;for(let Se=0;Se{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,c=l.data.get(a.dataId).values,u=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:x,strideWidth:N,filterHeight:T,filterWidth:C,dilationHeight:$,dilationWidth:F,outShape:O}=_.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),B=k.sizeFromShape(O),W=O.length,G=k.getArrayFromDType(a.dtype,B);for(let q=0;q=0&&ae=0&&uese&&(se=ke)}}}let Q=k.locToIndex([q,H,X,J],W,k.computeStrides(O));G[Q]=se}}}return{dataId:l.write(k.toTypedArray(G,a.dtype),O,a.dtype),shape:O,dtype:a.dtype}}},bH={kernelName:Fd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:$,outShape:F}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===F.length,()=>`Error in ${Fd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let O=k.toNestedArray(F,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(r.shape,r.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=Q,se=ae)}}}B[J][se][X]+=O[W][G][H][X]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},xH={kernelName:Ad,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:$,outShape:F}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===F.length,()=>`Error in ${Ad}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let O=k.toNestedArray(F,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(a.shape,a.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=oe,se=pe)}}}B[W][J][se][X]+=O[W][G][H][X]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function vH(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;we([a,r],"eluGrad");let s=new Float32Array(k.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(c+1)}return n.makeTensorInfo(r.shape,"float32",s)}var wH={kernelName:$d,backendName:"cpu",kernelFunc:vH},kH=Rt((e,t)=>e===t?1:0),wT=Zt(Wo,kH,null,"bool"),IH={kernelName:Wo,backendName:"cpu",kernelFunc:wT},NH=_.ERF_P,TH=_.ERF_A1,SH=_.ERF_A2,CH=_.ERF_A3,_H=_.ERF_A4,EH=_.ERF_A5,AH=it(Bo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+NH*n);return t*(1-((((EH*a+_H)*a+CH)*a+SH)*a+TH)*a*Math.exp(-n*n))}),FH={kernelName:Bo,backendName:"cpu",kernelFunc:AH};function $m(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),It({inputs:{x:r},backend:n,attrs:{shape:o}})}var $H={kernelName:Vo,backendName:"cpu",kernelFunc:$m},DH=Rt((e,t)=>e/t),Nv=Zt(Ps,DH),Tv={kernelName:Ps,backendName:"cpu",kernelFunc:Nv};function kT(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[r,s],u=k.sizeFromShape(c),p=k.getTypedArrayFromDType("float32",u),d=k.getTypedArrayFromDType("float32",u);for(let g=0;g{let{image:a}=e,r=n,s=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[i,o,l,c]=a.shape,u=r.data.get(a.dataId).values;for(let p=0;p=0&&vMath.floor(e/t)),UH=Zt(zs,VH,null,"int32"),GH={kernelName:zs,backendName:"cpu",kernelFunc:UH};function HH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=xT({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=fp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=kv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var jH={kernelName:yi,backendName:"cpu",kernelFunc:HH};function qH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=vT({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=fp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=kv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var KH={kernelName:bi,backendName:"cpu",kernelFunc:qH};function XH(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=k.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,c,u,p]=_.prepareAndValidate(a,r);if(c===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([c,u],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/u)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),e6=Zt(Ws,QH,null,"bool"),t6={kernelName:Ws,backendName:"cpu",kernelFunc:e6};function n6(e){let{inputs:t,backend:n}=e,{input:a}=t,r=k.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=It({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=kT(o,!0,n),c=It({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),c}var a6={kernelName:Rd,backendName:"cpu",kernelFunc:n6},r6=it(Xo,e=>Number.isFinite(e)?1:0,"bool"),s6={kernelName:Xo,backendName:"cpu",kernelFunc:r6},i6=it(Yo,e=>Math.abs(e)===Infinity?1:0,"bool"),o6={kernelName:Yo,backendName:"cpu",kernelFunc:i6},l6=it(Zo,e=>Number.isNaN(e)?1:0,"bool"),u6={kernelName:Zo,backendName:"cpu",kernelFunc:l6},c6=Rt((e,t)=>e<=t?1:0),p6=Zt(Qo,c6,null,"bool"),d6={kernelName:Qo,backendName:"cpu",kernelFunc:p6};function h6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=XN(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var m6={kernelName:Pd,backendName:"cpu",kernelFunc:h6},f6=it(el,e=>Math.log1p(e)),g6={kernelName:el,backendName:"cpu",kernelFunc:f6},y6=Rt((e,t)=>e&&t),b6=Zt(tl,y6,null,"bool"),x6={kernelName:tl,backendName:"cpu",kernelFunc:b6},v6=it(fc,e=>e?0:1,"bool"),w6={kernelName:fc,backendName:"cpu",kernelFunc:v6},k6=Rt((e,t)=>e||t),I6=Zt(gc,k6,null,"bool"),N6={kernelName:gc,backendName:"cpu",kernelFunc:I6};function T6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;we(r,"LRN");let c=r.shape[3],u=c-1,p=n.data.get(r.dataId).values,d=k.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%c,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,u),v=0;for(;y<=b;y++){let x=p[y];v+=x*x}return v}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=ar({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=Iv(d,r.shape,r.dtype,h,u,"max");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var F6={kernelName:js,backendName:"cpu",kernelFunc:A6};function $6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"maxPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=bT(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var D6={kernelName:bc,backendName:"cpu",kernelFunc:$6};function R6(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"maxPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=n.bufferSync(s),d=vG(p,u),h=u.strideDepth,m=u.strideHeight,f=u.strideWidth,g=u.dilationDepth,y=u.dilationHeight,b=u.dilationWidth,v=u.effectiveFilterDepth,x=u.effectiveFilterHeight,N=u.effectiveFilterWidth,T=v-1-u.padInfo.front,C=N-1-u.padInfo.left,$=x-1-u.padInfo.top,F=Le(s.shape,"float32"),O=n.bufferSync(r);for(let B=0;B=u.outDepth||Math.floor(Q)!==Q))for(let oe=0;oe=u.outHeight||Math.floor(ae)!==ae))for(let pe=0;pe=u.outWidth||Math.floor(ue)!==ue)continue;let ge=v*x*N-1-d.get(B,Q,ae,ue,W),ye=se*x*N+oe*N+pe,ke=ge===ye?1:0;ke!==0&&(J+=O.get(B,Q,ae,ue,W)*ke)}}}F.set(J,B,G,q,H,W)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var M6={kernelName:zd,backendName:"cpu",kernelFunc:R6};function P6(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;we([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,yT(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,v=d.effectiveFilterHeight,x=d.effectiveFilterWidth,N=x-1-d.padInfo.left,T=v-1-d.padInfo.top,C=Le(o.shape,"float32"),$=n.data.get(r.dataId).values,F=Le(r.shape,"float32",$);for(let O=0;O=d.outHeight||Math.floor(ne)!==ne))for(let J=0;J=d.outWidth||Math.floor(se)!==se)continue;let Q=v*x-1-m.get(O,ne,se,B),oe=X*x+J,ae=Q===oe?1:0;ae!==0&&(K+=F.get(O,ne,se,B)*ae)}}C.set(K,O,W,G,B)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var O6={kernelName:Ld,backendName:"cpu",kernelFunc:P6};function L6(e,t,n,a,r){let s=k.computeStrides(t),i=Iv(e,t,n,s,r,"max"),o=yT(e,t,n,r,!0,a);return[i.values,o.values]}var z6={kernelName:Bd,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;we(a,"MaxPoolWithArgmax");let c=l.data.get(a.dataId).values,u=_.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=L6(c,a.shape,a.dtype,o,u),h=l.write(p,u.outShape,a.dtype),m=l.write(d,u.outShape,a.dtype);return[{dataId:h,shape:u.outShape,dtype:a.dtype},{dataId:m,shape:u.outShape,dtype:"int32"}]}};function Dm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"sum");let o;r.dtype==="bool"?o=us({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=ar({inputs:{x:r},backend:n});let l=o.shape.length,c=k.parseAxisParam(s,o.shape),u=_.getAxesPermutation(c,l),p=c,d=o;u!=null&&(d=ga({inputs:{x:o},backend:n,attrs:{perm:u}}),p=_.getInnerMostAxes(p.length,l)),_.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=_.computeOutAndReduceShapes(d.shape,p),f=_.upcastType(d.dtype,"int32"),g=Fm(n,h,f),y=k.sizeFromShape(m),b=n.data.get(g.dataId).values,v=n.data.get(d.dataId).values;for(let x=0;xn.disposeIntermediateTensorInfo(f)),m}var V6={kernelName:qs,backendName:"cpu",kernelFunc:W6};function U6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"min");let o=k.parseAxisParam(s,r.shape),l=o,c=_.getAxesPermutation(l,r.shape.length),u=r;c!=null&&(u=ga({inputs:{x:r},backend:n,attrs:{perm:c}}),l=_.getInnerMostAxes(l.length,r.shape.length)),_.assertAxesAreInnerMostDims("min",l,u.shape.length);let[p,d]=_.computeOutAndReduceShapes(u.shape,l),h=k.sizeFromShape(d),m=k.makeZerosTypedArray(k.sizeFromShape(p),u.dtype),f=n.data.get(u.dataId).values;for(let y=0;yb[0]+r.shape[v]+b[1]),l=s.map(b=>b[0]),c=s.map((b,v)=>b[0]+r.shape[v]),u=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=k.computeStrides(r.shape),m=k.sizeFromShape(o),f=o.length,g=k.computeStrides(o),y=k.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=c[N]&&(v[N]=(c[N]-1)*2-v[N]+u);v=v.map((N,T)=>N-l[T]);let x=k.locToIndex(v,d,h);y[b]=p[x]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var j6={kernelName:xc,backendName:"cpu",kernelFunc:H6},q6=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),K6=Zt(nl,q6),X6={kernelName:nl,backendName:"cpu",kernelFunc:K6},Y6=Io(dd());function NT(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=k.parseAxisParam([o],r.shape),c=IT({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),u=_.expandShapeToKeepDim(c.shape,l),p=It({inputs:{x:c},backend:n,attrs:{shape:u}}),d=wv({inputs:{a:r,b:p},backend:n}),h=cT({inputs:{x:d},backend:n}),m=Dm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Nv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var Z6={kernelName:pi,backendName:"cpu",kernelFunc:NT};function J6(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;we(r,"multinomial");let l=o?r:NT({inputs:{logits:r},backend:n,attrs:{dim:-1}}),c=l.shape[0],u=l.shape[1],p=n.data.get(l.dataId).values,d=[c,s],h=k.makeZerosTypedArray(k.sizeFromShape(d),"int32");for(let m=0;m=0&&u[p]{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=$m({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=ru({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var hj={kernelName:ul,backendName:"cpu",kernelFunc:ST};function mj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;we(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),c=n.data.get(r.dataId).values,u=k.sizeFromShape(r.shape),p=r.shape.length,d=k.computeStrides(r.shape),h=k.sizeFromShape(o),m=o.length,f=k.computeStrides(o),g=k.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yx+l[N]),v=k.locToIndex(b,m,f);g[v]=c[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var CT={kernelName:Js,backendName:"cpu",kernelFunc:mj},fj=Rt((e,t)=>Math.pow(e,t)),gj=Zt(Qs,fj),yj={kernelName:Qs,backendName:"cpu",kernelFunc:gj};function bj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=bv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var xj={kernelName:vc,backendName:"cpu",kernelFunc:bj},vj=it(pl,e=>1/e),wj={kernelName:pl,backendName:"cpu",kernelFunc:vj};function kj(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;we(r,"resizeBilinear");let l=k.computeStrides(r.shape),[c,u]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(k.sizeFromShape([p,c,u,m])),y=[s&&c>1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=0,x=y[0]/b[0],N=y[1]/b[1];for(let T=0;T1?c-1:c,i&&h>1?u-1:u],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],v=n.data.get(s.dataId).values,x=0;for(let N=0;N1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=y[0]/b[0],x=y[1]/b[1],N=0;for(let T=0;T1?u-1:u,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],v=y[0]/b[0],x=y[1]/b[1],N=1/v,T=1/x,C=Math.ceil(N)*2+2,$=Math.ceil(T)*2+2;for(let F=0;F=h)continue;let ae=O+oe*l[1],pe=oe*v,ue=Math.min(u-1,i?Math.round(pe):Math.floor(pe));if(B===ue)for(let ge=0;ge<$;ge++){let ye=ge+ne;if(ye<0||ye>=m)continue;let ke=ae+ye*l[2],Se=ye*x,Ce=Math.min(p-1,i?Math.round(Se):Math.floor(Se));H===Ce&&(se+=g[ke+J])}}f[K+J]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var Ej={kernelName:Ud,backendName:"cpu",kernelFunc:_j};function Aj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;we(r,"reverse");let i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return ar({inputs:{x:r},backend:n});let l=new Ot(r.shape,r.dtype),c=n.bufferSync(r);for(let u=0;ud[h]=r.shape[h]-1-d[h]),l.set(c.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var Fj={kernelName:ri,backendName:"cpu",kernelFunc:Aj},$j={kernelName:Sl,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[c,u,p,d]=a.shape,[h,m]=_.getImageCenter(i,u,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let v=0;v=0&&G=0&&q{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),Rj={kernelName:si,backendName:"cpu",kernelFunc:Dj};function _T(e,t,n,a,r,s,i,o,l,c){let u=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(u,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:k.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?Bj*e:zj*(Math.exp(e)-1)),Vj={kernelName:fl,backendName:"cpu",kernelFunc:Wj},Uj=it(li,e=>1/(1+Math.exp(-e))),Gj={kernelName:li,backendName:"cpu",kernelFunc:Uj},Hj=it(bl,e=>e<0?-1:e>0?1:0),jj={kernelName:bl,backendName:"cpu",kernelFunc:Hj},qj=it(oi,e=>Math.sin(e)),Kj={kernelName:oi,backendName:"cpu",kernelFunc:qj},Xj=it(yl,e=>Math.sinh(e)),Yj={kernelName:yl,backendName:"cpu",kernelFunc:Xj},Zj=11920928955078125e-23,ET=Math.log(Zj)+2,Jj=it(xl,e=>{let t=e>-ET,n=e{let d=[...u];d[o]=p;let h=Vi({inputs:{x:r},backend:n,attrs:{begin:c,size:d}});return c[o]+=p,h})}var sq={kernelName:vl,backendName:"cpu",kernelFunc:rq},iq=it(ui,e=>Math.sqrt(e)),oq={kernelName:ui,backendName:"cpu",kernelFunc:iq},lq={kernelName:Ic,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;we(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),cq={kernelName:Wr,backendName:"cpu",kernelFunc:uq};function pq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a;we(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=cn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=It({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Vi({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=It({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else{let T=n.bufferSync(v),C=sT(b,T,f,m);x=n.makeTensorInfo(C.shape,C.dtype,C.values)}let N=It({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var dq={kernelName:wl,backendName:"cpu",kernelFunc:pq},hq=it(kl,e=>Math.tan(e)),mq={kernelName:kl,backendName:"cpu",kernelFunc:hq},fq=it(mi,e=>Math.tanh(e)),gq={kernelName:mi,backendName:"cpu",kernelFunc:fq};function yq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;we(r,"tile");let i=oT(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var bq={kernelName:Br,backendName:"cpu",kernelFunc:yq};function xq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;we(r,"topk");let o=n.data.get(r.dataId).values,[l,c]=lT(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var vq={kernelName:Il,backendName:"cpu",kernelFunc:xq};function wq(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;we(s,"unique");let i=a.data.get(s.dataId).values,{outputValues:o,outputShape:l,indices:c}=uT(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var kq={kernelName:jd,backendName:"cpu",kernelFunc:wq};function Iq(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape.length,o=r.shape[s],l=new Array(i-1),c=0;for(let h=0;hn.disposeIntermediateTensorInfo(m)),h}var Sq={kernelName:Nc,backendName:"cpu",kernelFunc:Tq},Cq=[KU,JV,YU,JU,rU,eG,nG,rG,iG,lG,cG,dG,mG,yG,xG,kG,NG,SG,_G,jU,AG,$G,RG,nU,iU,PG,QV,LG,BG,UG,HG,WG,XG,ZG,qG,QG,tH,aH,sH,oH,uH,cH,dH,mH,gH,yH,xH,bH,Tv,zU,wH,IH,FH,oU,$H,uU,LH,BH,WH,pU,GH,jH,KH,YH,JH,hU,t6,eU,a6,zG,s6,o6,u6,BU,fU,d6,m6,yU,g6,x6,w6,N6,S6,_6,xU,F6,D6,M6,O6,z6,E6,V6,G6,wU,j6,X6,Q6,IU,TU,nj,sj,lj,CU,cj,dj,hj,CT,yj,VU,AU,xj,tU,wj,UU,GU,HU,Ij,Tj,Cj,Ej,Fj,$j,Rj,$U,Pj,Lj,Vj,Gj,jj,Kj,Yj,DU,Z6,Qj,tq,aq,sq,oq,lq,MU,cq,dq,OU,B6,mq,gq,bq,vq,_U,kq,Nq,Sq,pj];for(let e of Cq)Sc(e);var Ui={},_v={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function _q(e,t){Ui[e]=t}function rr(e){if(!(e in Ui)){let n=Eq(e);if(n!==null)Ui[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Ui[e];return t.isContextLost()?(delete Ui[e],rr(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Ui[e])}function Aq(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function Eq(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=Aq(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Ui[e]},!1),e===1?t.getContext("webgl",_v)||t.getContext("experimental-webgl",_v):t.getContext("webgl2",_v)}var gp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(gp||(gp={}));var Qn;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(Qn||(Qn={}));var tn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(tn||(tn={}));function yp(e,t){return[t,e]}function Fq(e,t){return e*t}function bp(e){let t=k.sizeFromShape(e),n=Math.ceil(t/4);return k.sizeToSquarishShape(n)}function su(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function $q(e,t){let[n,a]=su(e,t);return n*a*4}function Ev(e,t){let n=e,a,r,s,i,o,l,c,u,p,d;return ee().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,c=4,u=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,c=4,u=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ne(e,t){let n=t();return ee().getBool("DEBUG")&&Dq(e),n}function Dq(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+Rq(e,t))}var Mq=596e-10,Pq=65504;function Oq(e){return!!(ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||Mqe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function Lq(e,t){let n=Nr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function Bq(e,t){let n=Nr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw zq(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var Wq=/ERROR: [0-9]+:([0-9]+):/g;function zq(e,t){let n=Wq.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` +============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Ha().makeTensorFromDataId(a,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){we([e],"where");let t=this.readSync(e.dataId);return eU(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};bv.nextDataId=0;var GN={};Oe(GN,{addImpl:()=>jN,bincountImpl:()=>xv,bincountReduceImpl:()=>qN,ceilImpl:()=>KN,concatImpl:()=>vv,expImpl:()=>XN,expm1Impl:()=>YN,floorImpl:()=>ZN,gatherV2Impl:()=>JN,greaterImpl:()=>QN,lessImpl:()=>eT,linSpaceImpl:()=>tT,logImpl:()=>nT,maxImpl:()=>aT,maximumImpl:()=>rT,minimumImpl:()=>sT,multiplyImpl:()=>wv,negImpl:()=>iT,notEqualImpl:()=>oT,prodImpl:()=>lT,rangeImpl:()=>Iv,rsqrtImpl:()=>uT,simpleAbsImpl:()=>HN,sliceImpl:()=>Dm,squaredDifferenceImpl:()=>cT,stridedSliceImpl:()=>pT,subImpl:()=>dT,tileImpl:()=>hT,topKImpl:()=>mT,transposeImpl:()=>kv,uniqueImpl:()=>fT});function HN(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;we(t,"abs");let a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=HN(r),n.makeOutput(a,t.shape,"float32")},nU={kernelName:_o,backendName:"cpu",kernelFunc:tU};function Rt(e){return(t,n,a,r,s)=>{let i=_.assertAndGetBroadcastShape(t,n),o=i.length,l=k.computeStrides(i),c=k.sizeFromShape(i),u=k.getTypedArrayFromDType(s,c),p=t.length,d=n.length,h=k.computeStrides(t),m=k.computeStrides(n),f=_.getBroadcastDims(t,i),g=_.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yv[C]=0);let x=k.locToIndex(v,p,h),N=b.slice(-d);g.forEach(C=>N[C]=0);let T=k.locToIndex(N,d,m);u[y]=e(a[x],r[T])}return[u,i]}}function Bn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var aU={kernelName:Td,backendName:"cpu",kernelFunc:Bn};function Rm(e,t,n="float32"){if(n==="complex64"){let r=Rm(e,t,"float32"),s=Rm(e,t,"float32");return Bn({inputs:{real:r,imag:s},backend:e})}let a=k.makeZerosTypedArray(k.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function rr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var rU={kernelName:Us,backendName:"cpu",kernelFunc:rr};function Ui(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var sU={kernelName:Hd,backendName:"cpu",kernelFunc:Ui};function us(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return rr({inputs:{x:r},backend:n});let i=Rm(n,r.shape,r.dtype),o=us({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Bn({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Ui({inputs:{input:r},backend:n}),o=us({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=rr({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=k.toTypedArray([0],r.dtype),[l,c]=Rt((u,p)=>u!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var iU={kernelName:As,backendName:"cpu",kernelFunc:us};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;we([i,o],e);let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let c=us({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),u=l.data.get(c.dataId),p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=us({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,v=l.data.get(y.dataId).values,x=l.data.get(b.dataId).values,[N,T,C]=n(i.shape,o.shape,h,m,v,x),F=l.makeTensorInfo(C,"float32",N),$=l.makeTensorInfo(C,"float32",T),P=Bn({inputs:{real:F,imag:$},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(F),l.disposeIntermediateTensorInfo($),P}else{let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}}}function Nv(e){return(t,n,a,r,s,i)=>{let o=_.assertAndGetBroadcastShape(t,n),l=k.sizeFromShape(o),c=o.length,u=k.computeStrides(o),p=k.getTypedArrayFromDType("float32",l),d=k.getTypedArrayFromDType("float32",l),h=_.getBroadcastDims(t,o),m=_.getBroadcastDims(n,o),f=_.mergeRealAndImagArrays(a,r),g=_.mergeRealAndImagArrays(s,i),y=t.length,b=k.computeStrides(t),v=n.length,x=k.computeStrides(n);if(h.length+m.length===0)for(let N=0;NC[W]=0);let F=k.locToIndex(C,y,b),$=T.slice(-v);m.forEach(W=>$[W]=0);let P=k.locToIndex($,v,x),B=e(f[F*2],f[F*2+1],g[P*2],g[P*2+1]);p[N]=B.real,d[N]=B.imag}return[p,d,o]}}var jN=Rt((e,t)=>e+t),oU=Nv((e,t,n,a)=>({real:e+n,imag:t+a})),gp=Zt(zr,jN,oU),lU={kernelName:zr,backendName:"cpu",kernelFunc:gp};function xv(e,t,n,a,r){let s=k.sizeFromShape(a),i=k.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function qN(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,c):t.size>0?i.set(i.get(o,c)+t.get(o,l),o,c):i.set(i.get(o,c)+1,o,c))}return i}function tu(e){return(t,n,a)=>{let r=k.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=k.sizeFromShape(i.shape),u=n||i.dtype,p=k.getArrayFromDType(u,c);for(let d=0;d{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=n||i.dtype,u=t(l,c,r);return o.makeTensorInfo(i.shape,c,u)}}var KN=tu(e=>Math.ceil(e)),uU=nu(Fs,KN),cU={kernelName:Fs,backendName:"cpu",kernelFunc:uU};function vv(e,t,n,a){let r=k.getArrayFromDType(n,k.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=k.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?_.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let c=0;cMath.exp(e)),gT=nu(Ls,XN),pU={kernelName:Ls,backendName:"cpu",kernelFunc:gT},YN=tu(e=>Math.expm1(e)),dU=nu(Go,YN),hU={kernelName:Go,backendName:"cpu",kernelFunc:dU},ZN=tu(e=>Math.floor(e)),mU=nu(zs,ZN),fU={kernelName:zs,backendName:"cpu",kernelFunc:mU};function JN(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),gU=Zt(Ko,QN,null,"bool"),yU={kernelName:Ko,backendName:"cpu",kernelFunc:gU},eT=Rt((e,t)=>eMath.log(e)),vU=nu(Hs,nT),wU={kernelName:Hs,backendName:"cpu",kernelFunc:vU};function aT(e,t,n,a){let r=k.getTypedArrayFromDType(a,k.sizeFromShape(n));for(let s=0;so&&(o=c)}r[s]=o}return r}var rT=Rt((e,t)=>Math.max(e,t)),kU=Zt(qs,rT),IU={kernelName:qs,backendName:"cpu",kernelFunc:kU},sT=Rt((e,t)=>Math.min(e,t)),NU=Zt(Zs,sT),TU={kernelName:Zs,backendName:"cpu",kernelFunc:NU},wv=Rt((e,t)=>e*t),SU=Nv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Tv=Zt(Js,wv,SU),CU={kernelName:Js,backendName:"cpu",kernelFunc:Tv};function iT(e,t,n){let a=k.createScalarValue(-1,n);return wv([],t,a,e,n)}function _U(e){let{inputs:t,backend:n}=e,{x:a}=t;we(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=iT(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var EU={kernelName:al,backendName:"cpu",kernelFunc:_U},oT=Rt((e,t)=>e!==t?1:0),AU=Zt(rl,oT,null,"bool"),FU={kernelName:rl,backendName:"cpu",kernelFunc:AU};function kv(e,t,n,a,r){let s=t.length,i=k.sizeFromShape(t),o=k.computeStrides(t),l=k.computeStrides(r),c=k.getTypedArrayFromDType(n,k.sizeFromShape(r));for(let u=0;un.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var RU={kernelName:cl,backendName:"cpu",kernelFunc:DU};function Iv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return k.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=k.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),MU=nu(li,uT),PU={kernelName:li,backendName:"cpu",kernelFunc:MU};function Dm(e,t,n,a,r){let s=cn.isSliceContinous(a,t,n),i=k.sizeFromShape(n),o=k.computeStrides(a);if(s){let p=cn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?_.fromUint8ToStringArray(e):e,c=Le(a,r,l),u=Le(n,r);for(let p=0;pm+t[f]);u.set(c.get(...h),...d)}return r==="string"?_.fromStringArrayToUint8(u.values):u.values}function Gi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;we(r,"slice");let[o,l]=cn.parseSliceParams(r,s,i);cn.assertParamsValid(r,o,l);let c=n.data.get(r.dataId).values,u=Dm(c,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}var OU={kernelName:gl,backendName:"cpu",kernelFunc:Gi},cT=Rt((e,t)=>{let n=e-t;return n*n}),LU=Zt(mi,cT),zU={kernelName:mi,backendName:"cpu",kernelFunc:LU};function pT(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),BU=Nv((e,t,n,a)=>({real:e-n,imag:t-a})),Sv=Zt(fi,dT,BU),WU={kernelName:fi,backendName:"cpu",kernelFunc:Sv};function hT(e,t){let n=new Array(e.rank);for(let r=0;rv.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=c.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew bv,1);var yT=it(Bo,e=>e>=0?e:Math.exp(e)-1),UU={kernelName:Bo,backendName:"cpu",kernelFunc:yT};function bT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;we([r],"leakyRelu");let i=k.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=k.getTypedArrayFromDType("float32",i);for(let c=0;ce<0?t*e:e);function xT(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;we([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=HU(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var jU={kernelName:ni,backendName:"cpu",kernelFunc:xT},vT=it(ai,e=>Math.max(0,e)),qU={kernelName:ai,backendName:"cpu",kernelFunc:vT},wT=it(si,e=>Math.min(Math.max(0,e),6)),KU={kernelName:si,backendName:"cpu",kernelFunc:wT};function Cv(e,t,n,a,r){if(n==="linear")return rr({inputs:{x:t},backend:e});if(n==="relu")return vT({inputs:{x:t},backend:e});if(n==="elu")return yT({inputs:{x:t},backend:e});if(n==="relu6")return wT({inputs:{x:t},backend:e});if(n==="prelu")return xT({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return bT({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function It(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=k.sizeFromShape(r.shape),o=k.inferFromImplicitShape(s,i),l=k.sizeFromShape(o);k.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let c=n.data.get(r.dataId);if(c.complexTensorInfos!=null){let u=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;u.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var XU={kernelName:dl,backendName:"cpu",kernelFunc:It};function kT(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;we([r,s],"matMul");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=It({inputs:{x:r},backend:n,attrs:{shape:x}}),C=It({inputs:{x:s},backend:n,attrs:{shape:N}}),F=i?T.shape[1]:T.shape[2],$=i?T.shape[2]:T.shape[1],P=o?C.shape[1]:C.shape[2],B=Math.max(g,y),W=n.data.get(T.dataId).values,G=n.data.get(C.dataId).values,q=k.computeStrides(T.shape),j=k.computeStrides(C.shape),[X,K,ne]=i?[q[0],1,q[1]]:[q[0],q[1],1],[J,se,Q]=o?[1,j[1],j[0]]:[j[1],1,j[0]],oe=$*P,ae=Le([B,$,P],T.dtype),pe=ae.values,ue=n.blockSize;for(let ge=0;geMath.acos(e)),eG={kernelName:Eo,backendName:"cpu",kernelFunc:QU},tG=it(Ao,e=>Math.acosh(e)),nG={kernelName:Ao,backendName:"cpu",kernelFunc:tG};function aG(e){let{inputs:t,backend:n}=e,a=t;we(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=N,v=x)}h[g]=v}return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var cG={kernelName:Cs,backendName:"cpu",kernelFunc:uG};function pG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;we(r,"argMin");let i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=ya({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],_.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[u,p]=_.computeOutAndReduceShapes(l.shape,i),d=k.sizeFromShape(u),h=k.makeZerosTypedArray(d,"int32"),m=k.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var dG={kernelName:oc,backendName:"cpu",kernelFunc:pG},hG=it(Fo,e=>Math.asin(e)),mG={kernelName:Fo,backendName:"cpu",kernelFunc:hG},fG=it($o,e=>Math.asinh(e)),gG={kernelName:$o,backendName:"cpu",kernelFunc:fG},yG=it(Do,e=>Math.atan(e)),bG={kernelName:Do,backendName:"cpu",kernelFunc:yG},xG=Rt((e,t)=>Math.atan2(e,t)),vG=Zt(Mo,xG),wG={kernelName:Mo,backendName:"cpu",kernelFunc:vG},kG=it(Ro,e=>Math.atanh(e)),IG={kernelName:Ro,backendName:"cpu",kernelFunc:kG};function _v(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,u=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],v=r.outShape[3];for(let x=0;xK?K=ue:s==="avg"&&(ne+=ue,J++)}if(isNaN(K))break}let se=W+G*v+C;g[se]=s==="avg"?ne/J:K}}}return f}function IT(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,c=a.dilationHeight,u=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gP&&(P=X,r?B=s?((g*a.inHeight+W)*a.inWidth+q)*a.inChannels+y:(W*a.inWidth+q)*a.inChannels+y:B=G*d+j)}}i.set(B,g,b,T,y)}}return i}function NT(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,c=r.dilationDepth,u=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Le(r.outShape,n),x=v.values,N=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],F=r.outShape[4];for(let $=0;$ke?ke=pt:s==="avg"&&(Se+=pt,Ce++),isNaN(ke))break}if(isNaN(ke))break}if(isNaN(ke))break}let Re=ye+W;x[Re]=s==="avg"?Se/Ce:ke}}}}return v}function NG(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,u=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=G&&(G=Q,q=X*u*p+ne*u+se)}}}n.set(q,f,y,N,$,g)}}}return n}function TG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;we(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=rr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=_v(d,r.shape,r.dtype,h,u,"avg");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var SG={kernelName:_s,backendName:"cpu",kernelFunc:TG};function CG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"avgPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=NT(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var _G={kernelName:lc,backendName:"cpu",kernelFunc:CG};function EG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"avgPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=u.strideDepth,d=u.strideHeight,h=u.strideWidth,m=u.filterDepth,f=u.filterHeight,g=u.filterWidth,y=u.dilationDepth,b=u.dilationHeight,v=u.dilationWidth,x=u.effectiveFilterDepth,N=u.effectiveFilterHeight,T=u.effectiveFilterWidth,C=x-1-u.padInfo.front,F=T-1-u.padInfo.left,$=N-1-u.padInfo.top,P=Le(s.shape,"float32"),B=1/(m*f*g),W=n.bufferSync(r);for(let G=0;G=u.outDepth||Math.floor(ae)!==ae))for(let pe=0;pe=u.outHeight||Math.floor(ue)!==ue))for(let ge=0;ge=u.outWidth||Math.floor(ye)!==ye||(Q+=W.get(G,ae,ue,ye,q))}}}P.set(Q*B,G,j,X,K,q)}return n.makeTensorInfo(P.shape,P.dtype,P.values)}var AG={kernelName:Id,backendName:"cpu",kernelFunc:EG};function FG(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;we([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=u.strideHeight,d=u.strideWidth,h=u.filterHeight,m=u.filterWidth,f=u.dilationHeight,g=u.dilationWidth,y=u.effectiveFilterHeight,b=u.effectiveFilterWidth,v=b-1-u.padInfo.left,x=y-1-u.padInfo.top,N=Le(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,F=Le(r.shape,"float32",C);for(let $=0;$=u.outHeight||Math.floor(K)!==K))for(let ne=0;ne=u.outWidth||Math.floor(J)!==J||(j+=F.get($,K,J,P))}}N.set(j*T,$,B,W,P)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}var $G={kernelName:kd,backendName:"cpu",kernelFunc:FG};function DG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;k.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),we([r,o,l,s,i],"batchNorm");let{varianceEpsilon:c}=a;c==null&&(c=.001);let u=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(u.length),g=m.length,y=h.length,b=d.length,v=p.length,x=0,N=0,T=0,C=0;for(let F=0;F=g&&(x=0),N>=v&&(N=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var RG={kernelName:Ws,backendName:"cpu",kernelFunc:DG};function MG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;we([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=It({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ya({inputs:{x:h},backend:n,attrs:{perm:c}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Gi({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var PG={kernelName:uc,backendName:"cpu",kernelFunc:MG};function OG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,c=xv(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var LG={kernelName:Nd,backendName:"cpu",kernelFunc:OG},zG=it(Br,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let c=0;cf.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>k.sizeFromShape(f.shape)>0);if(o.length===1)return rr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(_.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(x=>Ui({inputs:{input:x},backend:n})),g=o.map(x=>au({inputs:{input:x},backend:n})),y=ru({inputs:f,backend:n,attrs:{axis:s}}),b=ru({inputs:g,backend:n,attrs:{axis:s}}),v=Bn({inputs:{real:y,imag:b},backend:n});return f.forEach(x=>n.disposeIntermediateTensorInfo(x)),g.forEach(x=>n.disposeIntermediateTensorInfo(x)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),v}let c=o.map(f=>{let g=k.sizeFromShape(f.shape.slice(s));return It({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),u=c.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=_.computeOutShape(c.map(f=>f.shape),1);let p=c[0].shape[0]===1,d=vv(u,i,t[0].dtype,p),h=_.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return c.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var GG={kernelName:Po,backendName:"cpu",kernelFunc:ru};function TT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a;we([r,s],"conv2d");let p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,v=d.dataFormat==="channelsLast",x=new Ot(d.outShape,r.dtype),N=k.computeStrides(r.shape),T=k.computeStrides(s.shape),C=N[0],F=v?N[1]:N[2],$=v?N[2]:1,P=v?1:N[1],B=x.strides[0],W=v?x.strides[1]:x.strides[2],G=v?x.strides[2]:1,q=v?1:x.strides[1],j=n.data.get(r.dataId).values,X=n.data.get(s.dataId).values,K=x.values;for(let ne=0;ne=d.inHeight)continue;let ge=pe*T[0],ye=J+ue*F;for(let ke=0;ke=d.inWidth)continue;let Ve=ge+Re*T[1],rt=ye+Ke*$,ot=Ve;for(let He=0;He=c.inDepth)continue;let ne=X*$[0],J=B+K*F[1];for(let se=0;se=c.inHeight)continue;let ue=ne+ae*$[1],ge=J+pe*F[2];for(let ye=0;ye=c.inWidth)continue;let Ke=ue+Ce*$[2],Ve=ge+Re*c.inChannels,rt=Ke;for(let ot=0;otMath.cos(e)),aH={kernelName:Rs,backendName:"cpu",kernelFunc:nH},rH=it(Oo,e=>Math.cosh(e)),sH={kernelName:Oo,backendName:"cpu",kernelFunc:rH};function iH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,[u,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,x=n.data.get(r.dataId).values,N=k.computeStrides(r.shape),T=k.computeStrides(y.shape);for(let C=0;C=u)continue;let q=f>1?(B-$)*(p-1)/(f-1):0,j=g>1?(W-P)*(d-1)/(g-1):0;for(let X=0;X1?$*(p-1)+X*q:.5*($+B)*(p-1);if(K<0||K>p-1){for(let ne=0;ne1?P*(d-1)+Q*j:.5*(P+W)*(d-1);if(oe<0||oe>d-1){for(let ge=0;ge1?P*(d-1)+ne*j:.5*(P+W)*(d-1);if(J<0||J>d-1){for(let oe=0;oey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],c=r.shape[2],u=r.shape[3],p=l*s,d=c*s,h=u/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=_.computeConv2DInfo(r.shape,s.shape,i,d,o,c,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,v=b.left,x=b.top,N=h.outChannels/h.inChannels,T=new Ot(h.outShape,r.dtype),C=n.data.get(r.dataId).values,F=n.data.get(s.dataId).values,$=T.values;for(let P=0;P=h.inHeight)continue;let ne=X*p[0],J=B+K*u[1];for(let se=0;se=h.inWidth)continue;let ue=ne+ae*p[1],ge=J+pe*h.inChannels,ye=Q,ke=ue;for(let Se=0;Se{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,c=l.data.get(a.dataId).values,u=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:x,strideWidth:N,filterHeight:T,filterWidth:C,dilationHeight:F,dilationWidth:$,outShape:P}=_.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),B=k.sizeFromShape(P),W=P.length,G=k.getArrayFromDType(a.dtype,B);for(let q=0;q=0&&ae=0&&uese&&(se=ke)}}}let Q=k.locToIndex([q,j,K,J],W,k.computeStrides(P));G[Q]=se}}}return{dataId:l.write(k.toTypedArray(G,a.dtype),P,a.dtype),shape:P,dtype:a.dtype}}},kH={kernelName:Rd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:F,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===$.length,()=>`Error in ${Rd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let P=k.toNestedArray($,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(r.shape,r.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=Q,se=ae)}}}B[J][se][K]+=P[W][G][j][K]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},IH={kernelName:Dd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:F,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===$.length,()=>`Error in ${Dd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let P=k.toNestedArray($,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(a.shape,a.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=oe,se=pe)}}}B[W][J][se][K]+=P[W][G][j][K]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function NH(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;we([a,r],"eluGrad");let s=new Float32Array(k.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(c+1)}return n.makeTensorInfo(r.shape,"float32",s)}var TH={kernelName:Md,backendName:"cpu",kernelFunc:NH},SH=Rt((e,t)=>e===t?1:0),CT=Zt(Vo,SH,null,"bool"),CH={kernelName:Vo,backendName:"cpu",kernelFunc:CT},_H=_.ERF_P,EH=_.ERF_A1,AH=_.ERF_A2,FH=_.ERF_A3,$H=_.ERF_A4,DH=_.ERF_A5,RH=it(Wo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+_H*n);return t*(1-((((DH*a+$H)*a+FH)*a+AH)*a+EH)*a*Math.exp(-n*n))}),MH={kernelName:Wo,backendName:"cpu",kernelFunc:RH};function Mm(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),It({inputs:{x:r},backend:n,attrs:{shape:o}})}var PH={kernelName:Uo,backendName:"cpu",kernelFunc:Mm},OH=Rt((e,t)=>e/t),Ev=Zt(Os,OH),Av={kernelName:Os,backendName:"cpu",kernelFunc:Ev};function _T(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[r,s],u=k.sizeFromShape(c),p=k.getTypedArrayFromDType("float32",u),d=k.getTypedArrayFromDType("float32",u);for(let g=0;g{let{image:a}=e,r=n,s=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[i,o,l,c]=a.shape,u=r.data.get(a.dataId).values;for(let p=0;p=0&&vMath.floor(e/t)),qH=Zt(Bs,jH,null,"int32"),KH={kernelName:Bs,backendName:"cpu",kernelFunc:qH};function XH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=TT({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=gp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Cv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var YH={kernelName:xi,backendName:"cpu",kernelFunc:XH};function ZH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=ST({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=gp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Cv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var JH={kernelName:vi,backendName:"cpu",kernelFunc:ZH};function QH(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=k.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,c,u,p]=_.prepareAndValidate(a,r);if(c===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([c,u],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/u)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),r6=Zt(Vs,a6,null,"bool"),s6={kernelName:Vs,backendName:"cpu",kernelFunc:r6};function i6(e){let{inputs:t,backend:n}=e,{input:a}=t,r=k.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=It({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=_T(o,!0,n),c=It({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),c}var o6={kernelName:Od,backendName:"cpu",kernelFunc:i6},l6=it(Xo,e=>Number.isFinite(e)?1:0,"bool"),u6={kernelName:Xo,backendName:"cpu",kernelFunc:l6},c6=it(Yo,e=>Math.abs(e)===Infinity?1:0,"bool"),p6={kernelName:Yo,backendName:"cpu",kernelFunc:c6},d6=it(Zo,e=>Number.isNaN(e)?1:0,"bool"),h6={kernelName:Zo,backendName:"cpu",kernelFunc:d6},m6=Rt((e,t)=>e<=t?1:0),f6=Zt(Qo,m6,null,"bool"),g6={kernelName:Qo,backendName:"cpu",kernelFunc:f6};function y6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=tT(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var b6={kernelName:zd,backendName:"cpu",kernelFunc:y6},x6=it(el,e=>Math.log1p(e)),v6={kernelName:el,backendName:"cpu",kernelFunc:x6},w6=Rt((e,t)=>e&&t),k6=Zt(tl,w6,null,"bool"),I6={kernelName:tl,backendName:"cpu",kernelFunc:k6},N6=it(mc,e=>e?0:1,"bool"),T6={kernelName:mc,backendName:"cpu",kernelFunc:N6},S6=Rt((e,t)=>e||t),C6=Zt(fc,S6,null,"bool"),_6={kernelName:fc,backendName:"cpu",kernelFunc:C6};function E6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;we(r,"LRN");let c=r.shape[3],u=c-1,p=n.data.get(r.dataId).values,d=k.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%c,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,u),v=0;for(;y<=b;y++){let x=p[y];v+=x*x}return v}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=rr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=_v(d,r.shape,r.dtype,h,u,"max");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var M6={kernelName:Ks,backendName:"cpu",kernelFunc:R6};function P6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"maxPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=NT(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var O6={kernelName:yc,backendName:"cpu",kernelFunc:P6};function L6(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"maxPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=n.bufferSync(s),d=NG(p,u),h=u.strideDepth,m=u.strideHeight,f=u.strideWidth,g=u.dilationDepth,y=u.dilationHeight,b=u.dilationWidth,v=u.effectiveFilterDepth,x=u.effectiveFilterHeight,N=u.effectiveFilterWidth,T=v-1-u.padInfo.front,C=N-1-u.padInfo.left,F=x-1-u.padInfo.top,$=Le(s.shape,"float32"),P=n.bufferSync(r);for(let B=0;B=u.outDepth||Math.floor(Q)!==Q))for(let oe=0;oe=u.outHeight||Math.floor(ae)!==ae))for(let pe=0;pe=u.outWidth||Math.floor(ue)!==ue)continue;let ge=v*x*N-1-d.get(B,Q,ae,ue,W),ye=se*x*N+oe*N+pe,ke=ge===ye?1:0;ke!==0&&(J+=P.get(B,Q,ae,ue,W)*ke)}}}$.set(J,B,G,q,j,W)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var z6={kernelName:Vd,backendName:"cpu",kernelFunc:L6};function B6(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;we([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,IT(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,v=d.effectiveFilterHeight,x=d.effectiveFilterWidth,N=x-1-d.padInfo.left,T=v-1-d.padInfo.top,C=Le(o.shape,"float32"),F=n.data.get(r.dataId).values,$=Le(r.shape,"float32",F);for(let P=0;P=d.outHeight||Math.floor(ne)!==ne))for(let J=0;J=d.outWidth||Math.floor(se)!==se)continue;let Q=v*x-1-m.get(P,ne,se,B),oe=K*x+J,ae=Q===oe?1:0;ae!==0&&(X+=$.get(P,ne,se,B)*ae)}}C.set(X,P,W,G,B)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var W6={kernelName:Wd,backendName:"cpu",kernelFunc:B6};function V6(e,t,n,a,r){let s=k.computeStrides(t),i=_v(e,t,n,s,r,"max"),o=IT(e,t,n,r,!0,a);return[i.values,o.values]}var U6={kernelName:Ud,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;we(a,"MaxPoolWithArgmax");let c=l.data.get(a.dataId).values,u=_.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=V6(c,a.shape,a.dtype,o,u),h=l.write(p,u.outShape,a.dtype),m=l.write(d,u.outShape,a.dtype);return[{dataId:h,shape:u.outShape,dtype:a.dtype},{dataId:m,shape:u.outShape,dtype:"int32"}]}};function Pm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"sum");let o;r.dtype==="bool"?o=us({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=rr({inputs:{x:r},backend:n});let l=o.shape.length,c=k.parseAxisParam(s,o.shape),u=_.getAxesPermutation(c,l),p=c,d=o;u!=null&&(d=ya({inputs:{x:o},backend:n,attrs:{perm:u}}),p=_.getInnerMostAxes(p.length,l)),_.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=_.computeOutAndReduceShapes(d.shape,p),f=_.upcastType(d.dtype,"int32"),g=Rm(n,h,f),y=k.sizeFromShape(m),b=n.data.get(g.dataId).values,v=n.data.get(d.dataId).values;for(let x=0;xn.disposeIntermediateTensorInfo(f)),m}var j6={kernelName:Xs,backendName:"cpu",kernelFunc:H6};function q6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"min");let o=k.parseAxisParam(s,r.shape),l=o,c=_.getAxesPermutation(l,r.shape.length),u=r;c!=null&&(u=ya({inputs:{x:r},backend:n,attrs:{perm:c}}),l=_.getInnerMostAxes(l.length,r.shape.length)),_.assertAxesAreInnerMostDims("min",l,u.shape.length);let[p,d]=_.computeOutAndReduceShapes(u.shape,l),h=k.sizeFromShape(d),m=k.makeZerosTypedArray(k.sizeFromShape(p),u.dtype),f=n.data.get(u.dataId).values;for(let y=0;yb[0]+r.shape[v]+b[1]),l=s.map(b=>b[0]),c=s.map((b,v)=>b[0]+r.shape[v]),u=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=k.computeStrides(r.shape),m=k.sizeFromShape(o),f=o.length,g=k.computeStrides(o),y=k.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=c[N]&&(v[N]=(c[N]-1)*2-v[N]+u);v=v.map((N,T)=>N-l[T]);let x=k.locToIndex(v,d,h);y[b]=p[x]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var Y6={kernelName:bc,backendName:"cpu",kernelFunc:X6},Z6=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),J6=Zt(nl,Z6),Q6={kernelName:nl,backendName:"cpu",kernelFunc:J6},ej=To(fd());function AT(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=k.parseAxisParam([o],r.shape),c=ET({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),u=_.expandShapeToKeepDim(c.shape,l),p=It({inputs:{x:c},backend:n,attrs:{shape:u}}),d=Sv({inputs:{a:r,b:p},backend:n}),h=gT({inputs:{x:d},backend:n}),m=Pm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Ev({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var tj={kernelName:hi,backendName:"cpu",kernelFunc:AT};function nj(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;we(r,"multinomial");let l=o?r:AT({inputs:{logits:r},backend:n,attrs:{dim:-1}}),c=l.shape[0],u=l.shape[1],p=n.data.get(l.dataId).values,d=[c,s],h=k.makeZerosTypedArray(k.sizeFromShape(d),"int32");for(let m=0;m=0&&u[p]{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Mm({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=ru({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var yj={kernelName:ul,backendName:"cpu",kernelFunc:$T};function bj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;we(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),c=n.data.get(r.dataId).values,u=k.sizeFromShape(r.shape),p=r.shape.length,d=k.computeStrides(r.shape),h=k.sizeFromShape(o),m=o.length,f=k.computeStrides(o),g=k.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yx+l[N]),v=k.locToIndex(b,m,f);g[v]=c[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var DT={kernelName:ei,backendName:"cpu",kernelFunc:bj},xj=Rt((e,t)=>Math.pow(e,t)),vj=Zt(ti,xj),wj={kernelName:ti,backendName:"cpu",kernelFunc:vj};function kj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=Iv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var Ij={kernelName:xc,backendName:"cpu",kernelFunc:kj},Nj=it(pl,e=>1/e),Tj={kernelName:pl,backendName:"cpu",kernelFunc:Nj};function Sj(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;we(r,"resizeBilinear");let l=k.computeStrides(r.shape),[c,u]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(k.sizeFromShape([p,c,u,m])),y=[s&&c>1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=0,x=y[0]/b[0],N=y[1]/b[1];for(let T=0;T1?c-1:c,i&&h>1?u-1:u],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],v=n.data.get(s.dataId).values,x=0;for(let N=0;N1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=y[0]/b[0],x=y[1]/b[1],N=0;for(let T=0;T1?u-1:u,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],v=y[0]/b[0],x=y[1]/b[1],N=1/v,T=1/x,C=Math.ceil(N)*2+2,F=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let ae=P+oe*l[1],pe=oe*v,ue=Math.min(u-1,i?Math.round(pe):Math.floor(pe));if(B===ue)for(let ge=0;ge=m)continue;let ke=ae+ye*l[2],Se=ye*x,Ce=Math.min(p-1,i?Math.round(Se):Math.floor(Se));j===Ce&&(se+=g[ke+J])}}f[X+J]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var Dj={kernelName:jd,backendName:"cpu",kernelFunc:$j};function Rj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;we(r,"reverse");let i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return rr({inputs:{x:r},backend:n});let l=new Ot(r.shape,r.dtype),c=n.bufferSync(r);for(let u=0;ud[h]=r.shape[h]-1-d[h]),l.set(c.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var Mj={kernelName:ii,backendName:"cpu",kernelFunc:Rj},Pj={kernelName:Sl,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[c,u,p,d]=a.shape,[h,m]=_.getImageCenter(i,u,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let v=0;v=0&&G=0&&q{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),Lj={kernelName:oi,backendName:"cpu",kernelFunc:Oj};function RT(e,t,n,a,r,s,i,o,l,c){let u=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(u,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:k.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?Gj*e:Uj*(Math.exp(e)-1)),jj={kernelName:fl,backendName:"cpu",kernelFunc:Hj},qj=it(ci,e=>1/(1+Math.exp(-e))),Kj={kernelName:ci,backendName:"cpu",kernelFunc:qj},Xj=it(bl,e=>e<0?-1:e>0?1:0),Yj={kernelName:bl,backendName:"cpu",kernelFunc:Xj},Zj=it(ui,e=>Math.sin(e)),Jj={kernelName:ui,backendName:"cpu",kernelFunc:Zj},Qj=it(yl,e=>Math.sinh(e)),eq={kernelName:yl,backendName:"cpu",kernelFunc:Qj},tq=11920928955078125e-23,MT=Math.log(tq)+2,nq=it(xl,e=>{let t=e>-MT,n=e{let d=[...u];d[o]=p;let h=Gi({inputs:{x:r},backend:n,attrs:{begin:c,size:d}});return c[o]+=p,h})}var uq={kernelName:vl,backendName:"cpu",kernelFunc:lq},cq=it(pi,e=>Math.sqrt(e)),pq={kernelName:pi,backendName:"cpu",kernelFunc:cq},dq={kernelName:kc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;we(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),mq={kernelName:Vr,backendName:"cpu",kernelFunc:hq};function fq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a;we(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=cn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=It({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Gi({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=It({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else{let T=n.bufferSync(v),C=pT(b,T,f,m);x=n.makeTensorInfo(C.shape,C.dtype,C.values)}let N=It({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var gq={kernelName:wl,backendName:"cpu",kernelFunc:fq},yq=it(kl,e=>Math.tan(e)),bq={kernelName:kl,backendName:"cpu",kernelFunc:yq},xq=it(gi,e=>Math.tanh(e)),vq={kernelName:gi,backendName:"cpu",kernelFunc:xq};function wq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;we(r,"tile");let i=hT(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var kq={kernelName:Wr,backendName:"cpu",kernelFunc:wq};function Iq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;we(r,"topk");let o=n.data.get(r.dataId).values,[l,c]=mT(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var Nq={kernelName:Il,backendName:"cpu",kernelFunc:Iq};function Tq(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;we(s,"unique");let i=a.data.get(s.dataId).values,{outputValues:o,outputShape:l,indices:c}=fT(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var Sq={kernelName:Xd,backendName:"cpu",kernelFunc:Tq};function Cq(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape.length,o=r.shape[s],l=new Array(i-1),c=0;for(let h=0;hn.disposeIntermediateTensorInfo(m)),h}var Aq={kernelName:Ic,backendName:"cpu",kernelFunc:Eq},Fq=[JU,nU,eG,nG,lU,rG,iG,lG,cG,dG,mG,gG,bG,wG,IG,SG,_G,AG,$G,YU,RG,PG,LG,iU,cU,BG,aU,VG,GG,qG,XG,HG,QG,tH,ZG,aH,sH,oH,uH,pH,hH,mH,gH,bH,vH,wH,IH,kH,Av,UU,TH,CH,MH,pU,PH,hU,VH,GH,HH,fU,KH,YH,JH,e6,n6,yU,s6,rU,o6,UG,u6,p6,h6,GU,xU,g6,b6,wU,v6,I6,T6,_6,A6,$6,IU,M6,O6,z6,W6,U6,D6,j6,K6,TU,Y6,Q6,aj,CU,EU,ij,uj,dj,FU,mj,gj,yj,DT,wj,jU,RU,Ij,sU,Tj,qU,KU,XU,Cj,Ej,Fj,Dj,Mj,Pj,Lj,PU,Bj,Vj,jj,Kj,Yj,Jj,eq,OU,tj,aq,sq,oq,uq,pq,dq,zU,mq,gq,WU,G6,bq,vq,kq,Nq,$U,Sq,_q,Aq,fj];for(let e of Fq)Tc(e);var Hi={},Dv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function $q(e,t){Hi[e]=t}function sr(e){if(!(e in Hi)){let n=Dq(e);if(n!==null)Hi[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Hi[e];return t.isContextLost()?(delete Hi[e],sr(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Hi[e])}function Rq(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function Dq(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=Rq(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Hi[e]},!1),e===1?t.getContext("webgl",Dv)||t.getContext("experimental-webgl",Dv):t.getContext("webgl2",Dv)}var yp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(yp||(yp={}));var Qn;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(Qn||(Qn={}));var tn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(tn||(tn={}));function bp(e,t){return[t,e]}function Mq(e,t){return e*t}function xp(e){let t=k.sizeFromShape(e),n=Math.ceil(t/4);return k.sizeToSquarishShape(n)}function su(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function Pq(e,t){let[n,a]=su(e,t);return n*a*4}function Rv(e,t){let n=e,a,r,s,i,o,l,c,u,p,d;return ee().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,c=4,u=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,c=4,u=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ne(e,t){let n=t();return ee().getBool("DEBUG")&&Oq(e),n}function Oq(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+Lq(e,t))}var zq=596e-10,Bq=65504;function Wq(e){return!!(ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||zqe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function Vq(e,t){let n=Tr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function Gq(e,t){let n=Tr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Uq(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var Hq=/ERROR: [0-9]+:([0-9]+):/g;function Uq(e,t){let n=Hq.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` `),s=r.length.toString().length+2,i=r.map((p,d)=>k.rightPad((d+1).toString(),s)+p),o=0;for(let p=0;pe.createProgram(),"Unable to create WebGLProgram.")}function Uq(e,t){if(Ne(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Av(e,t){if(Ne(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function Gq(e,t){let n=Nr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function Hq(e,t){let n=Nr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function jq(e){return Nr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function qq(e,t){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function Kq(e){return Nr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function AT(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ne(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ne(e,()=>e.enableVertexAttribArray(o)),!0)}function Yq(e,t,n){Xq(e,n),Ne(e,()=>e.activeTexture(e.TEXTURE0+n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function Zq(e,t,n){return Nr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function Jq(e,t,n){return e.getUniformLocation(t,n)}function Qq(e,t,n,a){Ne(e,()=>Yq(e,t,a)),Ne(e,()=>e.uniform1i(n,a))}function Fv(e,t,n){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function FT(e,t){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Pm(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+e5(e,t))}function e5(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Nr(e,t,n){let a=Ne(e,()=>t());if(a==null)throw new Error(n);return a}function Xq(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function iu(e,t=2){return k.sizeFromShape(e.slice(0,e.length-t))}function ou(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function $v(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[iu(e),...ou(e)]),t}function t5(e,t=!1){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?k.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=k.squeezeShape(e).newShape);let a=k.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=iu(e),s=2,i=2;return e.length&&([s,i]=ou(e)),a=r*(s/2)*(i/2),k.sizeToSquarishShape(a).map(o=>o*2)}return k.sizeToSquarishShape(a)}function Om(e){return e%2==0}function Lm(e,t){if(e=e.slice(-2),t=t.slice(-2),k.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||Om(n)&&Om(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Om(e[0])&&Om(t[0])}var Dv,Rv;function n5(e){if(Dv==null){let t=rr(e);Dv=t.getParameter(t.MAX_TEXTURE_SIZE)}return Dv}function a5(e){if(Rv==null){let t=rr(e);Rv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Rv)}function r5(e){if(e===0)return 0;let t,n=rr(e);return ya(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ya(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ya(e,t){return e.getExtension(t)!=null}function $T(e){try{if(rr(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function s5(e){if(e===0)return!1;let t=rr(e);if(e===1){if(!ya(t,"OES_texture_float"))return!1}else if(!ya(t,"EXT_color_buffer_float"))return!1;return Mv(t)}function o5(e){if(e===0)return!1;let t=rr(e);if(e===1){if(!ya(t,"OES_texture_float")||!ya(t,"WEBGL_color_buffer_float"))return!1}else{if(ya(t,"EXT_color_buffer_float"))return Mv(t);let n="EXT_color_buffer_half_float";if(ya(t,n)){let a=t.getExtension(n);return i5(t,a)}return!1}return Mv(t)}function Mv(e){let t=Ev(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function i5(e,t){let n=Ev(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function l5(e){return e!==2?!1:rr(e).fenceSync!=null}function xp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ee=ee();Ee.registerFlag("HAS_WEBGL",()=>Ee.getNumber("WEBGL_VERSION")>0);Ee.registerFlag("WEBGL_VERSION",()=>$T(2)?2:$T(1)?1:0);Ee.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ee.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ee.get("WEBGL_VERSION")===2);Ee.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ee.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ee.registerFlag("WEBGL_PACK",()=>Ee.getBool("HAS_WEBGL"));Ee.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_CLIP",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ee.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_REDUCE",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_CONV_IM2COL",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>n5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>a5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ee.getNumber("WEBGL_VERSION");return e===0?0:r5(e)});Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ee.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!eh.isMobile());Ee.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>s5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ee.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ee.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ee.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>o5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_FENCE_API_ENABLED",()=>l5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ee.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ee.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});function hn(){let e,t,n,a,r,s,i,o,l,c;return ee().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` +`))}function jq(e){return Tr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function qq(e,t){if(Ne(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Mv(e,t){if(Ne(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function Kq(e,t){let n=Tr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function Xq(e,t){let n=Tr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function Yq(e){return Tr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function Zq(e,t){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function Jq(e){return Tr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function PT(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ne(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ne(e,()=>e.enableVertexAttribArray(o)),!0)}function e5(e,t,n){Qq(e,n),Ne(e,()=>e.activeTexture(e.TEXTURE0+n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function t5(e,t,n){return Tr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function n5(e,t,n){return e.getUniformLocation(t,n)}function a5(e,t,n,a){Ne(e,()=>e5(e,t,a)),Ne(e,()=>e.uniform1i(n,a))}function Pv(e,t,n){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function OT(e,t){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function zm(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+r5(e,t))}function r5(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Tr(e,t,n){let a=Ne(e,()=>t());if(a==null)throw new Error(n);return a}function Qq(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function iu(e,t=2){return k.sizeFromShape(e.slice(0,e.length-t))}function ou(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Ov(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[iu(e),...ou(e)]),t}function s5(e,t=!1){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?k.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=k.squeezeShape(e).newShape);let a=k.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=iu(e),s=2,i=2;return e.length&&([s,i]=ou(e)),a=r*(s/2)*(i/2),k.sizeToSquarishShape(a).map(o=>o*2)}return k.sizeToSquarishShape(a)}function Bm(e){return e%2==0}function Wm(e,t){if(e=e.slice(-2),t=t.slice(-2),k.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||Bm(n)&&Bm(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&Bm(e[0])&&Bm(t[0])}var Lv,zv;function i5(e){if(Lv==null){let t=sr(e);Lv=t.getParameter(t.MAX_TEXTURE_SIZE)}return Lv}function o5(e){if(zv==null){let t=sr(e);zv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,zv)}function l5(e){if(e===0)return 0;let t,n=sr(e);return ba(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ba(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ba(e,t){return e.getExtension(t)!=null}function LT(e){try{if(sr(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function u5(e){if(e===0)return!1;let t=sr(e);if(e===1){if(!ba(t,"OES_texture_float"))return!1}else if(!ba(t,"EXT_color_buffer_float"))return!1;return Bv(t)}function p5(e){if(e===0)return!1;let t=sr(e);if(e===1){if(!ba(t,"OES_texture_float")||!ba(t,"WEBGL_color_buffer_float"))return!1}else{if(ba(t,"EXT_color_buffer_float"))return Bv(t);let n="EXT_color_buffer_half_float";if(ba(t,n)){let a=t.getExtension(n);return c5(t,a)}return!1}return Bv(t)}function Bv(e){let t=Rv(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function c5(e,t){let n=Rv(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function d5(e){return e!==2?!1:sr(e).fenceSync!=null}function vp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ee=ee();Ee.registerFlag("HAS_WEBGL",()=>Ee.getNumber("WEBGL_VERSION")>0);Ee.registerFlag("WEBGL_VERSION",()=>LT(2)?2:LT(1)?1:0);Ee.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ee.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ee.get("WEBGL_VERSION")===2);Ee.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ee.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ee.registerFlag("WEBGL_PACK",()=>Ee.getBool("HAS_WEBGL"));Ee.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_CLIP",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ee.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_REDUCE",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_CONV_IM2COL",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>i5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>o5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ee.getNumber("WEBGL_VERSION");return e===0?0:l5(e)});Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ee.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ah.isMobile());Ee.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>u5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ee.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ee.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ee.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>p5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_FENCE_API_ENABLED",()=>d5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ee.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ee.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});function hn(){let e,t,n,a,r,s,i,o,l,c;return ee().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` bool isnan_custom(float val) { return (val > 0.0 || val < 0.0) ? false : val != 0.0; } @@ -86,11 +86,11 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:c}}function Gi(e,t,n="index"){let a=k.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Pv(e){let t=k.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:c}}function ji(e,t,n="index"){let a=k.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Wv(e){let t=k.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}var DT=` +`}var zT=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -129,9 +129,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return c / 255.0; } -`,u5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=gp.DENSE;let t=bp(e),n=hn();this.outputShape=e,this.userCode=` +`,h5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=yp.DENSE;let t=xp(e),n=hn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${Gi(["r","c","d"],e)} + ${ji(["r","c","d"],e)} return ivec3(r, c, d); } @@ -150,9 +150,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},c5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=gp.DENSE;let t=bp(e),n=hn();this.outputShape=e,this.userCode=` + `}},m5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=yp.DENSE;let t=xp(e),n=hn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${Gi(["r","c","d"],e)} + ${ji(["r","c","d"],e)} return ivec3(r, c, d); } @@ -171,23 +171,23 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},p5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=Qn.DOWNLOAD;let t=hn();this.outputShape=e,this.userCode=` - ${DT} + `}},f5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=Qn.DOWNLOAD;let t=hn();this.outputShape=e,this.userCode=` + ${zT} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},d5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Qn.DOWNLOAD;let t=hn();this.outputShape=e,this.userCode=` - ${DT} + `}},g5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Qn.DOWNLOAD;let t=hn();this.outputShape=e,this.userCode=` + ${zT} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},h5=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=hn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` - ${Pv(e)} + `}},y5=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=hn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` + ${Wv(e)} void main() { ivec3 coords = getOutputCoords(); @@ -216,7 +216,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = vec4(${i}, 0., 0., 0.); } - `}},m5=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=hn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){let u=l*2+c;i+=` + `}},b5=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=hn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){let u=l*2+c;i+=` localCoords = coords; if(localCoords[2] + ${c} < ${e[2]}) { localCoords[2] += ${c}; @@ -245,7 +245,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee } } `}this.userCode=` - ${Pv(e)} + ${Wv(e)} void main() { ivec3 coords = getOutputCoords(); @@ -260,7 +260,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = ${o}; } - `}};function f5(e){let t=hn(),n=`${t.version} + `}};function x5(e){let t=hn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -269,22 +269,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return Lq(e,n)}function g5(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return Gq(e,t)}function y5(e){let t=new Uint16Array([0,1,2,2,1,3]);return Hq(e,t)}function vp(e,t,n,a,r,s){qq(t,n);let i=jq(e),o=e.TEXTURE_2D;return Ne(e,()=>e.bindTexture(o,i)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ne(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function RT(e){return e.internalFormatFloat}function b5(e,t,n,a){let[r,s]=yp(t,n);return vp(e,r,s,RT(a),a.textureFormatFloat,e.FLOAT)}function MT(e){return e.internalFormatHalfFloat}function x5(e,t,n,a){let[r,s]=yp(t,n);return vp(e,r,s,MT(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function PT(e){return e.downloadTextureFormat}function v5(e,t,n,a){let[r,s]=yp(t,n);return vp(e,r,s,PT(a),e.RGBA,e.UNSIGNED_BYTE)}function OT(e){return e.internalFormatPackedFloat}function w5(e,t,n,a){let[r,s]=su(t,n);return vp(e,r,s,OT(a),e.RGBA,e.FLOAT)}function LT(e){return e.internalFormatPackedHalfFloat}function k5(e,t,n,a){let[r,s]=su(t,n);return vp(e,r,s,LT(a),e.RGBA,a.textureTypeHalfFloat)}function I5(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),AT(e,t,"clipSpacePos",n,3,s,a)&&AT(e,t,"uv",n,2,s,r)}function N5(e,t,n,a,r,s){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function T5(e,t,n){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function S5(e,t,n,a){let r=e.createBuffer();Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ne(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function C5(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function _5(e,t,n,a){let[r,s]=yp(t,n),i=4,o=new Uint8Array(Fq(t*n,i));return Ne(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function E5(e,t,n,a,r,s,i,o){let l=e,c=new Float32Array($q(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function A5(e,t,n){let a=new Float32Array(t*n*4);return Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var $5=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=ee().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,_q(t,e)):this.gl=rr(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(ee().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Mm(this.gl,r),ya(this.gl,s))this.textureHalfFloatExtension=Mm(this.gl,s);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ya(this.gl,a))this.colorBufferHalfFloatExtension=Mm(this.gl,a);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ya(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ya(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=g5(this.gl),this.indexBuffer=y5(this.gl),this.framebuffer=Kq(this.gl),this.textureConfig=Ev(this.gl,this.textureHalfFloatExtension)}get debug(){return ee().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ne(e,()=>e.finish()),Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ne(e,()=>e.deleteFramebuffer(this.framebuffer)),Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ne(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),b5(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),x5(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),v5(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),T5(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),N5(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),k5(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),w5(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(FT(this.gl,this.framebuffer),this.outputTexture=null),Ne(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>_5(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return E5(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return C5(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=S5(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ee().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>A5(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=Bq(t,e),a=f5(t),r=Vq(t);return Ne(t,()=>t.attachShader(r,a)),Ne(t,()=>t.attachShader(r,n)),Uq(t,r),this.debug&&Av(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=I5(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ne(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Av(this.gl,this.program),Ne(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?Zq(this.gl,e,t):Jq(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ne(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),Qq(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=su(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Av(this.gl,this.program),Pm(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ne(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Mm(this.gl,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await k.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=F5(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&k.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Fv(this.gl,e,this.framebuffer),this.debug&&Pm(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Fv(this.gl,this.outputTexture,this.framebuffer),this.debug&&Pm(this.gl)):FT(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;Fv(a,e,this.framebuffer),this.debug&&Pm(a),this.outputTexture=e,Ne(a,()=>a.viewport(0,0,t,n)),Ne(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function F5(e){let t=0;for(;t{let m=k.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` -`),i=e.map(h=>D5(h,t,a)).join(` -`),o=t.texShape,l=hn(),c=P5(l),u,p,d=z5(l);return t.isPacked?(u=R5(t.logicalShape,o),p=L5(l)):(u=M5(t.logicalShape,o),p=O5(l)),a&&(d+=B5),[d,c,p,s,u,i,n].join(` -`)}function lu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return V5(e);case 1:return U5(e);case 2:return G5(e);case 3:return H5(e);case 4:return j5(e);case 5:return q5(e);case 6:return K5(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function BT(e){switch(e.shapeInfo.logicalShape.length){case 0:return X5(e);case 1:return Y5(e);case 2:return Z5(e);case 3:return J5(e);default:return Q5(e)}}function D5(e,t,n=!1){let a="";n?a+=BT(e):a+=lu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=e8(e,t):a+=t8(e,t)),a}function R5(e,t){switch(e.length){case 0:return WT();case 1:return n8(e,t);case 2:return s8(e,t);case 3:return a8(e,t);default:return r8(e,t)}}function M5(e,t){switch(e.length){case 0:return WT();case 1:return i8(e,t);case 2:return p8(e,t);case 3:return o8(e,t);case 4:return l8(e,t);case 5:return u8(e,t);case 6:return c8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function P5(e){return` + }`;return Vq(e,n)}function v5(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return Kq(e,t)}function w5(e){let t=new Uint16Array([0,1,2,2,1,3]);return Xq(e,t)}function wp(e,t,n,a,r,s){Zq(t,n);let i=Yq(e),o=e.TEXTURE_2D;return Ne(e,()=>e.bindTexture(o,i)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ne(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function BT(e){return e.internalFormatFloat}function k5(e,t,n,a){let[r,s]=bp(t,n);return wp(e,r,s,BT(a),a.textureFormatFloat,e.FLOAT)}function WT(e){return e.internalFormatHalfFloat}function I5(e,t,n,a){let[r,s]=bp(t,n);return wp(e,r,s,WT(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function VT(e){return e.downloadTextureFormat}function N5(e,t,n,a){let[r,s]=bp(t,n);return wp(e,r,s,VT(a),e.RGBA,e.UNSIGNED_BYTE)}function UT(e){return e.internalFormatPackedFloat}function T5(e,t,n,a){let[r,s]=su(t,n);return wp(e,r,s,UT(a),e.RGBA,e.FLOAT)}function GT(e){return e.internalFormatPackedHalfFloat}function S5(e,t,n,a){let[r,s]=su(t,n);return wp(e,r,s,GT(a),e.RGBA,a.textureTypeHalfFloat)}function C5(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),PT(e,t,"clipSpacePos",n,3,s,a)&&PT(e,t,"uv",n,2,s,r)}function _5(e,t,n,a,r,s){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function E5(e,t,n){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function A5(e,t,n,a){let r=e.createBuffer();Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ne(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function F5(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function $5(e,t,n,a){let[r,s]=bp(t,n),i=4,o=new Uint8Array(Mq(t*n,i));return Ne(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function D5(e,t,n,a,r,s,i,o){let l=e,c=new Float32Array(Pq(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function R5(e,t,n){let a=new Float32Array(t*n*4);return Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var P5=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=ee().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,$q(t,e)):this.gl=sr(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(ee().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Lm(this.gl,r),ba(this.gl,s))this.textureHalfFloatExtension=Lm(this.gl,s);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ba(this.gl,a))this.colorBufferHalfFloatExtension=Lm(this.gl,a);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ba(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ba(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=v5(this.gl),this.indexBuffer=w5(this.gl),this.framebuffer=Jq(this.gl),this.textureConfig=Rv(this.gl,this.textureHalfFloatExtension)}get debug(){return ee().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ne(e,()=>e.finish()),Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ne(e,()=>e.deleteFramebuffer(this.framebuffer)),Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ne(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),k5(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),I5(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),N5(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),E5(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),_5(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),S5(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),T5(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(OT(this.gl,this.framebuffer),this.outputTexture=null),Ne(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>$5(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return D5(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return F5(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=A5(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ee().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>R5(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=Gq(t,e),a=x5(t),r=jq(t);return Ne(t,()=>t.attachShader(r,a)),Ne(t,()=>t.attachShader(r,n)),qq(t,r),this.debug&&Mv(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=C5(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ne(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Mv(this.gl,this.program),Ne(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?t5(this.gl,e,t):n5(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ne(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),a5(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=su(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Mv(this.gl,this.program),zm(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ne(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Lm(this.gl,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await k.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=M5(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&k.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Pv(this.gl,e,this.framebuffer),this.debug&&zm(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Pv(this.gl,this.outputTexture,this.framebuffer),this.debug&&zm(this.gl)):OT(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;Pv(a,e,this.framebuffer),this.debug&&zm(a),this.outputTexture=e,Ne(a,()=>a.viewport(0,0,t,n)),Ne(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function M5(e){let t=0;for(;t{let m=k.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` +`),i=e.map(h=>O5(h,t,a)).join(` +`),o=t.texShape,l=hn(),c=B5(l),u,p,d=U5(l);return t.isPacked?(u=L5(t.logicalShape,o),p=V5(l)):(u=z5(t.logicalShape,o),p=W5(l)),a&&(d+=G5),[d,c,p,s,u,i,n].join(` +`)}function lu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return j5(e);case 1:return q5(e);case 2:return K5(e);case 3:return X5(e);case 4:return Y5(e);case 5:return Z5(e);case 6:return J5(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function jT(e){switch(e.shapeInfo.logicalShape.length){case 0:return Q5(e);case 1:return e8(e);case 2:return t8(e);case 3:return n8(e);default:return a8(e)}}function O5(e,t,n=!1){let a="";n?a+=jT(e):a+=lu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=r8(e,t):a+=s8(e,t)),a}function L5(e,t){switch(e.length){case 0:return qT();case 1:return i8(e,t);case 2:return u8(e,t);case 3:return o8(e,t);default:return l8(e,t)}}function z5(e,t){switch(e.length){case 0:return qT();case 1:return c8(e,t);case 2:return f8(e,t);case 3:return p8(e,t);case 4:return d8(e,t);case 5:return h8(e,t);case 6:return m8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function B5(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function O5(e){return` + `}function W5(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function L5(e){return` + `}function V5(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function z5(e){return`${e.version} + `}function U5(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -339,10 +339,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return fract((p3.x + p3.y) * p3.z); } - ${d8} - ${h8} - ${m8} - `}var d8=` + ${g8} + ${y8} + ${b8} + `}var g8=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -354,7 +354,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,h8=` +`,y8=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -362,7 +362,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,m8=` +`,b8=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -371,7 +371,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,B5=` +`,G5=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -382,11 +382,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function WT(){return` +`;function qT(){return` int getOutputCoords() { return 0; } - `}function n8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` + `}function i8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${n[1]}.0); } @@ -400,7 +400,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function i8(e,t){return t[0]===1?` + `}function c8(e,t){return t[0]===1?` int getOutputCoords() { return int(resultUV.x * ${t[1]}.0); } @@ -414,7 +414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function a8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` + `}function o8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); @@ -428,7 +428,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function o8(e,t){let n=Gi(["r","c","d"],e);return` + `}function p8(e,t){let n=ji(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -436,7 +436,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function r8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[e.length-1]/2),r=a*Math.ceil(e[e.length-2]/2),s=r,i="",o="b, r, c";for(let l=2;l=1?u="coords = 0;":u=o.map(g=>`coords.${p[g+c]} = 0;`).join(` + `}function r8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=HT(e.shapeInfo.logicalShape,t.logicalShape),l=ft(i),c=i-s,u,p=["x","y","z","w","u","v"];s===0?u="":i<2&&o.length>=1?u="coords = 0;":u=o.map(g=>`coords.${p[g+c]} = 0;`).join(` `);let d="";i<2&&s>0?d="coords":d=e.shapeInfo.logicalShape.map((g,y)=>`coords.${p[y+c]}`).join(", ");let h="return outputValue;",m=k.sizeFromShape(e.shapeInfo.logicalShape)===1,f=k.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -816,22 +816,22 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${d}); ${h} } - `}function t8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&k.arraysEqual(i,s))return` + `}function s8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&k.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let c=ft(l),u=zT(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&u.length>=1?d="coords = 0;":d=u.map(f=>`coords.${h[f+p]} = 0;`).join(` + `;let c=ft(l),u=HT(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&u.length>=1?d="coords = 0;":d=u.map(f=>`coords.${h[f+p]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+p]}`).join(", "),` float ${r}() { ${c} coords = getOutputCoords(); ${d} return get${a}(${m}); } - `}function ft(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function cu(e,t){let n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function pu(e,t){return t.map(n=>e[n]).join(", ")}function f8(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=W5(s,o,r,t.packedInputs),c=e.createProgram(l),u=null,p=e.getUniformLocation(c,"NAN",!1);ee().getNumber("WEBGL_VERSION")===1&&(u=e.getUniformLocation(c,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!k.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!k.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function g8(e,t,n,a,r){VT(t.inShapeInfos,n),VT([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),ee().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let c=t.program.variableNames[l],u=t.uniformLocations[c],p=t.uniformLocations[`offset${c}`];if(u!=null){if(o.isUniform){if(k.sizeFromShape(o.shape)<2)e.gl.uniform1f(u,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(u,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,u,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function y8(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:b8,bincountImpl:UT,bincountReduceImpl:x8,ceilImpl:v8,concatImpl:w8,expImpl:k8,expm1Impl:I8,floorImpl:N8,gatherV2Impl:T8,greaterImpl:S8,lessImpl:C8,linSpaceImpl:_8,logImpl:E8,maxImpl:A8,maximumImpl:F8,minimumImpl:$8,multiplyImpl:D8,negImpl:R8,prodImpl:M8,rangeImpl:P8,rsqrtImpl:O8,simpleAbsImpl:GT,sliceImpl:L8,stridedSliceImpl:z8,subImpl:B8,tileImpl:W8,topKImpl:V8,transposeImpl:Ov,uniqueImpl:U8}=LN;function HT(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function mn(e,t){return t===1?[e]:HT(e,t)}function G8(e,t){if(e===1)return"rc";let n="";for(let a=0;ae[n]).join(", ")}function x8(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=H5(s,o,r,t.packedInputs),c=e.createProgram(l),u=null,p=e.getUniformLocation(c,"NAN",!1);ee().getNumber("WEBGL_VERSION")===1&&(u=e.getUniformLocation(c,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!k.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!k.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function v8(e,t,n,a,r){KT(t.inShapeInfos,n),KT([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),ee().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let c=t.program.variableNames[l],u=t.uniformLocations[c],p=t.uniformLocations[`offset${c}`];if(u!=null){if(o.isUniform){if(k.sizeFromShape(o.shape)<2)e.gl.uniform1f(u,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(u,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,u,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function w8(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:k8,bincountImpl:XT,bincountReduceImpl:I8,ceilImpl:N8,concatImpl:T8,expImpl:S8,expm1Impl:C8,floorImpl:_8,gatherV2Impl:E8,greaterImpl:A8,lessImpl:F8,linSpaceImpl:$8,logImpl:D8,maxImpl:R8,maximumImpl:M8,minimumImpl:P8,multiplyImpl:O8,negImpl:L8,prodImpl:z8,rangeImpl:B8,rsqrtImpl:W8,simpleAbsImpl:YT,sliceImpl:V8,stridedSliceImpl:U8,subImpl:G8,tileImpl:H8,topKImpl:j8,transposeImpl:Vv,uniqueImpl:q8}=GN;function ZT(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function mn(e,t){return t===1?[e]:ZT(e,t)}function K8(e,t){if(e===1)return"rc";let n="";for(let a=0;a ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r= ${t}; bool rEdge = rp1 >= ${n}; - `}function q8(e,t){let n=e.length,a=X8(n,t);return n===1?`getA(rc), + `}function Z8(e,t){let n=e.length,a=Q8(n,t);return n===1?`getA(rc), rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${a[0]}), cEdge ? 0. : getA(${a[1]}), rEdge ? 0. : getA(${a[2]}), - rEdge || cEdge ? 0. : getA(${a[3]})`}var jT=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${a[3]})`}var JT=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -868,8 +868,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${Y8(t)} - ${Pv(e)} + ${eK(t)} + ${Wv(e)} void main() { ivec3 rc = getOutputCoords(); @@ -884,12 +884,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Y8(e){return` + `}};function eK(e){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${Gi(["r","c","d"],e)} + ${ji(["r","c","d"],e)} return ivec3(r, c, d); } - `}var Z8=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=KT(t,n),r=XT(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=qT(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===tn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===tn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===tn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===tn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===tn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=KT(n,a),s=XT(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=qT(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=ee().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function J8(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function qT(e,t,n,a,r){let s=Q8(t,a),i;if(r){let[l,c]=su(e[0],e[1]);i=l*c}else{let[l,c]=yp(e[0],e[1]);i=l*c}let o=J8(n,s);return i*o}function Q8(e,t){switch(e){case tn.PACKED_2X2_FLOAT32:return OT(t);case tn.PACKED_2X2_FLOAT16:return LT(t);case tn.UNPACKED_FLOAT32:return RT(t);case tn.UNPACKED_FLOAT16:return MT(t);case tn.PACKED_4X1_UNSIGNED_BYTE:return PT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function eK(e){return ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?tn.PACKED_2X2_FLOAT32:tn.UNPACKED_FLOAT32:e?tn.PACKED_2X2_FLOAT16:tn.UNPACKED_FLOAT16}function KT(e,t){if(e===Qn.UPLOAD)return tn.PACKED_2X2_FLOAT32;if(e===Qn.RENDER||e==null)return eK(t);if(e===Qn.DOWNLOAD||e===Qn.PIXELS)return tn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function XT(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var cs=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}var tK=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=eS(t,n),r=tS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=QT(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===tn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===tn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===tn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===tn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===tn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=eS(n,a),s=tS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=QT(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=ee().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function nK(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function QT(e,t,n,a,r){let s=aK(t,a),i;if(r){let[l,c]=su(e[0],e[1]);i=l*c}else{let[l,c]=bp(e[0],e[1]);i=l*c}let o=nK(n,s);return i*o}function aK(e,t){switch(e){case tn.PACKED_2X2_FLOAT32:return UT(t);case tn.PACKED_2X2_FLOAT16:return GT(t);case tn.UNPACKED_FLOAT32:return BT(t);case tn.UNPACKED_FLOAT16:return WT(t);case tn.PACKED_4X1_UNSIGNED_BYTE:return VT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function rK(e){return ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?tn.PACKED_2X2_FLOAT32:tn.UNPACKED_FLOAT32:e?tn.PACKED_2X2_FLOAT16:tn.UNPACKED_FLOAT16}function eS(e,t){if(e===Qn.UPLOAD)return tn.PACKED_2X2_FLOAT32;if(e===Qn.RENDER||e==null)return rK(t);if(e===Qn.DOWNLOAD||e===Qn.PIXELS)return tn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function tS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var cs=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` float unaryOperation(float x) { ${t} } @@ -900,11 +900,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ra="if (isnan(x)) return x;",tK="return x;",YT="return abs(x);",nK="return (x >= 0.0) ? x : (exp(x) - 1.0);",aK=Ra+` + `}},Ma="if (isnan(x)) return x;",sK="return x;",nS="return abs(x);",iK="return (x >= 0.0) ? x : (exp(x) - 1.0);",oK=Ma+` return (x < 0.0) ? 0.0 : x; -`,rK=Ra+` +`,lK=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,zm="return x;",sK="return x;",iK=` +`,Vm="return x;",uK="return x;",cK=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -913,7 +913,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,oK=` +`,pK=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -923,7 +923,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,lK=` +`,dK=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -944,14 +944,14 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},uK=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=mn("rc",t),a=ft(t),r=G8(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},hK=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=mn("rc",t),a=ft(t),r=K8(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},cK=Za.whereImpl,pK=1e-7,dK=1e-4,Lv={};function hK(e){return e in Lv||(Lv[e]={}),Lv[e]}var mK=128,fK=600;function gK(){return ee().global.screen==null?1024:ee().global.screen.height*ee().global.screen.width*window.devicePixelRatio*fK/1024/1024}var bK=class extends sc{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!ee().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=rr(ee().getNumber("WEBGL_VERSION"));this.binaryCache=hK(ee().getNumber("WEBGL_VERSION")),this.gpgpu=new $5(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new Z8(this.gpgpu),this.numMBBeforeWarning=gK(),this.texData=new hd(this,Kr())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((ee().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ee().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:Qn.UPLOAD,refCount:1,complexParentRefCount:0}),a}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}decComplexRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.complexParentRefCount>0&&t.refCount--}}move(e,t,n,a){if(ee().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:Qn.UPLOAD,refCount:1,complexParentRefCount:0})}disposeIntermediateTensorInfo(e){let t=e.dataId;if(this.texData.has(t)){let n=this.texData.get(t);n.refCount--,n.refCount<1&&this.disposeData(t)}}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new du(i,zm):p=new cs(i,zm);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,c;l&&(c=k.now());let u;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);u=_.mergeRealAndImagArrays(p,d)}else u=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=k.now()-c),this.convertAndCacheOnCPU(e,u)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new du(a,zm):h=new cs(a,zm);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ee().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ee().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(s!=="complex64"&&ee().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let h=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...bp(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let u;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];u=_.mergeRealAndImagArrays(m,f)}else if(l==null)u=this.getValuesFromTexture(e);else{let h=k.sizeFromShape(a);u=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}c!=null&&this.disposeIntermediateTensorInfo(c);let p=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;to.query)).filter(o=>o!=null),s=k.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=k.sum(o),i.getExtraProfileInfo=()=>o.map((l,c)=>({name:s[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:k.now(),endMs:null}}endTimer(e){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=k.now(),e)}async getQueryTime(e){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;if(this.texData.get(e).complexParentRefCount>0){this.texData.get(e).refCount--;return}this.releaseGPUData(e);let{complexTensorInfos:t}=this.texData.get(e);t!=null&&(this.texData.get(t.real.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.real),this.texData.get(t.imag.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.imag)),this.texData.delete(e)}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ee().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Kr().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=mK){let n=this.getCPUBackend();return!ee().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&k.sizeFromShape(a.shape)0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Kr().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new uK(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new K8(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[iu(e.shape),...ou(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[iu(t),...ou(t)],s=new jT(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=$v(a),i;n?i=new c5(s):i=new u5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===gp.DENSE){let m=bp(e.outputShape);i.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),k.sizeFromShape(s.shape)===0)return i.values=k.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&k.sizeFromShape(m.shape)<=ee().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!=!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),o.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!Lm(f.shape,m.shape)){let g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),o.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(s.dataId);let c={shape:s.shape,texData:i,isUniform:!1},u=y8(e,l,c),p=this.getAndSaveBinary(u,()=>f8(this.gpgpu,e,l,c)),d=this.activeTimers!=null,h;if(d&&(h=this.startTimer()),g8(this.gpgpu,p,l,c,a),o.forEach(m=>this.disposeIntermediateTensorInfo(m)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)})),!ee().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let m=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),m}return s}compileAndRun(e,t,n,a,r=!1){n=n||t[0].dtype;let s=this.runWebGLProgram(e,t,n,a,r);return Kr().makeTensorFromDataId(s.dataId,s.shape,s.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ee().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=D(()=>{if(!ee().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=ee().getBool("DEBUG");ee().set("DEBUG",!1);let t=this.abs(de(1e-8)).dataSync()[0];if(ee().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?pK:dK}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,c;l&&(c=k.now());let u=t.texShape;if(u==null&&(u=t5(n,o),t.texShape=u),r!=null){let p=$v(n),d,h=u[1],m=u[0],f=r instanceof Uint8Array;o?([h,m]=su(u[0],u[1]),d=new m5(p,[m,h],f)):d=new h5(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=Qn.PIXELS:this.texData.get(g.dataId).usage=Qn.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),v=this.texData.get(b.dataId);t.texture=v.texture,t.texShape=v.texShape,t.isPacked=v.isPacked,t.usage=v.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=k.now()-c)}else{let p=this.acquireTexture(u,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=yK(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*k.bytesPerElement(t)}};function yK(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew bK,2);var ZT=` + `}},mK=Ja.whereImpl,fK=1e-7,gK=1e-4,Uv={};function yK(e){return e in Uv||(Uv[e]={}),Uv[e]}var bK=128,xK=600;function vK(){return ee().global.screen==null?1024:ee().global.screen.height*ee().global.screen.width*window.devicePixelRatio*xK/1024/1024}var Gv=class extends rc{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!ee().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=sr(ee().getNumber("WEBGL_VERSION"));this.binaryCache=yK(ee().getNumber("WEBGL_VERSION")),this.gpgpu=new P5(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new tK(this.gpgpu),this.numMBBeforeWarning=vK(),this.texData=new gd(this,Ha())}nextDataId(){return Gv.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((ee().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ee().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:Qn.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(ee().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:Qn.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new du(i,Vm):p=new cs(i,Vm);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,c;l&&(c=k.now());let u;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);u=_.mergeRealAndImagArrays(p,d)}else u=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=k.now()-c),this.convertAndCacheOnCPU(e,u)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new du(a,Vm):h=new cs(a,Vm);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ee().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ee().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(s!=="complex64"&&ee().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let h=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...xp(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let u;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];u=_.mergeRealAndImagArrays(m,f)}else if(l==null)u=this.getValuesFromTexture(e);else{let h=k.sizeFromShape(a);u=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}c!=null&&this.disposeIntermediateTensorInfo(c);let p=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Ha().removeDataId(e,this),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=k.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=k.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=k.sum(o),i.getExtraProfileInfo=()=>o.map((l,c)=>({name:s[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:k.now(),endMs:null}}endTimer(e){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=k.now(),e)}async getQueryTime(e){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ee().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Ha().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=bK){let n=this.getCPUBackend();return!ee().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&k.sizeFromShape(a.shape)0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Ha().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new hK(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new J8(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[iu(e.shape),...ou(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[iu(t),...ou(t)],s=new JT(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=Ov(a),i;n?i=new m5(s):i=new h5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===yp.DENSE){let m=xp(e.outputShape);i.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),k.sizeFromShape(s.shape)===0)return i.values=k.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&k.sizeFromShape(m.shape)<=ee().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!=!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),o.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!Wm(f.shape,m.shape)){let g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),o.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(s.dataId);let c={shape:s.shape,texData:i,isUniform:!1},u=w8(e,l,c),p=this.getAndSaveBinary(u,()=>x8(this.gpgpu,e,l,c)),d=this.activeTimers!=null,h;if(d&&(h=this.startTimer()),v8(this.gpgpu,p,l,c,a),o.forEach(m=>this.disposeIntermediateTensorInfo(m)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)})),!ee().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let m=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),m}return s}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ee().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=D(()=>{if(!ee().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=ee().getBool("DEBUG");ee().set("DEBUG",!1);let t=this.abs(de(1e-8)).dataSync()[0];if(ee().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?fK:gK}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,c;l&&(c=k.now());let u=t.texShape;if(u==null&&(u=s5(n,o),t.texShape=u),r!=null){let p=Ov(n),d,h=u[1],m=u[0],f=r instanceof Uint8Array;o?([h,m]=su(u[0],u[1]),d=new b5(p,[m,h],f)):d=new y5(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=Qn.PIXELS:this.texData.get(g.dataId).usage=Qn.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),v=this.texData.get(b.dataId);t.texture=v.texture,t.texShape=v.texShape,t.isPacked=v.isPacked,t.usage=v.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=k.now()-c)}else{let p=this.acquireTexture(u,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=wK(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*k.bytesPerElement(t)}};Gv.nextDataId=0;function wK(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Gv,2);var aS=` if (isnan(a)) return a; if (isnan(b)) return b; `,hu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` @@ -964,12 +964,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},Bm=` + `}},Um=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`,wp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=_.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||k.sizeFromShape(this.outputShape)===1)s=` +`,kp=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=_.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||k.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1001,21 +1001,21 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Bn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var vK={kernelName:Ko,backendName:"webgl",kernelFunc:Bn};function ps(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Bn({inputs:{x:a},backend:n}),l=n.texData.get(o.dataId);l.complexParentRefCount++;let c=Bn({inputs:{x:r},backend:n}),u=n.texData.get(c.dataId);return u.complexParentRefCount++,i.complexTensorInfos={real:o,imag:c},s}var wK={kernelName:kd,backendName:"webgl",kernelFunc:ps},JT="return (a < 0.) ? b * a : a;",QT=` + `}};function Wn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var IK={kernelName:Us,backendName:"webgl",kernelFunc:Wn};function ps(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Wn({inputs:{x:a},backend:n}),l=Wn({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var NK={kernelName:Td,backendName:"webgl",kernelFunc:ps},rS="return (a < 0.) ? b * a : a;",sS=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function kK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",k.createScalarValue(s,"float32")),o=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new wp(QT,r.shape,i.shape):new hu(JT,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var IK={kernelName:Vs,backendName:"webgl",kernelFunc:kK},eS="return (a < 0.) ? b * a : a;",tS=` +`;function TK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",k.createScalarValue(s,"float32")),o=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new kp(sS,r.shape,i.shape):new hu(rS,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var SK={kernelName:Gs,backendName:"webgl",kernelFunc:TK},iS="return (a < 0.) ? b * a : a;",oS=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function NK(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new wp(tS,a.shape,r.shape):new hu(eS,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var TK={kernelName:ei,backendName:"webgl",kernelFunc:NK},nS="if (isnan(x)) return x;",SK=` +`;function CK(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new kp(oS,a.shape,r.shape):new hu(iS,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var _K={kernelName:ni,backendName:"webgl",kernelFunc:CK},lS="if (isnan(x)) return x;",EK=` if (isnan(a)) return a; if (isnan(b)) return b; -`,CK=` +`,AK=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function Ze({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let c=ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,u;return c?u=new du(i.shape,t):u=new cs(i.shape,e),o.runWebGLProgram(u,[i],l)}}function nn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:c}=i,u=o;if(a&&l.dtype==="complex64"){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(v=>{let[x,N]=v,T={dataId:x.dataId,dtype:x.dtype,shape:l.shape},C={dataId:N.dataId,dtype:N.dtype,shape:c.shape},$=new hu(e,l.shape,c.shape);return u.runWebGLProgram($,[T,C],la(x.dtype,N.dtype))}),b=ps({inputs:{real:g,imag:y},backend:u});return u.disposeIntermediateTensorInfo(g),u.disposeIntermediateTensorInfo(y),b}let p=s||la(l.dtype,c.dtype);if(u.shouldExecuteOnCPU([l,c])&&r!=null){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=r(l.shape,c.shape,m.values,f.values,p),b=u.makeTensorInfo(y,p),v=u.texData.get(b.dataId);return v.values=g,b}let d=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new wp(t,l.shape,c.shape,n):h=new hu(e,l.shape,c.shape),u.runWebGLProgram(h,[l,c],p)}}function Wm(e,t=!1){if(e==="linear")return t?sK:tK;if(e==="relu")return t?oK:aK;if(e==="elu")return t?iK:nK;if(e==="relu6")return t?lK:rK;if(e==="prelu")return t?tS:eS;if(e==="leakyrelu")return t?QT:JT;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var aS=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let c=a?e[1]:e[2],u=Math.ceil(c/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function Ze({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let c=ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,u;return c?u=new du(i.shape,t):u=new cs(i.shape,e),o.runWebGLProgram(u,[i],l)}}function nn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:c}=i,u=o;if(a&&l.dtype==="complex64"){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(v=>{let[x,N]=v,T={dataId:x.dataId,dtype:x.dtype,shape:l.shape},C={dataId:N.dataId,dtype:N.dtype,shape:c.shape},F=new hu(e,l.shape,c.shape);return u.runWebGLProgram(F,[T,C],ua(x.dtype,N.dtype))}),b=ps({inputs:{real:g,imag:y},backend:u});return u.disposeIntermediateTensorInfo(g),u.disposeIntermediateTensorInfo(y),b}let p=s||ua(l.dtype,c.dtype);if(u.shouldExecuteOnCPU([l,c])&&r!=null){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=r(l.shape,c.shape,m.values,f.values,p),b=u.makeTensorInfo(y,p),v=u.texData.get(b.dataId);return v.values=g,b}let d=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new kp(t,l.shape,c.shape,n):h=new hu(e,l.shape,c.shape),u.runWebGLProgram(h,[l,c],p)}}function Gm(e,t=!1){if(e==="linear")return t?uK:sK;if(e==="relu")return t?pK:oK;if(e==="elu")return t?cK:iK;if(e==="relu6")return t?dK:lK;if(e==="prelu")return t?oS:iS;if(e==="leakyrelu")return t?sS:rS;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var uS=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let c=a?e[1]:e[2],u=Math.ceil(c/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1054,7 +1054,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},rS={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},sS=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},cS={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},pS=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1067,7 +1067,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},iS="return a * b;";function oS(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=_.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),c=new sS(rS.REAL,a.shape,r.shape),u=new sS(rS.IMAG,a.shape,r.shape),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=ps({inputs:{real:d,imag:h},backend:n});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[c,u]=D8(a.shape,r.shape,o.values,l.values,s),p=n.makeTensorInfo(u,s),d=n.texData.get(p.dataId);return d.values=c,p}let i;return ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new wp(iS,a.shape,r.shape):i=new hu(iS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var _K={kernelName:Ys,backendName:"webgl",kernelFunc:oS};function EK(e,t,n){let a=[iu(e.shape),...ou(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[iu(t),...ou(t)],i=new jT(s,a),o=!0,l=n.runWebGLProgram(i,[r],e.dtype,null,o);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function be(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=k.sizeFromShape(r.shape),l=k.inferFromImplicitShape(s,o),c=k.sizeFromShape(l);k.assert(o===c,()=>`The new shape (${l}) has ${c} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let u=i.texData.get(r.dataId);return u.isPacked&&!Lm(r.shape,l)&&!(u.texture!==null&&Lm(u.shape,l))?EK(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var AK={kernelName:dl,backendName:"webgl",kernelFunc:be},lS=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let u=1/t;l=`sumValue += dot(values * ${k.isInt(u)?u.toPrecision(2):u}, ones);`}let c="";r%n>0&&(c=` + `}},dS="return a * b;";function hS(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=_.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),c=new pS(cS.REAL,a.shape,r.shape),u=new pS(cS.IMAG,a.shape,r.shape),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=ps({inputs:{real:d,imag:h},backend:n});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[c,u]=O8(a.shape,r.shape,o.values,l.values,s),p=n.makeTensorInfo(u,s),d=n.texData.get(p.dataId);return d.values=c,p}let i;return ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new kp(dS,a.shape,r.shape):i=new hu(dS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var FK={kernelName:Js,backendName:"webgl",kernelFunc:hS};function $K(e,t,n){let a=[iu(e.shape),...ou(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[iu(t),...ou(t)],i=new JT(s,a),o=!0,l=n.runWebGLProgram(i,[r],e.dtype,null,o);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function be(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=k.sizeFromShape(r.shape),l=k.inferFromImplicitShape(s,o),c=k.sizeFromShape(l);k.assert(o===c,()=>`The new shape (${l}) has ${c} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let u=i.texData.get(r.dataId);return u.isPacked&&!Wm(r.shape,l)&&!(u.texture!==null&&Wm(u.shape,l))?$K(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var DK={kernelName:dl,backendName:"webgl",kernelFunc:be},mS=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let u=1/t;l=`sumValue += dot(values * ${k.isInt(u)?u.toPrecision(2):u}, ones);`}let c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1120,7 +1120,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},FK=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,u=n%4,p=` + `}},RK=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,u=n%4,p=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1205,12 +1205,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function $K(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=_.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function ji(e,t,n,a){let r=$K(e.shape),s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=ft(this.rank),r=HT("rc",this.rank),s=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=ft(this.rank),r=ZT("rc",this.rank),s=new Array(this.rank);for(let c=0;c=2&&u>=2&&v,()=>`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 (${f}) and (${g}).`);let x=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);k.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let N=n?[y,p,h]:[y,h,p],T=a?[b,m,d]:[b,d,m],C=be({inputs:{x:e},backend:r,attrs:{shape:N}}),$=be({inputs:{x:t},backend:r,attrs:{shape:T}}),F=[C,$],O=Math.max(y,b),B=n?C.shape[1]:C.shape[2],W=s!=null,G=i!=null,q=l==="leakyrelu",H=l!=null?Wm(l,!0):null,K=W||G||q||H!=null,X;if((h===1||m===1)&&B>uS&&K===!1){let J=C,se=$;n&&(J=Tn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),F.push(J)),a&&(se=Tn({inputs:{x:$},backend:r,attrs:{perm:[0,2,1]}}),F.push(se));let Q=m!==1,oe=m===1,ae=J;Q&&(ae=be({inputs:{x:J},backend:r,attrs:{shape:[O,B,1]}}),F.push(ae));let pe=m===1?2:1,ue=se;oe&&(ue=be({inputs:{x:se},backend:r,attrs:{shape:[O,1,B]}}),F.push(ue));let ge=oS({inputs:{a:ae,b:ue},backend:r});X=zv({inputs:{x:ge},backend:r,attrs:{axis:pe,keepDims:!0}}),F.push(ge)}else{let J=la(e.dtype,t.dtype),se=new aS(N,T,[O,h,m],n,a,W,H,G,q),Q=[C,$];if(s!=null&&Q.push(s),G&&Q.push(i),q){let oe=r.makeTensorInfo([],"float32",k.createScalarValue(o,"float32"));Q.push(oe),F.push(oe)}X=r.runWebGLProgram(se,Q,J)}let ne=be({inputs:{x:X},backend:r,attrs:{shape:x}});F.push(X);for(let J of F)r.disposeIntermediateTensorInfo(J);return ne}function zK(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a;return Um({a:r,b:s,transposeA:l,transposeB:c,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:u})}var BK={kernelName:gi,backendName:"webgl",kernelFunc:zK},cS="return abs(x);";function WK(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=GT(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new du(a.shape,cS):r=new cs(a.shape,cS),n.runWebGLProgram(r,[a],a.dtype)}var VK={kernelName:So,backendName:"webgl",kernelFunc:WK},UK=Ra+` + `}};function Hm(e,t,n){let a=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new LK(e.shape,t):new OK(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function zK(e,t,n,a){let r=t,s=e.shape.length,i=k.parseAxisParam(r,e.shape),o=i,l=_.getAxesPermutation(o,s),c=l!=null,u=e;c&&(u=Hm(e,l,a),o=_.getInnerMostAxes(o.length,s)),_.assertAxesAreInnerMostDims("sum",o,s);let[p,d]=_.computeOutAndReduceShapes(u.shape,o),h=p;n&&(h=_.expandShapeToKeepDim(p,i));let m=k.sizeFromShape(d),f=k.sizeFromShape(e.shape)/m,g=be({inputs:{x:u},attrs:{shape:[f,m]},backend:a}),y=nh(e.dtype),b=Ki(g,y,"sum",a),v=be({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),c&&a.disposeIntermediateTensorInfo(u),v}function Hv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return zK(r,s,i,n)}var BK={kernelName:di,backendName:"webgl",kernelFunc:Hv};function Tn(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let u=0;u=2&&u>=2&&v,()=>`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 (${f}) and (${g}).`);let x=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);k.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let N=n?[y,p,h]:[y,h,p],T=a?[b,m,d]:[b,d,m],C=be({inputs:{x:e},backend:r,attrs:{shape:N}}),F=be({inputs:{x:t},backend:r,attrs:{shape:T}}),$=[C,F],P=Math.max(y,b),B=n?C.shape[1]:C.shape[2],W=s!=null,G=i!=null,q=l==="leakyrelu",j=l!=null?Gm(l,!0):null,X=W||G||q||j!=null,K;if((h===1||m===1)&&B>fS&&X===!1){let J=C,se=F;n&&(J=Tn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),$.push(J)),a&&(se=Tn({inputs:{x:F},backend:r,attrs:{perm:[0,2,1]}}),$.push(se));let Q=m!==1,oe=m===1,ae=J;Q&&(ae=be({inputs:{x:J},backend:r,attrs:{shape:[P,B,1]}}),$.push(ae));let pe=m===1?2:1,ue=se;oe&&(ue=be({inputs:{x:se},backend:r,attrs:{shape:[P,1,B]}}),$.push(ue));let ge=hS({inputs:{a:ae,b:ue},backend:r});K=Hv({inputs:{x:ge},backend:r,attrs:{axis:pe,keepDims:!0}}),$.push(ge)}else{let J=ua(e.dtype,t.dtype),se=new uS(N,T,[P,h,m],n,a,W,j,G,q),Q=[C,F];if(s!=null&&Q.push(s),G&&Q.push(i),q){let oe=r.makeTensorInfo([],"float32",k.createScalarValue(o,"float32"));Q.push(oe),$.push(oe)}K=r.runWebGLProgram(se,Q,J)}let ne=be({inputs:{x:K},backend:r,attrs:{shape:x}});$.push(K);for(let J of $)r.disposeIntermediateTensorInfo(J);return ne}function VK(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a;return jm({a:r,b:s,transposeA:l,transposeB:c,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:u})}var UK={kernelName:bi,backendName:"webgl",kernelFunc:VK},gS="return abs(x);";function GK(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=YT(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new du(a.shape,gS):r=new cs(a.shape,gS),n.runWebGLProgram(r,[a],a.dtype)}var HK={kernelName:_o,backendName:"webgl",kernelFunc:GK},jK=Ma+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,GK=Ze({opSnippet:UK}),HK={kernelName:Co,backendName:"webgl",kernelFunc:GK},jK=Ra+` +`,qK=Ze({opSnippet:jK}),KK={kernelName:Eo,backendName:"webgl",kernelFunc:qK},XK=Ma+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,qK=Ze({opSnippet:jK}),KK={kernelName:_o,backendName:"webgl",kernelFunc:qK},pS="return a + b;",XK=nn({opSnippet:pS,packedOpSnippet:pS,supportsComplex:!0,cpuKernelImpl:b8}),YK={kernelName:Lr,backendName:"webgl",kernelFunc:XK},ZK=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,YK=Ze({opSnippet:XK}),ZK={kernelName:Ao,backendName:"webgl",kernelFunc:YK},yS="return a + b;",JK=nn({opSnippet:yS,packedOpSnippet:yS,supportsComplex:!0,cpuKernelImpl:k8}),QK={kernelName:zr,backendName:"webgl",kernelFunc:JK},eX=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1242,7 +1242,7 @@ return log(x + sqrt(x * x - 1.0));`,qK=Ze({opSnippet:jK}),KK={kernelName:_o,back float result = ${a}; setOutput(result); } - `}},JK=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},tX=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1250,7 +1250,7 @@ return log(x + sqrt(x * x - 1.0));`,qK=Ze({opSnippet:jK}),KK={kernelName:_o,back vec4 result = ${a}; setOutput(result); } - `}};function Gm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Bn({inputs:{x:a[0]},backend:n});if(a.length>ee().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Gm({inputs:a.slice(0,o),backend:n}),c=Gm({inputs:a.slice(o),backend:n});return Gm({inputs:[l,c],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>la(o,l)),s=a.map(o=>o.shape),i=ee().getBool("WEBGL_PACK")?new JK(a[0].shape,s):new ZK(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var QK={kernelName:Ss,backendName:"webgl",kernelFunc:Gm};function eX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Tn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("all",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=ji(f,f.dtype,"all",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var tX={kernelName:yd,backendName:"webgl",kernelFunc:eX};function nX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Tn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("any",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=ji(f,f.dtype,"any",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var aX={kernelName:bd,backendName:"webgl",kernelFunc:nX},rX=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function qm(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Wn({inputs:{x:a[0]},backend:n});if(a.length>ee().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=qm({inputs:a.slice(0,o),backend:n}),c=qm({inputs:a.slice(o),backend:n});return qm({inputs:[l,c],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ua(o,l)),s=a.map(o=>o.shape),i=ee().getBool("WEBGL_PACK")?new tX(a[0].shape,s):new eX(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var nX={kernelName:Ss,backendName:"webgl",kernelFunc:qm};function aX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Tn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("all",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Ki(f,f.dtype,"all",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var rX={kernelName:vd,backendName:"webgl",kernelFunc:aX};function sX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Tn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("any",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Ki(f,f.dtype,"any",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var iX={kernelName:wd,backendName:"webgl",kernelFunc:sX},oX=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1270,7 +1270,7 @@ return log(x + sqrt(x * x - 1.0));`,qK=Ze({opSnippet:jK}),KK={kernelName:_o,back } setOutput(float(bestIndex)); } - `}},sX=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,k.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ft(o),c=mn("coords",o),u,p;if(s===1){p=o+1;let C=ft(p);u=` + `}},lX=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,k.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ft(o),c=mn("coords",o),u,p;if(s===1){p=o+1;let C=ft(p);u=` ${C} sourceLocR = ${C}(${c.join()}, 0); ++${c[o-1]}; ${C} sourceLocG = ${C}(${c.join()}, 0); @@ -1332,23 +1332,23 @@ return log(x + sqrt(x * x - 1.0));`,qK=Ze({opSnippet:jK}),KK={kernelName:_o,back } setOutput(bestIndex); } - `}};function dS(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=_.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new rX(o,n,a==null),c=[t];a!=null&&c.push(a);let u=e.runWebGLProgram(l,c,"int32");if(u.shape[1]===1)return u;let p=dS(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}function hS(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=_.computeOptimalWindowSize(s),o=new sX(r,i,n,a==null),l=a==null?[t]:[t,a],c=e.runWebGLProgram(o,l,"int32");if(c.shape.length===t.shape.length){let u=hS(e,t,n,c);return e.disposeIntermediateTensorInfo(c),u}return c}function mS(e,t,n,a){let r=[n];if(_.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!ee().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=_.computeOutAndReduceShapes(t.shape,r),l=k.sizeFromShape(o),c=be({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(c);let u=dS(e,c,a);s.push(u);let p=be({inputs:{x:u},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return hS(e,t,a)}function iX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Tn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let u=mS(n,l,i[0],"max");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var oX={kernelName:Cs,backendName:"webgl",kernelFunc:iX};function lX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Tn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let u=mS(n,l,i[0],"min");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var uX={kernelName:lc,backendName:"webgl",kernelFunc:lX},cX=Ra+` + `}};function bS(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=_.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new oX(o,n,a==null),c=[t];a!=null&&c.push(a);let u=e.runWebGLProgram(l,c,"int32");if(u.shape[1]===1)return u;let p=bS(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}function xS(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=_.computeOptimalWindowSize(s),o=new lX(r,i,n,a==null),l=a==null?[t]:[t,a],c=e.runWebGLProgram(o,l,"int32");if(c.shape.length===t.shape.length){let u=xS(e,t,n,c);return e.disposeIntermediateTensorInfo(c),u}return c}function vS(e,t,n,a){let r=[n];if(_.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!ee().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=_.computeOutAndReduceShapes(t.shape,r),l=k.sizeFromShape(o),c=be({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(c);let u=bS(e,c,a);s.push(u);let p=be({inputs:{x:u},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return xS(e,t,a)}function uX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Tn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let u=vS(n,l,i[0],"max");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var cX={kernelName:Cs,backendName:"webgl",kernelFunc:uX};function pX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Tn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let u=vS(n,l,i[0],"min");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var dX={kernelName:oc,backendName:"webgl",kernelFunc:pX},hX=Ma+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,pX=Ze({opSnippet:cX}),dX={kernelName:Eo,backendName:"webgl",kernelFunc:pX},hX=Ra+"return log(x + sqrt(x * x + 1.0));",mX=Ze({opSnippet:hX}),fX={kernelName:Ao,backendName:"webgl",kernelFunc:mX},gX=Ra+` +`,mX=Ze({opSnippet:hX}),fX={kernelName:Fo,backendName:"webgl",kernelFunc:mX},gX=Ma+"return log(x + sqrt(x * x + 1.0));",yX=Ze({opSnippet:gX}),bX={kernelName:$o,backendName:"webgl",kernelFunc:yX},xX=Ma+` return atan(x); -`,yX=Ze({opSnippet:gX}),bX={kernelName:Fo,backendName:"webgl",kernelFunc:yX},xX=SK+` +`,vX=Ze({opSnippet:xX}),wX={kernelName:Do,backendName:"webgl",kernelFunc:vX},kX=EK+` return atan(a, b); -`,vX=` +`,IX=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+CK+` + `+AK+` return result; -`,wX=nn({opSnippet:xX,packedOpSnippet:vX}),kX={kernelName:Do,backendName:"webgl",kernelFunc:wX},IX=Ra+` +`,NX=nn({opSnippet:kX,packedOpSnippet:IX}),TX={kernelName:Mo,backendName:"webgl",kernelFunc:NX},SX=Ma+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelName:$o,backendName:"webgl",kernelFunc:NX},kp=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,CX=Ze({opSnippet:SX}),_X={kernelName:Ro,backendName:"webgl",kernelFunc:CX},Ip=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${d}, ${h}); @@ -1489,7 +1489,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(${v}); } - `}},Bv=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,c=e.dilationDepth,u=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",v="0.0";if(b||(v="-1.0 / 1e-20"),n){let F=">=";this.userCode=` + `}},jv=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,c=e.dilationDepth,u=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",v="0.0";if(b||(v="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1540,7 +1540,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${F} currMinMaxValue) { + if (value ${$} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${h} * ${m} + @@ -1551,7 +1551,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let x="max",N=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(N="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,$=` + `;return}let x="max",N=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(N="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,F=` if (${b}) { avgValue += dot(values, ones); } else { @@ -1616,7 +1616,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam getValue(batch, xD, xR, xC + 3 * ${p}, ch) ); - ${$} + ${F} } int xC = xCCorner + ${T}; @@ -1628,7 +1628,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam initializationValue ); - ${$} + ${F} } else if (${C===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1637,7 +1637,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam initializationValue ); - ${$} + ${F} } else if (${C===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1646,13 +1646,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam initializationValue ); - ${$} + ${F} } } setOutput(${N}); } } - `}};function SX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;xp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Bn({inputs:{x:r},backend:n});let p=new kp(u,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var CX={kernelName:_s,backendName:"webgl",kernelFunc:SX};function _X(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,l,c),d=new Bv(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var EX={kernelName:uc,backendName:"webgl",kernelFunc:_X},AX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=o-1-e.padInfo.top,u=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` + `}};function EX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;vp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Wn({inputs:{x:r},backend:n});let p=new Ip(u,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var AX={kernelName:_s,backendName:"webgl",kernelFunc:EX};function FX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,l,c),d=new jv(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var $X={kernelName:lc,backendName:"webgl",kernelFunc:FX},DX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=o-1-e.padInfo.top,u=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${c}, ${u}); const float avgMultiplier = float(${p}); @@ -1694,7 +1694,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},FX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=u-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},RX=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=u-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -1750,7 +1750,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}};function $X(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new FX(d);return n.runWebGLProgram(h,[r],i.dtype)}var DX={kernelName:vd,backendName:"webgl",kernelFunc:$X};function RX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;xp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=new AX(u);return n.runWebGLProgram(p,[r],i.dtype)}var MX={kernelName:xd,backendName:"webgl",kernelFunc:RX};function PX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Um({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var OX={kernelName:Es,backendName:"webgl",kernelFunc:PX},LX=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function MX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new RX(d);return n.runWebGLProgram(h,[r],i.dtype)}var PX={kernelName:Id,backendName:"webgl",kernelFunc:MX};function OX(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;vp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=new DX(u);return n.runWebGLProgram(p,[r],i.dtype)}var LX={kernelName:kd,backendName:"webgl",kernelFunc:OX};function zX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return jm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var BX={kernelName:Es,backendName:"webgl",kernelFunc:zX},WX=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},zX=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},VX=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -1773,7 +1773,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam setOutput((x - mean) * inv + offset); } - `}},BX=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;k.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=[a,r,s],u=null;i!=null&&(u=i.shape,c.push(i));let p=null;o!=null&&(p=o.shape,c.push(o));let d=ee().getBool("WEBGL_PACK_NORMALIZATION")?new zX(a.shape,r.shape,s.shape,u,p,l):new LX(a.shape,r.shape,s.shape,u,p,l);return t.runWebGLProgram(d,c,c[0].dtype)},WX={kernelName:Bs,backendName:"webgl",kernelFunc:BX},UX=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=`uniform int start[${this.rank}];`,a=VX(this.rank),r,s=e.map((i,o)=>`sourceLoc.${Wv[o]} = start[${o}] + coords.${Wv[o]};`);r=` + `}},UX=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;k.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=[a,r,s],u=null;i!=null&&(u=i.shape,c.push(i));let p=null;o!=null&&(p=o.shape,c.push(o));let d=ee().getBool("WEBGL_PACK_NORMALIZATION")?new VX(a.shape,r.shape,s.shape,u,p,l):new WX(a.shape,r.shape,s.shape,u,p,l);return t.runWebGLProgram(d,c,c[0].dtype)},GX={kernelName:Ws,backendName:"webgl",kernelFunc:UX},jX=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=`uniform int start[${this.rank}];`,a=HX(this.rank),r,s=e.map((i,o)=>`sourceLoc.${qv[o]} = start[${o}] + coords.${qv[o]};`);r=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${s.join(` @@ -1784,7 +1784,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${r} setOutput(getSource(${a})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},Wv=["x","y","z","w","u","v"];function VX(e){if(e===1)return"sourceLoc";if(e<=6)return Wv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var GX=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=mn("coords",this.rank),a=mn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},qv=["x","y","z","w","u","v"];function HX(e){if(e===1)return"sourceLoc";if(e<=6)return qv.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var qX=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=mn("coords",this.rank),a=mn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -1814,7 +1814,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${o} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function HX(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.complexParentRefCount=0,i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=cn.computeFlatOffset(t,k.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Ip(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=cn.parseSliceParams(r,s,i);if(cn.assertParamsValid(r,o,l),k.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=L8(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:c}=n.texData.get(r.dataId),u=cn.isSliceContinous(r.shape,o,l);if(c||!u){let p=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new GX(l):new UX(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),HX(r,o,l,n)}var jX={kernelName:gl,backendName:"webgl",kernelFunc:Ip},qX=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;k.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,v)=>b*v),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=[],m=be({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Tn({inputs:{x:m},backend:n,attrs:{perm:c}}),g=be({inputs:{x:f},backend:n,attrs:{shape:u}}),y=Ip({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},KX={kernelName:cc,backendName:"webgl",kernelFunc:qX};function XX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),c=UT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var YX={kernelName:wd,backendName:"webgl",kernelFunc:XX},ZX="return float(a != b);",fS=nn({opSnippet:ZX,dtype:"bool"}),JX={kernelName:rl,backendName:"webgl",kernelFunc:fS};function Np(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Bn({inputs:{x:r.complexTensorInfos.real},backend:n})}var QX={kernelName:Vd,backendName:"webgl",kernelFunc:Np},eY="return float(int(x));";function tY(e,t){let n=new cs(e.shape,eY),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Vv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Bn({inputs:{x:r},backend:n});let i=vt(r.shape),o=Vv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=ps({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Np({inputs:{input:r},backend:n}),o=Vv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=Bn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return tY(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",k.getTypedArrayFromDType("bool",1)),o=fS({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var nY={kernelName:As,backendName:"webgl",kernelFunc:Vv},gS="return ceil(x);",aY=Ze({opSnippet:gS,packedOpSnippet:gS,cpuKernelImpl:v8}),rY={kernelName:Ro,backendName:"webgl",kernelFunc:aY},sY=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function KX(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=cn.computeFlatOffset(t,k.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Np(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=cn.parseSliceParams(r,s,i);if(cn.assertParamsValid(r,o,l),k.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=V8(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:c}=n.texData.get(r.dataId),u=cn.isSliceContinous(r.shape,o,l);if(c||!u){let p=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qX(l):new jX(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),KX(r,o,l,n)}var XX={kernelName:gl,backendName:"webgl",kernelFunc:Np},YX=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;k.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,v)=>b*v),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=[],m=be({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Tn({inputs:{x:m},backend:n,attrs:{perm:c}}),g=be({inputs:{x:f},backend:n,attrs:{shape:u}}),y=Np({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},ZX={kernelName:uc,backendName:"webgl",kernelFunc:YX};function JX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),c=XT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var QX={kernelName:Nd,backendName:"webgl",kernelFunc:JX},eY="return float(a != b);",wS=nn({opSnippet:eY,dtype:"bool"}),tY={kernelName:rl,backendName:"webgl",kernelFunc:wS};function Tp(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Wn({inputs:{x:r.complexTensorInfos.real},backend:n})}var nY={kernelName:Hd,backendName:"webgl",kernelFunc:Tp},aY="return float(int(x));";function rY(e,t){let n=new cs(e.shape,aY),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Kv(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Wn({inputs:{x:r},backend:n});let i=vt(r.shape),o=Kv({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=ps({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Tp({inputs:{input:r},backend:n}),o=Kv({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=Wn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return rY(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",k.getTypedArrayFromDType("bool",1)),o=wS({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var sY={kernelName:As,backendName:"webgl",kernelFunc:Kv},kS="return ceil(x);",iY=Ze({opSnippet:kS,packedOpSnippet:kS,cpuKernelImpl:N8}),oY={kernelName:Fs,backendName:"webgl",kernelFunc:iY},lY=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1827,7 +1827,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},iY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},uY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1841,7 +1841,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function oY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;ee().getBool("WEBGL_PACK_CLIP")?o=new iY(r.shape):o=new sY(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var lY={kernelName:zr,backendName:"webgl",kernelFunc:oY},uY=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function cY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;ee().getBool("WEBGL_PACK_CLIP")?o=new uY(r.shape):o=new lY(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var pY={kernelName:Br,backendName:"webgl",kernelFunc:cY},dY=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1854,7 +1854,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function yS(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function cY(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new uY(a.shape),i=[yS(a,r.complexTensorInfos.real),yS(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var pY={kernelName:pc,backendName:"webgl",kernelFunc:cY},dY=class{constructor(e){this.outputShape=[],this.outputShape=_.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${Hm(i,l,f)}), - vec2(${Hm(c,l,f)})); + getT${m}(${Km(i,l,f)}), + vec2(${Km(c,l,f)})); }`}let d=o.length,h=o[o.length-1];p+=` return getChannel( - getT${d}(${Hm(i,l,h)}), - vec2(${Hm(c,l,h)}));`,this.userCode=` + getT${d}(${Km(i,l,h)}), + vec2(${Km(c,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${p} } @@ -1900,7 +1900,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(result); } - `}};function Hm(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function jm(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Bn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var mY={kernelName:Md,backendName:"webgl",kernelFunc:jm};function mu(e,t,n){let a=e[0].dtype;if(a==="complex64"){let c=e.map(m=>Np({inputs:{input:m},backend:n})),u=e.map(m=>jm({inputs:{input:m},backend:n})),p=mu(c,t,n),d=mu(u,t,n),h=ps({inputs:{real:p,imag:d},backend:n});return c.forEach(m=>n.disposeIntermediateTensorInfo(m)),u.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:c,outShape:u}=bS(e,t,n),p=c.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=c[0].shape[0]===1,h=w8(p,u,a,d),m=_.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>ee().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let c=Math.floor(e.length/2),u=mu(e.slice(0,c),t,n),p=mu(e.slice(c),t,n),d=mu([u,p],t,n);return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),d}if(ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let c=new hY(e.map(u=>u.shape),t);return n.runWebGLProgram(c,e,a)}let{tensors2D:r,outShape:s}=bS(e,t,n),i=new dY(r.map(c=>c.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(c=>n.disposeIntermediateTensorInfo(c));let l=be({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function bS(e,t,n){let a=_.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>be({inputs:{x:r},attrs:{shape:[-1,k.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function xS(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=k.parseAxisParam(r,t[0].shape)[0],i=_.computeOutShape(t.map(c=>c.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(c=>k.sizeFromShape(c.shape)>0);if(o.length===1)return Bn({inputs:{x:o[0]},backend:n});let l=o.map(c=>c.shape);return _.assertParamsConsistent(l,s),mu(o,s,n)}var fY={kernelName:Mo,backendName:"webgl",kernelFunc:xS},vS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,u=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,v="",x="";n&&(a?v=`float activation(float a) { + `}};function Km(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Xm(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Wn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var yY={kernelName:Ld,backendName:"webgl",kernelFunc:Xm};function mu(e,t,n){let a=e[0].dtype;if(a==="complex64"){let c=e.map(m=>Tp({inputs:{input:m},backend:n})),u=e.map(m=>Xm({inputs:{input:m},backend:n})),p=mu(c,t,n),d=mu(u,t,n),h=ps({inputs:{real:p,imag:d},backend:n});return c.forEach(m=>n.disposeIntermediateTensorInfo(m)),u.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:c,outShape:u}=NS(e,t,n),p=c.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=c[0].shape[0]===1,h=T8(p,u,a,d),m=_.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>ee().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let c=Math.floor(e.length/2),u=mu(e.slice(0,c),t,n),p=mu(e.slice(c),t,n),d=mu([u,p],t,n);return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),d}if(ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let c=new gY(e.map(u=>u.shape),t);return n.runWebGLProgram(c,e,a)}let{tensors2D:r,outShape:s}=NS(e,t,n),i=new fY(r.map(c=>c.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(c=>n.disposeIntermediateTensorInfo(c));let l=be({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function NS(e,t,n){let a=_.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>be({inputs:{x:r},attrs:{shape:[-1,k.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function TS(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=k.parseAxisParam(r,t[0].shape)[0],i=_.computeOutShape(t.map(c=>c.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(c=>k.sizeFromShape(c.shape)>0);if(o.length===1)return Wn({inputs:{x:o[0]},backend:n});let l=o.map(c=>c.shape);return _.assertParamsConsistent(l,s),mu(o,s,n)}var bY={kernelName:Po,backendName:"webgl",kernelFunc:TS},SS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,u=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,v="",x="";n&&(a?v=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?v=`float activation(float a) { @@ -2034,7 +2034,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${x} setOutput(result); } - `}},gY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},xY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2122,7 +2122,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},yY=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:c,dilationHeight:u,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=hn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,v="";for(let x=0;x<=1;x++)for(let N=0;N<=1;N++)v+=` + `}},vY=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:c,dilationHeight:u,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=hn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,v="";for(let x=0;x<=1;x++)for(let N=0;N<=1;N++)v+=` blockIndex = rc.y + ${N}; pos = rc.x + ${x}; @@ -2166,7 +2166,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${f.output} = result; } - `}};function wS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,c=a.texData.get(e.dataId),u=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&u>uS,v=l[2]%2!=0&&!!c.isPacked;if(b||!ee().getBool("WEBGL_LAZILY_UNPACK")||!ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!v){let x=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],N=be({inputs:{x:e},backend:a,attrs:{shape:[1,x,n.inChannels]}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),C=Um({a:N,b:T,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=be({inputs:{x:C},backend:a,attrs:{shape:n.outShape}}),y.push(N),y.push(T),y.push(C)}else{let x=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),N={dataId:e.dataId,shape:[1,x,n.inChannels],dtype:e.dtype},T=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,k.assert(Lm(c.shape,N.shape),()=>`packed reshape ${c.shape} to ${N.shape} isn't free`);let C=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(C);let $=Um({a:N,b:C,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),F=a.texData.get($.dataId);k.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=T,F.shape=n.outShape,g=Bn({inputs:{x:$},backend:a}),g.shape=n.outShape,y.push($)}for(let x of y)a.disposeIntermediateTensorInfo(x);return g}function kS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:c,inChannels:u,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*c*u,g=d*p,y=[f,g],b=!0,v=!1,x=[],N=be({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,f,k.sizeFromShape(t.shape)/f]}});x.push(N),x.push(T);let C=new yY(y,N.shape,n),$=a.runWebGLProgram(C,[N],"float32"),F=be({inputs:{x:$},backend:a,attrs:{shape:[1,y[0],y[1]]}});x.push($),x.push(F);let O=r!=null,B=s!=null,W=o==="leakyrelu",G=o?Wm(o,!0):null,q=new aS(F.shape,T.shape,[1,g,n.outChannels],b,v,O,G,B,W),H=[F,T];if(r&&H.push(r),B&&H.push(s),W){let J=a.makeTensorInfo([],"float32",k.createScalarValue(i,"float32"));H.push(J),x.push(J)}let K=a.runWebGLProgram(q,H,"float32"),X=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],ne=be({inputs:{x:K},backend:a,attrs:{shape:X}});x.push(K);for(let J of x)a.disposeIntermediateTensorInfo(J);return ne}function bY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=wS({x:r,filter:s,convInfo:d,backend:n});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=kS({x:r,filter:s,convInfo:d,backend:n});else{let f=new vS(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=be({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var xY={kernelName:Fs,backendName:"webgl",kernelFunc:bY},vY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function CS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,c=a.texData.get(e.dataId),u=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&u>fS,v=l[2]%2!=0&&!!c.isPacked;if(b||!ee().getBool("WEBGL_LAZILY_UNPACK")||!ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!v){let x=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],N=be({inputs:{x:e},backend:a,attrs:{shape:[1,x,n.inChannels]}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),C=jm({a:N,b:T,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=be({inputs:{x:C},backend:a,attrs:{shape:n.outShape}}),y.push(N),y.push(T),y.push(C)}else{let x=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),N={dataId:e.dataId,shape:[1,x,n.inChannels],dtype:e.dtype},T=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,k.assert(Wm(c.shape,N.shape),()=>`packed reshape ${c.shape} to ${N.shape} isn't free`);let C=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(C);let F=jm({a:N,b:C,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),$=a.texData.get(F.dataId);k.assert($.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=T,$.shape=n.outShape,g=Wn({inputs:{x:F},backend:a}),g.shape=n.outShape,y.push(F)}for(let x of y)a.disposeIntermediateTensorInfo(x);return g}function _S({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:c,inChannels:u,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*c*u,g=d*p,y=[f,g],b=!0,v=!1,x=[],N=be({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,f,k.sizeFromShape(t.shape)/f]}});x.push(N),x.push(T);let C=new vY(y,N.shape,n),F=a.runWebGLProgram(C,[N],"float32"),$=be({inputs:{x:F},backend:a,attrs:{shape:[1,y[0],y[1]]}});x.push(F),x.push($);let P=r!=null,B=s!=null,W=o==="leakyrelu",G=o?Gm(o,!0):null,q=new uS($.shape,T.shape,[1,g,n.outChannels],b,v,P,G,B,W),j=[$,T];if(r&&j.push(r),B&&j.push(s),W){let J=a.makeTensorInfo([],"float32",k.createScalarValue(i,"float32"));j.push(J),x.push(J)}let X=a.runWebGLProgram(q,j,"float32"),K=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],ne=be({inputs:{x:X},backend:a,attrs:{shape:K}});x.push(X);for(let J of x)a.disposeIntermediateTensorInfo(J);return ne}function wY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=CS({x:r,filter:s,convInfo:d,backend:n});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=_S({x:r,filter:s,convInfo:d,backend:n});else{let f=new SS(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=be({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var kY={kernelName:$s,backendName:"webgl",kernelFunc:wY},IY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2208,7 +2208,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},wY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,c=s?2:3,u=s?3:1;this.userCode=` + `}},NY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,c=s?2:3,u=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2261,7 +2261,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},kY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},TY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2303,7 +2303,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},IY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,c=a-1-e.padInfo.left;this.userCode=` + `}},SY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,c=a-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${o}, ${l}, ${c}); void main() { @@ -2360,12 +2360,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}};function NY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,u,i,1,o,c,!1,p),h=new vY(d);return n.runWebGLProgram(h,[r,s],"float32")}var TY={kernelName:Id,backendName:"webgl",kernelFunc:NY};function SY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(c),d=_.computeConv2DInfo(i,s.shape,o,1,l,u,!1,p),h=new wY(d);return n.runWebGLProgram(h,[r,s],"float32")}var CY={kernelName:$s,backendName:"webgl",kernelFunc:SY};function _Y(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeConv3DInfo(r.shape,s.shape,i,l,o),u=new gY(c);return n.runWebGLProgram(u,[r,s],"float32")}var EY={kernelName:dc,backendName:"webgl",kernelFunc:_Y};function AY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,c=_.computeConv3DInfo(r.shape,l,i,1,o),u=new kY(c);return n.runWebGLProgram(u,[r,s],"float32")}var FY={kernelName:Nd,backendName:"webgl",kernelFunc:AY};function $Y(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,c=_.computeConv3DInfo(l,s.shape,o,1,i),u=new IY(c);return n.runWebGLProgram(u,[r,s],"float32")}var DY={kernelName:Td,backendName:"webgl",kernelFunc:$Y},RY=nS+` + `}};function CY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,u,i,1,o,c,!1,p),h=new IY(d);return n.runWebGLProgram(h,[r,s],"float32")}var _Y={kernelName:Sd,backendName:"webgl",kernelFunc:CY};function EY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(c),d=_.computeConv2DInfo(i,s.shape,o,1,l,u,!1,p),h=new NY(d);return n.runWebGLProgram(h,[r,s],"float32")}var AY={kernelName:Ds,backendName:"webgl",kernelFunc:EY};function FY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeConv3DInfo(r.shape,s.shape,i,l,o),u=new xY(c);return n.runWebGLProgram(u,[r,s],"float32")}var $Y={kernelName:pc,backendName:"webgl",kernelFunc:FY};function DY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,c=_.computeConv3DInfo(r.shape,l,i,1,o),u=new TY(c);return n.runWebGLProgram(u,[r,s],"float32")}var RY={kernelName:Cd,backendName:"webgl",kernelFunc:DY};function MY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,c=_.computeConv3DInfo(l,s.shape,o,1,i),u=new SY(c);return n.runWebGLProgram(u,[r,s],"float32")}var PY={kernelName:_d,backendName:"webgl",kernelFunc:MY},OY=lS+` return cos(x); -`,MY=Ze({opSnippet:RY}),PY={kernelName:Ds,backendName:"webgl",kernelFunc:MY},OY=` +`,LY=Ze({opSnippet:OY}),zY={kernelName:Rs,backendName:"webgl",kernelFunc:LY},BY=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,LY=Ze({opSnippet:OY}),zY={kernelName:Po,backendName:"webgl",kernelFunc:LY},BY=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[c]=t,[u,p]=n;this.outputShape=[c,u,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=u>1?[`${(i-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,v,x]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,WY=Ze({opSnippet:BY}),VY={kernelName:Oo,backendName:"webgl",kernelFunc:WY},UY=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[c]=t,[u,p]=n;this.outputShape=[c,u,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=u>1?[`${(i-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,v,x]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${b}); void main() { @@ -2426,21 +2426,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam setOutput(newValue); } } - `}},WY=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,u=new BY(r.shape,s.shape,o,l,c);return n.runWebGLProgram(u,[r,s,i],"float32")},VY={kernelName:Oo,backendName:"webgl",kernelFunc:WY},TS=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${IS(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` + `}},GY=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,u=new UY(r.shape,s.shape,o,l,c);return n.runWebGLProgram(u,[r,s,i],"float32")},HY={kernelName:Lo,backendName:"webgl",kernelFunc:GY},FS=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${ES(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { ${ft(a)} coords = getOutputCoords(); - int end = ${NS(a,"coords")}; + int end = ${AS(a,"coords")}; float val = ${r}; int pow2 = int(pow(2.0, index)); if (${i}) { int idx = ${o}; - ${NS(a,"coords")} = idx; - val += getX(${IS(a,"coords")}); + ${AS(a,"coords")} = idx; + val += getX(${ES(a,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function IS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function NS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function UY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,c=_.getAxesPermutation([s],l),u=r;c!=null&&(u=Tn({inputs:{x:r},backend:n,attrs:{perm:c}}));let p=_.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=r.shape[p],h=Bn({inputs:{x:u},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new TS(u.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new TS(u.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(c!=null){let m=_.getUndoAxesPermutation(c),f=Tn({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(u),f}return h}var GY={kernelName:Rs,backendName:"webgl",kernelFunc:UY};function HY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),c=n.readSync(s.dataId),u=UT(l,c,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}else if(r.shape.length===2){let l=n.bufferSync(r),c=n.bufferSync(s),u=x8(l,c,i,o);return n.makeTensorInfo(u.shape,s.dtype,u.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var jY={kernelName:Sd,backendName:"webgl",kernelFunc:HY},qY=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function ES(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function AS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function jY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,c=_.getAxesPermutation([s],l),u=r;c!=null&&(u=Tn({inputs:{x:r},backend:n,attrs:{perm:c}}));let p=_.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=u.shape[p],h=Wn({inputs:{x:u},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new FS(u.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new FS(u.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(c!=null){let m=_.getUndoAxesPermutation(c),f=Tn({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(u),f}return h}var qY={kernelName:Ms,backendName:"webgl",kernelFunc:jY};function KY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),c=n.readSync(s.dataId),u=XT(l,c,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}else if(r.shape.length===2){let l=n.bufferSync(r),c=n.bufferSync(s),u=I8(l,c,i,o);return n.makeTensorInfo(u.shape,s.dtype,u.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var XY={kernelName:Ed,backendName:"webgl",kernelFunc:KY},YY=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2459,7 +2459,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function KY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new qY(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var XY={kernelName:Lo,backendName:"webgl",kernelFunc:KY},SS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function ZY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new YY(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var JY={kernelName:zo,backendName:"webgl",kernelFunc:ZY},$S=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?g=`float activation(float a) { @@ -2515,7 +2515,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${y} setOutput(result); } - `}},CS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=m,g="int xR; int xC; int xCOffset;";for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=_.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!0),d;return ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new CS(p):d=new SS(p),n.runWebGLProgram(d,[r,s],"float32")}var ZY={kernelName:Ms,backendName:"webgl",kernelFunc:YY},JY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` + `}};function QY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:c}=a,u=l;u==null&&(u=[1,1]),k.assert(_.eitherStridesOrDilationsAreOne(i,u),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=_.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!0),d;return ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new DS(p):d=new $S(p),n.runWebGLProgram(d,[r,s],"float32")}var e7={kernelName:Ps,backendName:"webgl",kernelFunc:QY},t7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2703,7 +2703,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},QY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},n7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -2748,13 +2748,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}};function e7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,filterShape:u}=a,p=_.computeConv2DInfo(r.shape,u,i,o,l,c,!0),d=new JY(p);return n.runWebGLProgram(d,[r,s],"float32")}var t7={kernelName:Cd,backendName:"webgl",kernelFunc:e7};function n7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,inputShape:u}=a,p=_.computeConv2DInfo(u,s.shape,i,o,l,c,!0),d=new QY(p);return n.runWebGLProgram(d,[r,s],"float32")}var a7={kernelName:_d,backendName:"webgl",kernelFunc:n7},r7=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function a7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,filterShape:u}=a,p=_.computeConv2DInfo(r.shape,u,i,o,l,c,!0),d=new t7(p);return n.runWebGLProgram(d,[r,s],"float32")}var r7={kernelName:Ad,backendName:"webgl",kernelFunc:a7};function s7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,inputShape:u}=a,p=_.computeConv2DInfo(u,s.shape,i,o,l,c,!0),d=new n7(p);return n.runWebGLProgram(d,[r,s],"float32")}var i7={kernelName:Fd,backendName:"webgl",kernelFunc:s7},o7=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function s7(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=k.sizeFromShape(a.shape),i=be({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new r7(s),l=n.runWebGLProgram(o,[i],i.dtype),c=be({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),c}var i7={kernelName:Ed,backendName:"webgl",kernelFunc:s7},o7=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:c}=e,{top:u,left:p}=a;this.userCode=` + `}};function l7(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=k.sizeFromShape(a.shape),i=be({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new o7(s),l=n.runWebGLProgram(o,[i],i.dtype),c=be({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),c}var u7={kernelName:$d,backendName:"webgl",kernelFunc:l7},c7=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:c}=e,{top:u,left:p}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${u}, ${p}); const float neg_infinity = -3.4e38; @@ -2792,7 +2792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam float result = curVal; setOutput(result); } - `}};function l7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),u,p=new o7(c);u=n.runWebGLProgram(p,[r,s],"float32");let d=be({inputs:{x:u},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(u),d}var u7={kernelName:hc,backendName:"webgl",kernelFunc:l7},c7="return (x >= 0.0) ? x : (exp(x) - 1.0);",p7=` + `}};function p7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),u,p=new c7(c);u=n.runWebGLProgram(p,[r,s],"float32");let d=be({inputs:{x:u},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(u),d}var d7={kernelName:dc,backendName:"webgl",kernelFunc:p7},h7="return (x >= 0.0) ? x : (exp(x) - 1.0);",m7=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -2801,12 +2801,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,d7=Ze({opSnippet:c7,packedOpSnippet:p7}),h7={kernelName:zo,backendName:"webgl",kernelFunc:d7},m7="return (b >= 1.0) ? a : a * (b + 1.0);",f7=` +`,f7=Ze({opSnippet:h7,packedOpSnippet:m7}),g7={kernelName:Bo,backendName:"webgl",kernelFunc:f7},y7="return (b >= 1.0) ? a : a * (b + 1.0);",b7=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,g7=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new wp(f7,a.shape,r.shape):new hu(m7,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},y7={kernelName:$d,backendName:"webgl",kernelFunc:g7},b7=` +`,x7=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new kp(b7,a.shape,r.shape):new hu(y7,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},v7={kernelName:Md,backendName:"webgl",kernelFunc:x7},w7=` return vec4(equal(a, b)); -`,x7="return float(a == b);",v7=nn({opSnippet:x7,packedOpSnippet:b7,dtype:"bool"}),w7={kernelName:Wo,backendName:"webgl",kernelFunc:v7},k7=` +`,k7="return float(a == b);",I7=nn({opSnippet:k7,packedOpSnippet:w7,dtype:"bool"}),N7={kernelName:Vo,backendName:"webgl",kernelFunc:I7},T7=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -2821,7 +2821,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,I7=Ze({opSnippet:k7}),N7={kernelName:Bo,backendName:"webgl",kernelFunc:I7},_S="return exp(x);",ES=Ze({opSnippet:_S,packedOpSnippet:_S,cpuKernelImpl:k8}),T7={kernelName:Os,backendName:"webgl",kernelFunc:ES};function Uv(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(k.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),be({inputs:{x:s},backend:a,attrs:{shape:o}})}var S7={kernelName:Vo,backendName:"webgl",kernelFunc:Uv},AS="return exp(x) - 1.0;",C7=Ze({opSnippet:AS,packedOpSnippet:AS,cpuKernelImpl:I8}),_7={kernelName:Uo,backendName:"webgl",kernelFunc:C7},FS=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,S7=Ze({opSnippet:T7}),C7={kernelName:Wo,backendName:"webgl",kernelFunc:S7},RS="return exp(x);",MS=Ze({opSnippet:RS,packedOpSnippet:RS,cpuKernelImpl:S8}),_7={kernelName:Ls,backendName:"webgl",kernelFunc:MS};function Xv(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(k.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),be({inputs:{x:s},backend:a,attrs:{shape:o}})}var E7={kernelName:Uo,backendName:"webgl",kernelFunc:Xv},PS="return exp(x) - 1.0;",A7=Ze({opSnippet:PS,packedOpSnippet:PS,cpuKernelImpl:C8}),F7={kernelName:Go,backendName:"webgl",kernelFunc:A7},OS=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -2854,13 +2854,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function $S(e,t,n){let a=n.texData.get(e.dataId),r=k.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=be({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,c=new FS("real",l,t),u=new FS("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=ps({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=be({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function E7(e){let{inputs:t,backend:n}=e,{input:a}=t;return $S(a,!1,n)}var A7={kernelName:Dd,backendName:"webgl",kernelFunc:E7},F7=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function LS(e,t,n){let a=n.texData.get(e.dataId),r=k.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=be({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,c=new OS("real",l,t),u=new OS("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=ps({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=be({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function $7(e){let{inputs:t,backend:n}=e,{input:a}=t;return LS(a,!1,n)}var D7={kernelName:Pd,backendName:"webgl",kernelFunc:$7},R7=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function Gv(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||k.inferDtype(r),s==="string"){let i=k.getArrayFromDType(s,k.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new F7(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var $7={kernelName:mc,backendName:"webgl",kernelFunc:Gv},D7=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function Yv(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||k.inferDtype(r),s==="string"){let i=k.getArrayFromDType(s,k.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new R7(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var M7={kernelName:hc,backendName:"webgl",kernelFunc:Yv},P7=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -2874,7 +2874,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(outputValue); } - `}},R7={kernelName:Go,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new D7(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},DS="return floor(x);",M7=Ze({opSnippet:DS,packedOpSnippet:DS,cpuKernelImpl:N8}),P7={kernelName:Ls,backendName:"webgl",kernelFunc:M7},O7=` + `}},O7={kernelName:Ho,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new P7(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},zS="return floor(x);",L7=Ze({opSnippet:zS,packedOpSnippet:zS,cpuKernelImpl:_8}),z7={kernelName:zs,backendName:"webgl",kernelFunc:L7},B7=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -2884,7 +2884,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } else { return NAN; } -`,L7=` +`,W7=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -2905,7 +2905,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,z7=nn({opSnippet:O7,packedOpSnippet:L7,dtype:"int32"}),B7={kernelName:zs,backendName:"webgl",kernelFunc:z7},W7=class{constructor(e){this.variableNames=["A"];let t=hn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,V7=nn({opSnippet:B7,packedOpSnippet:W7,dtype:"int32"}),U7={kernelName:Bs,backendName:"webgl",kernelFunc:V7},G7=class{constructor(e){this.variableNames=["A"];let t=hn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2927,7 +2927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},V7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=hn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},H7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=hn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2961,7 +2961,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${t.output} = result; } - `}},G7={kernelName:qd,backendName:"webgl",kernelFunc:U7},fu;function U7(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap,[c,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,c],d=[u,c,s];(o||i||l)&&(fu==null&&(fu=document.createElement("canvas").getContext("2d")),fu.canvas.width=c,fu.canvas.height=u,fu.drawImage(r,0,0,c,u),r=fu.canvas);let h=n.makeTensorInfo(p,"int32");n.texData.get(h.dataId).usage=Qn.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),r);let m=ee().getBool("WEBGL_PACK")?new V7(d):new W7(d),f=n.runWebGLProgram(m,[h],"int32");return n.disposeData(h.dataId),f}function H7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=_.convertConv2DDataFormat(u),g=_.computeConv2DInfo(r.shape,s.shape,l,p,c,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=wS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=kS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let x=i!=null,N=o!=null,T=h==="leakyrelu",C=h?Wm(h,!1):null,$=new vS(g,x,C,N,T),F=[r,s];if(i&&F.push(i),o&&F.push(o),T){let O=n.makeTensorInfo([],"float32",k.createScalarValue(m,"float32"));F.push(O),b.push(O)}y=n.runWebGLProgram($,F,"float32")}let v=be({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var j7={kernelName:yi,backendName:"webgl",kernelFunc:H7};function q7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=u;f==null&&(f=[1,1]),k.assert(_.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=_.computeConv2DInfo(r.shape,s.shape,l,f,c,p,!0),y=ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Wm(d,y):null,v=[r,s],x=i!=null,N=o!=null,T=d==="leakyrelu";if(x&&v.push(i),N&&v.push(o),T){let F=n.makeTensorInfo([],"float32",k.createScalarValue(h,"float32"));v.push(F),m.push(F)}let C;y?C=new CS(g,x,b,N,T):C=new SS(g,x,b,N,T);let $=n.runWebGLProgram(C,v,"float32");return m.forEach(F=>n.disposeIntermediateTensorInfo(F)),$}var K7={kernelName:bi,backendName:"webgl",kernelFunc:q7},X7=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=ft(t.length),r=ft(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` + `}},q7={kernelName:Yd,backendName:"webgl",kernelFunc:j7},fu;function j7(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap,[c,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,c],d=[u,c,s];(o||i||l)&&(fu==null&&(fu=document.createElement("canvas").getContext("2d")),fu.canvas.width=c,fu.canvas.height=u,fu.drawImage(r,0,0,c,u),r=fu.canvas);let h=n.makeTensorInfo(p,"int32");n.texData.get(h.dataId).usage=Qn.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),r);let m=ee().getBool("WEBGL_PACK")?new H7(d):new G7(d),f=n.runWebGLProgram(m,[h],"int32");return n.disposeData(h.dataId),f}function K7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=_.convertConv2DDataFormat(u),g=_.computeConv2DInfo(r.shape,s.shape,l,p,c,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=CS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=_S({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let x=i!=null,N=o!=null,T=h==="leakyrelu",C=h?Gm(h,!1):null,F=new SS(g,x,C,N,T),$=[r,s];if(i&&$.push(i),o&&$.push(o),T){let P=n.makeTensorInfo([],"float32",k.createScalarValue(m,"float32"));$.push(P),b.push(P)}y=n.runWebGLProgram(F,$,"float32")}let v=be({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var X7={kernelName:xi,backendName:"webgl",kernelFunc:K7};function Y7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=u;f==null&&(f=[1,1]),k.assert(_.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=_.computeConv2DInfo(r.shape,s.shape,l,f,c,p,!0),y=ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?Gm(d,y):null,v=[r,s],x=i!=null,N=o!=null,T=d==="leakyrelu";if(x&&v.push(i),N&&v.push(o),T){let $=n.makeTensorInfo([],"float32",k.createScalarValue(h,"float32"));v.push($),m.push($)}let C;y?C=new DS(g,x,b,N,T):C=new $S(g,x,b,N,T);let F=n.runWebGLProgram(C,v,"float32");return m.forEach($=>n.disposeIntermediateTensorInfo($)),F}var Z7={kernelName:vi,backendName:"webgl",kernelFunc:Y7},J7=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=ft(t.length),r=ft(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` ${a} strides = ${a}(${this.strides}); void main() { ${r} coords = getOutputCoords(); @@ -2972,21 +2972,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(getX(flattenIndex, coords[1])); } - `}};function Y7(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,c,u]=_.prepareAndValidate(a,r),p=be({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=be({inputs:{x:a},backend:n,attrs:{shape:[k.sizeFromShape(a.shape)/c,c]}}),h=new X7(i,u,[l,c]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var Z7={kernelName:jo,backendName:"webgl",kernelFunc:Y7},Q7=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ft(this.rank),a=J7(e,2);this.userCode=` + `}};function Q7(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,c,u]=_.prepareAndValidate(a,r),p=be({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=be({inputs:{x:a},backend:n,attrs:{shape:[k.sizeFromShape(a.shape)/c,c]}}),h=new J7(i,u,[l,c]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var eZ={kernelName:qo,backendName:"webgl",kernelFunc:Q7},nZ=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ft(this.rank),a=tZ(e,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${a})); } - `}};function J7(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(N)),n.makeTensorInfo(c.outputShape,x.dtype,x.values)}let f=new Q7(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=be({inputs:{x:g},backend:n,attrs:{shape:c.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var tZ={kernelName:Ho,backendName:"webgl",kernelFunc:eZ},nZ="return float(a > b);",aZ=` + `}};function tZ(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(N)),n.makeTensorInfo(c.outputShape,x.dtype,x.values)}let f=new nZ(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=be({inputs:{x:g},backend:n,attrs:{shape:c.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var rZ={kernelName:jo,backendName:"webgl",kernelFunc:aZ},sZ="return float(a > b);",iZ=` return vec4(greaterThan(a, b)); -`,rZ=nn({opSnippet:nZ,packedOpSnippet:aZ,cpuKernelImpl:S8,dtype:"bool"}),sZ={kernelName:qo,backendName:"webgl",kernelFunc:rZ},iZ="return float(a >= b);",oZ=` +`,oZ=nn({opSnippet:sZ,packedOpSnippet:iZ,cpuKernelImpl:A8,dtype:"bool"}),lZ={kernelName:Ko,backendName:"webgl",kernelFunc:oZ},uZ="return float(a >= b);",cZ=` return vec4(greaterThanEqual(a, b)); -`,lZ=nn({opSnippet:iZ,packedOpSnippet:oZ,dtype:"bool"}),uZ={kernelName:Ws,backendName:"webgl",kernelFunc:lZ};function cZ(e){let{inputs:t,backend:n}=e,{input:a}=t;return $S(a,!0,n)}var pZ={kernelName:Rd,backendName:"webgl",kernelFunc:cZ},dZ="return float(!isnan(x) && !isinf(x));",hZ=Ze({opSnippet:dZ,dtype:"bool"}),mZ={kernelName:Xo,backendName:"webgl",kernelFunc:hZ},fZ="return float(isinf(x));",gZ=Ze({opSnippet:fZ,dtype:"bool"}),yZ={kernelName:Yo,backendName:"webgl",kernelFunc:gZ},bZ="return float(isnan(x));",xZ=Ze({opSnippet:bZ,dtype:"bool"}),vZ={kernelName:Zo,backendName:"webgl",kernelFunc:xZ},wZ="return float(a < b);",kZ=` +`,pZ=nn({opSnippet:uZ,packedOpSnippet:cZ,dtype:"bool"}),dZ={kernelName:Vs,backendName:"webgl",kernelFunc:pZ};function hZ(e){let{inputs:t,backend:n}=e,{input:a}=t;return LS(a,!0,n)}var mZ={kernelName:Od,backendName:"webgl",kernelFunc:hZ},fZ="return float(!isnan(x) && !isinf(x));",gZ=Ze({opSnippet:fZ,dtype:"bool"}),yZ={kernelName:Xo,backendName:"webgl",kernelFunc:gZ},bZ="return float(isinf(x));",xZ=Ze({opSnippet:bZ,dtype:"bool"}),vZ={kernelName:Yo,backendName:"webgl",kernelFunc:xZ},wZ="return float(isnan(x));",kZ=Ze({opSnippet:wZ,dtype:"bool"}),IZ={kernelName:Zo,backendName:"webgl",kernelFunc:kZ},NZ="return float(a < b);",TZ=` return vec4(lessThan(a, b)); -`,IZ=nn({opSnippet:wZ,packedOpSnippet:kZ,cpuKernelImpl:C8,dtype:"bool"}),NZ={kernelName:Jo,backendName:"webgl",kernelFunc:IZ},TZ="return float(a <= b);",SZ=` +`,SZ=nn({opSnippet:NZ,packedOpSnippet:TZ,cpuKernelImpl:F8,dtype:"bool"}),CZ={kernelName:Jo,backendName:"webgl",kernelFunc:SZ},_Z="return float(a <= b);",EZ=` return vec4(lessThanEqual(a, b)); -`,CZ=nn({opSnippet:TZ,packedOpSnippet:SZ,dtype:"bool"}),_Z={kernelName:Qo,backendName:"webgl",kernelFunc:CZ};function EZ(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=_8(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var AZ={kernelName:Pd,backendName:"webgl",kernelFunc:EZ},FZ=`if (x < 0.0) return NAN; - return log(x);`,$Z=` +`,AZ=nn({opSnippet:_Z,packedOpSnippet:EZ,dtype:"bool"}),FZ={kernelName:Qo,backendName:"webgl",kernelFunc:AZ};function $Z(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=$8(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var DZ={kernelName:zd,backendName:"webgl",kernelFunc:$Z},RZ=`if (x < 0.0) return NAN; + return log(x);`,MZ=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -2995,16 +2995,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam result.a = isNaN.a == 1.0 ? NAN : result.a; return result; -`,DZ=Ze({opSnippet:FZ,packedOpSnippet:$Z,cpuKernelImpl:E8}),RZ={kernelName:Us,backendName:"webgl",kernelFunc:DZ},MZ="return log(1.0 + x);",PZ=Ze({opSnippet:MZ}),OZ={kernelName:el,backendName:"webgl",kernelFunc:PZ},LZ="return float(a >= 1.0 && b >= 1.0);",zZ=` +`,PZ=Ze({opSnippet:RZ,packedOpSnippet:MZ,cpuKernelImpl:D8}),OZ={kernelName:Hs,backendName:"webgl",kernelFunc:PZ},LZ="return log(1.0 + x);",zZ=Ze({opSnippet:LZ}),BZ={kernelName:el,backendName:"webgl",kernelFunc:zZ},WZ="return float(a >= 1.0 && b >= 1.0);",VZ=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,BZ=nn({opSnippet:LZ,packedOpSnippet:zZ,dtype:"bool"}),WZ={kernelName:tl,backendName:"webgl",kernelFunc:BZ},VZ="return float(!(x >= 1.0));",UZ=Ze({opSnippet:VZ}),GZ={kernelName:fc,backendName:"webgl",kernelFunc:UZ},HZ="return float(a >= 1.0 || b >= 1.0);",jZ=` +`,UZ=nn({opSnippet:WZ,packedOpSnippet:VZ,dtype:"bool"}),GZ={kernelName:tl,backendName:"webgl",kernelFunc:UZ},HZ="return float(!(x >= 1.0));",jZ=Ze({opSnippet:HZ}),qZ={kernelName:mc,backendName:"webgl",kernelFunc:jZ},KZ="return float(a >= 1.0 || b >= 1.0);",XZ=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,qZ=nn({opSnippet:HZ,packedOpSnippet:jZ,dtype:"bool"}),KZ={kernelName:gc,backendName:"webgl",kernelFunc:qZ},XZ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,YZ=nn({opSnippet:KZ,packedOpSnippet:XZ,dtype:"bool"}),ZZ={kernelName:fc,backendName:"webgl",kernelFunc:YZ},JZ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3023,7 +3023,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam float val = x * ${o}; setOutput(val); } - `}},YZ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},QZ=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3085,7 +3085,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},ZZ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,c=ee().getBool("WEBGL_PACK_NORMALIZATION")?new YZ(r.shape,s,i,o,l):new XZ(r.shape,s,i,o,l);return n.runWebGLProgram(c,[r],r.dtype)},JZ={kernelName:yc,backendName:"webgl",kernelFunc:ZZ},QZ=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},e9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,c=ee().getBool("WEBGL_PACK_NORMALIZATION")?new QZ(r.shape,s,i,o,l):new JZ(r.shape,s,i,o,l);return n.runWebGLProgram(c,[r],r.dtype)},t9={kernelName:gc,backendName:"webgl",kernelFunc:e9},n9=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3140,14 +3140,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(result); } - `}},e9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:c,beta:u}=a,p=new QZ(r.shape,o,l,c,u);return n.runWebGLProgram(p,[r,s,i],r.dtype)},t9={kernelName:Od,backendName:"webgl",kernelFunc:e9};function n9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ji(i,e.dtype,"max",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function RS(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,v=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:c,beta:u}=a,p=new n9(r.shape,o,l,c,u);return n.runWebGLProgram(p,[r,s,i],r.dtype)},r9={kernelName:Bd,backendName:"webgl",kernelFunc:a9};function s9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Ki(i,e.dtype,"max",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function BS(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,v=new Array(o);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Bn({inputs:{x:r},backend:n});let p=new kp(u,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var u9={kernelName:js,backendName:"webgl",kernelFunc:l9};function c9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,c,l),d=new Bv(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var p9={kernelName:bc,backendName:"webgl",kernelFunc:c9},d9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,u9=nn({opSnippet:o9,packedOpSnippet:l9,cpuKernelImpl:M8}),c9={kernelName:qs,backendName:"webgl",kernelFunc:u9};function p9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;vp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Wn({inputs:{x:r},backend:n});let p=new Ip(u,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var d9={kernelName:Ks,backendName:"webgl",kernelFunc:p9};function h9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,c,l),d=new jv(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var m9={kernelName:yc,backendName:"webgl",kernelFunc:h9},f9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3193,7 +3193,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}},h9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,u=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=c-1-e.padInfo.left,h=o*l*c-1;this.userCode=` + `}},g9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,u=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=c-1-e.padInfo.left,h=o*l*c-1;this.userCode=` const ivec3 pads = ivec3(${u}, ${p}, ${d}); void main() { @@ -3257,14 +3257,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam } setOutput(dotProd); } - `}};function m9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new Bv(d,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new h9(d),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var f9={kernelName:zd,backendName:"webgl",kernelFunc:m9};function g9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;xp([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=!0,m=new kp(d,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new d9(d),y=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),y}var y9={kernelName:Ld,backendName:"webgl",kernelFunc:g9};function b9(e,t,n,a){let r=new kp(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new kp(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var x9={kernelName:Bd,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;k.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let c=[1,1];k.assert(_.eitherStridesOrDilationsAreOne(s,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${c}'`);let u=_.computePool2DInfo(a.shape,r,s,c,i),[p,d]=b9(a,o,u,l);return[p,d]}};function v9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ji(i,"float32","mean",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var w9={kernelName:qs,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=k.parseAxisParam(s,a.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let v=i.texData.get(m.dataId).values,x=new Array(o);for(let C=0;C{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;k.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let c=[1,1];k.assert(_.eitherStridesOrDilationsAreOne(s,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${c}'`);let u=_.computePool2DInfo(a.shape,r,s,c,i),[p,d]=w9(a,o,u,l);return[p,d]}};function I9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Ki(i,"float32","mean",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var N9={kernelName:Xs,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=k.parseAxisParam(s,a.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let v=i.texData.get(m.dataId).values,x=new Array(o);for(let C=0;Cc[0]+e[u]+c[1]);let a=e.length,r=ft(a),s=t.map(c=>c[0]).join(","),i=t.map((c,u)=>c[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,E9=nn({opSnippet:C9,packedOpSnippet:_9,cpuKernelImpl:P8}),A9={kernelName:Zs,backendName:"webgl",kernelFunc:E9},F9=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((c,u)=>c[0]+e[u]+c[1]);let a=e.length,r=ft(a),s=t.map(c=>c[0]).join(","),i=t.map((c,u)=>c[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3293,7 +3293,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},E9=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ft(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=mn("rc",a),l=mn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` + `}},$9=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ft(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=mn("rc",a),l=mn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${p}; @@ -3349,13 +3349,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam ${d} setOutput(result); } - `}},A9=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new E9(a.shape,r,s):new _9(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},F9={kernelName:xc,backendName:"webgl",kernelFunc:A9},$9=`if (b == 0.0) return NAN; - return mod(a, b);`,D9=` + `}},D9=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new $9(a.shape,r,s):new F9(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},R9={kernelName:bc,backendName:"webgl",kernelFunc:D9},M9=`if (b == 0.0) return NAN; + return mod(a, b);`,P9=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+Bm+` + `+Um+` return result; -`,R9=nn({opSnippet:$9,packedOpSnippet:D9}),M9={kernelName:nl,backendName:"webgl",kernelFunc:R9},P9=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` +`,O9=nn({opSnippet:M9,packedOpSnippet:P9}),L9={kernelName:nl,backendName:"webgl",kernelFunc:O9},z9=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` uniform float seed; void main() { @@ -3377,11 +3377,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,NX=Ze({opSnippet:IX}),TX={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},O9=` + `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},B9=` if (a == b) { return 1.0; }; -return a / b;`,L9=` +return a / b;`,W9=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3399,14 +3399,14 @@ return a / b;`,L9=` } return result; -`,MS=nn({opSnippet:O9,packedOpSnippet:L9,checkOutOfBounds:!0}),z9={kernelName:Ps,backendName:"webgl",kernelFunc:MS},PS="return a - b;",OS=nn({opSnippet:PS,packedOpSnippet:PS,supportsComplex:!0,cpuKernelImpl:B8}),B9={kernelName:hi,backendName:"webgl",kernelFunc:OS};function LS(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=k.parseAxisParam([s],r.shape),o=RS({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=_.expandShapeToKeepDim(o.shape,i),c=be({inputs:{x:o},backend:n,attrs:{shape:l}}),u=OS({inputs:{a:r,b:c},backend:n}),p=ES({inputs:{x:u},backend:n}),d=zv({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=be({inputs:{x:d},backend:n,attrs:{shape:l}}),m=MS({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var W9={kernelName:pi,backendName:"webgl",kernelFunc:LS};function V9(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:LS({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),c=l.shape[0],u=l.shape[1],p=new P9(c,u,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var U9={kernelName:Wd,backendName:"webgl",kernelFunc:V9},zS="return -x;";function G9(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=R8(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new du(a.shape,zS):r=new cs(a.shape,zS),n.runWebGLProgram(r,[a],a.dtype)}var H9={kernelName:al,backendName:"webgl",kernelFunc:G9},j9=Za.nonMaxSuppressionV3Impl;function q9(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,c=n.readSync(r.dataId),u=n.readSync(s.dataId),{selectedIndices:p}=j9(c,u,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var K9={kernelName:sl,backendName:"webgl",kernelFunc:q9},X9=Za.nonMaxSuppressionV4Impl;function Y9(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=X9(u,p,i,o,l,c);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Z9={kernelName:il,backendName:"webgl",kernelFunc:Y9},J9=Za.nonMaxSuppressionV5Impl;function Q9(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=c,{selectedIndices:g,selectedScores:y}=J9(u,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var eJ={kernelName:ol,backendName:"webgl",kernelFunc:Q9},tJ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`,WS=nn({opSnippet:B9,packedOpSnippet:W9,checkOutOfBounds:!0}),V9={kernelName:Os,backendName:"webgl",kernelFunc:WS},VS="return a - b;",US=nn({opSnippet:VS,packedOpSnippet:VS,supportsComplex:!0,cpuKernelImpl:G8}),U9={kernelName:fi,backendName:"webgl",kernelFunc:US};function GS(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=k.parseAxisParam([s],r.shape),o=BS({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=_.expandShapeToKeepDim(o.shape,i),c=be({inputs:{x:o},backend:n,attrs:{shape:l}}),u=US({inputs:{a:r,b:c},backend:n}),p=MS({inputs:{x:u},backend:n}),d=Hv({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=be({inputs:{x:d},backend:n,attrs:{shape:l}}),m=WS({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var G9={kernelName:hi,backendName:"webgl",kernelFunc:GS};function H9(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:GS({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),c=l.shape[0],u=l.shape[1],p=new z9(c,u,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var j9={kernelName:Gd,backendName:"webgl",kernelFunc:H9},HS="return -x;";function q9(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=L8(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new du(a.shape,HS):r=new cs(a.shape,HS),n.runWebGLProgram(r,[a],a.dtype)}var K9={kernelName:al,backendName:"webgl",kernelFunc:q9},X9=Ja.nonMaxSuppressionV3Impl;function Y9(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,c=n.readSync(r.dataId),u=n.readSync(s.dataId),{selectedIndices:p}=X9(c,u,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var Z9={kernelName:sl,backendName:"webgl",kernelFunc:Y9},J9=Ja.nonMaxSuppressionV4Impl;function Q9(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=J9(u,p,i,o,l,c);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var eJ={kernelName:il,backendName:"webgl",kernelFunc:Q9},tJ=Ja.nonMaxSuppressionV5Impl;function nJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=c,{selectedIndices:g,selectedScores:y}=tJ(u,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var aJ={kernelName:ol,backendName:"webgl",kernelFunc:nJ},rJ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},nJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=k.sizeFromShape(r.shape),c=new tJ(l,s,i,o),u=be({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(c,[u],r.dtype);n.disposeIntermediateTensorInfo(u);let d=[...r.shape,s],h=be({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},aJ={kernelName:Zs,backendName:"webgl",kernelFunc:nJ};function qm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Np({inputs:{input:a},backend:n}),s=qm({inputs:{x:r},backend:n}),i=jm({inputs:{input:a},backend:n}),o=qm({inputs:{x:i},backend:n}),l=ps({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Gv({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var rJ={kernelName:Tl,backendName:"webgl",kernelFunc:qm};function BS(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Np({inputs:{input:a},backend:n}),s=BS({inputs:{x:r},backend:n}),i=jm({inputs:{input:a},backend:n}),o=qm({inputs:{x:i},backend:n}),l=ps({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Gv({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var sJ={kernelName:ll,backendName:"webgl",kernelFunc:BS};function iJ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Uv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Uv({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=xS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var oJ={kernelName:ul,backendName:"webgl",kernelFunc:iJ},lJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);let a=e.length,r=ft(a),s=t.map(l=>l[0]).join(","),i=t.map((l,c)=>l[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},sJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=k.sizeFromShape(r.shape),c=new rJ(l,s,i,o),u=be({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(c,[u],r.dtype);n.disposeIntermediateTensorInfo(u);let d=[...r.shape,s],h=be({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},iJ={kernelName:Qs,backendName:"webgl",kernelFunc:sJ};function Ym(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Tp({inputs:{input:a},backend:n}),s=Ym({inputs:{x:r},backend:n}),i=Xm({inputs:{input:a},backend:n}),o=Ym({inputs:{x:i},backend:n}),l=ps({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Yv({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var oJ={kernelName:Tl,backendName:"webgl",kernelFunc:Ym};function jS(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Tp({inputs:{input:a},backend:n}),s=jS({inputs:{x:r},backend:n}),i=Xm({inputs:{input:a},backend:n}),o=Ym({inputs:{x:i},backend:n}),l=ps({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return Yv({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var lJ={kernelName:ll,backendName:"webgl",kernelFunc:jS};function uJ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Xv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Xv({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=TS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var cJ={kernelName:ul,backendName:"webgl",kernelFunc:uJ},pJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);let a=e.length,r=ft(a),s=t.map(l=>l[0]).join(","),i=t.map((l,c)=>l[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3431,7 +3431,7 @@ return a / b;`,L9=` setOutput(getX(${o})); } } - `}},uJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ft(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=mn("rc",a),l=mn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},dJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ft(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=mn("rc",a),l=mn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${c}) { `,a===1?"":`} rc = outputLoc; @@ -3455,7 +3455,7 @@ return a / b;`,L9=` ${h} setOutput(result); } - `}},WS=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new uJ(r.shape,s,i):new lJ(r.shape,s,i);return n.runWebGLProgram(o,[r],r.dtype)},cJ={kernelName:Js,backendName:"webgl",kernelFunc:WS},pJ=` + `}},qS=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new dJ(r.shape,s,i):new pJ(r.shape,s,i);return n.runWebGLProgram(o,[r],r.dtype)},hJ={kernelName:ei,backendName:"webgl",kernelFunc:qS},mJ=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -3464,7 +3464,7 @@ return a / b;`,L9=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,dJ=` +`,fJ=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -3478,11 +3478,11 @@ return a / b;`,L9=` result.a = isExpZero.a ? 1.0 : result.a; vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+Bm+` + `+Um+` return result; -`,hJ=nn({opSnippet:pJ,packedOpSnippet:dJ}),mJ={kernelName:Qs,backendName:"webgl",kernelFunc:hJ};function fJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],c=k.parseAxisParam(s,r.shape),u=c,p=_.getAxesPermutation(u,o),d=r;p!=null&&(d=Tn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=_.getInnerMostAxes(u.length,o),l.push(d)),_.assertAxesAreInnerMostDims("prod",u,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=M8(d.shape,d.dtype,m,u);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=_.computeOutAndReduceShapes(d.shape,u),g=k.sizeFromShape(f),y=be({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=Qd(r.dtype),v=ji(y,b,"prod",n);h=be({inputs:{x:v},backend:n,attrs:{shape:m}}),l.push(y),l.push(v)}if(i){l.push(h);let m=_.expandShapeToKeepDim(h.shape,c);h=be({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var gJ={kernelName:cl,backendName:"webgl",kernelFunc:fJ},VS=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=P8(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},yJ={kernelName:vc,backendName:"webgl",kernelFunc:VS},bJ="return 1.0 / x;",xJ=Ze({opSnippet:bJ}),vJ={kernelName:pl,backendName:"webgl",kernelFunc:xJ},wJ=Ra+` +`,gJ=nn({opSnippet:mJ,packedOpSnippet:fJ}),yJ={kernelName:ti,backendName:"webgl",kernelFunc:gJ};function bJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],c=k.parseAxisParam(s,r.shape),u=c,p=_.getAxesPermutation(u,o),d=r;p!=null&&(d=Tn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=_.getInnerMostAxes(u.length,o),l.push(d)),_.assertAxesAreInnerMostDims("prod",u,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=z8(d.shape,d.dtype,m,u);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=_.computeOutAndReduceShapes(d.shape,u),g=k.sizeFromShape(f),y=be({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=nh(r.dtype),v=Ki(y,b,"prod",n);h=be({inputs:{x:v},backend:n,attrs:{shape:m}}),l.push(y),l.push(v)}if(i){l.push(h);let m=_.expandShapeToKeepDim(h.shape,c);h=be({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var xJ={kernelName:cl,backendName:"webgl",kernelFunc:bJ},KS=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=B8(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},vJ={kernelName:xc,backendName:"webgl",kernelFunc:KS},wJ="return 1.0 / x;",kJ=Ze({opSnippet:wJ}),IJ={kernelName:pl,backendName:"webgl",kernelFunc:kJ},NJ=Ma+` return (x < 0.0) ? 0.0 : x; -`,kJ=` +`,TJ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3492,9 +3492,9 @@ return a / b;`,L9=` result.a = isNaN.a ? x.a : result.a; return result; -`,IJ=Ze({opSnippet:wJ,packedOpSnippet:kJ}),NJ={kernelName:ti,backendName:"webgl",kernelFunc:IJ},TJ=Ra+` +`,SJ=Ze({opSnippet:NJ,packedOpSnippet:TJ}),CJ={kernelName:ai,backendName:"webgl",kernelFunc:SJ},_J=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,SJ=` +`,EJ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3504,7 +3504,7 @@ return a / b;`,L9=` result.a = isNaN.a ? x.a : result.a; return result; -`,CJ=Ze({opSnippet:TJ,packedOpSnippet:SJ}),_J={kernelName:ai,backendName:"webgl",kernelFunc:CJ},EJ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,AJ=Ze({opSnippet:_J,packedOpSnippet:EJ}),FJ={kernelName:si,backendName:"webgl",kernelFunc:AJ},$J=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/u[0]}, ${c[1]/u[1]}); @@ -3537,7 +3537,7 @@ return a / b;`,L9=` setOutput(newValue); } - `}},AJ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},DJ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/u[0]}, ${c[1]/u[1]}, @@ -3614,7 +3614,7 @@ return a / b;`,L9=` setOutput(newValue); } - `}};function FJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=ee().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new AJ(r.shape,l,c,s,i):new EJ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],"float32")}var $J={kernelName:ni,backendName:"webgl",kernelFunc:FJ},DJ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function RJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=ee().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new DJ(r.shape,l,c,s,i):new $J(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],"float32")}var MJ={kernelName:ri,backendName:"webgl",kernelFunc:RJ},PJ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3695,7 +3695,7 @@ return a / b;`,L9=` setOutput(accumulator); } - `}};function RJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new DJ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var MJ={kernelName:Gd,backendName:"webgl",kernelFunc:RJ},PJ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function OJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new PJ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var LJ={kernelName:qd,backendName:"webgl",kernelFunc:OJ},zJ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/u[0]}, ${c[1]/u[1]}); @@ -3717,7 +3717,7 @@ return a / b;`,L9=` setOutput(newValue); } - `}};function OJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=new PJ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],r.dtype)}var LJ={kernelName:wc,backendName:"webgl",kernelFunc:OJ},zJ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function BJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=new zJ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],r.dtype)}var WJ={kernelName:vc,backendName:"webgl",kernelFunc:BJ},VJ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3787,7 +3787,7 @@ return a / b;`,L9=` setOutput(accumulator); } - `}};function BJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new zJ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var WJ={kernelName:Ud,backendName:"webgl",kernelFunc:BJ},VJ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function UJ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new VJ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var GJ={kernelName:jd,backendName:"webgl",kernelFunc:UJ},HJ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -3797,7 +3797,7 @@ return a / b;`,L9=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},UJ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=mn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ft(n);n===1?this.userCode=` + `}},jJ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=mn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ft(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3825,7 +3825,7 @@ return a / b;`,L9=` } setOutput(result); } - `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function c(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function u(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function GJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return Bn({inputs:{x:r},backend:n});let l=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new UJ(r.shape,o):new VJ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var HJ={kernelName:ri,backendName:"webgl",kernelFunc:GJ},jJ=class{constructor(e,t,n,a){this.variableNames=["Image"],this.outputShape=[];let r=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;let[l,c]=_.getImageCenter(a,r,s),u=l.toFixed(3),p=c.toFixed(3),d="";typeof n=="number"?d=`float outputValue = ${n.toFixed(2)};`:d=` + `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function c(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function u(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function qJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return Wn({inputs:{x:r},backend:n});let l=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jJ(r.shape,o):new HJ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var KJ={kernelName:ii,backendName:"webgl",kernelFunc:qJ},XJ=class{constructor(e,t,n,a){this.variableNames=["Image"],this.outputShape=[];let r=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;let[l,c]=_.getImageCenter(a,r,s),u=l.toFixed(3),p=c.toFixed(3),d="";typeof n=="number"?d=`float outputValue = ${n.toFixed(2)};`:d=` vec3 fill = vec3(${n.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -3842,7 +3842,7 @@ return a / b;`,L9=` } setOutput(outputValue); } - `}},qJ={kernelName:Sl,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new jJ(a.shape,r,s,i);return o.runWebGLProgram(l,[a],a.dtype)}},KJ=` + `}},YJ={kernelName:Sl,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new XJ(a.shape,r,s,i);return o.runWebGLProgram(l,[a],a.dtype)}},ZJ=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3857,7 +3857,7 @@ return a / b;`,L9=` return base + 1.0; } } -`,XJ=Ze({opSnippet:KJ}),YJ={kernelName:si,backendName:"webgl",kernelFunc:XJ},ZJ="return inversesqrt(x);",JJ=Ze({opSnippet:ZJ,cpuKernelImpl:O8}),QJ={kernelName:ii,backendName:"webgl",kernelFunc:JJ},US=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ft(r.length),l=ft(s.length),c="";n===1?c="i":n===2&&(c="i, j");let u=`getIndices(${c})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,JJ=Ze({opSnippet:ZJ}),QJ={kernelName:oi,backendName:"webgl",kernelFunc:JJ},eQ="return inversesqrt(x);",tQ=Ze({opSnippet:eQ,cpuKernelImpl:W8}),nQ={kernelName:li,backendName:"webgl",kernelFunc:tQ},XS=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ft(r.length),l=ft(s.length),c="";n===1?c="i":n===2&&(c="i, j");let u=`getIndices(${c})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -3877,7 +3877,7 @@ return a / b;`,L9=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function eQ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:c,strides:u,outputSize:p}=_.calculateShapes(s,r,i),d=[p/c,c];if(p===0)return n.makeTensorInfo(i,r.dtype);let h=be({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=be({inputs:{x:s},backend:n,attrs:{shape:[l,c]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new US(l,o,h.shape.length,m.shape.length,u,d),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=be({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var tQ={kernelName:hl,backendName:"webgl",kernelFunc:eQ},nQ=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let c=0;c= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,iQ=Ze({opSnippet:sQ}),oQ={kernelName:fl,backendName:"webgl",kernelFunc:iQ},lQ="return 1.0 / (1.0 + exp(-1.0 * x));",uQ=Ze({opSnippet:lQ}),cQ={kernelName:li,backendName:"webgl",kernelFunc:uQ},pQ=` +`,uQ=Ze({opSnippet:lQ}),cQ={kernelName:fl,backendName:"webgl",kernelFunc:uQ},pQ="return 1.0 / (1.0 + exp(-1.0 * x));",dQ=Ze({opSnippet:pQ}),hQ={kernelName:ci,backendName:"webgl",kernelFunc:dQ},mQ=` if (isnan(x)) { return 0.0; } return sign(x); -`,dQ=Ze({opSnippet:pQ}),hQ={kernelName:bl,backendName:"webgl",kernelFunc:dQ},mQ=nS+` +`,fQ=Ze({opSnippet:mQ}),gQ={kernelName:bl,backendName:"webgl",kernelFunc:fQ},yQ=lS+` return sin(x); -`,fQ=Ze({opSnippet:mQ}),gQ={kernelName:oi,backendName:"webgl",kernelFunc:fQ},yQ=` +`,bQ=Ze({opSnippet:yQ}),xQ={kernelName:ui,backendName:"webgl",kernelFunc:bQ},vQ=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,bQ=Ze({opSnippet:yQ}),xQ={kernelName:yl,backendName:"webgl",kernelFunc:bQ},vQ=` +`,wQ=Ze({opSnippet:vQ}),kQ={kernelName:yl,backendName:"webgl",kernelFunc:wQ},IQ=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3921,9 +3921,9 @@ return a / b;`,L9=` result = log(exp_x + 1.0); } return result; -`,wQ=Ze({opSnippet:vQ}),kQ={kernelName:xl,backendName:"webgl",kernelFunc:wQ},IQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;k.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},NQ={kernelName:kc,backendName:"webgl",kernelFunc:IQ};function TQ(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:c,strides:u,outputSize:p}=_.calculateShapes(s,r,o),d=!1,h=new US(c,l,r.shape.length,s.shape.length,u,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var SQ={kernelName:Hd,backendName:"webgl",kernelFunc:TQ};function CQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=k.parseAxisParam(i,r.shape)[0],l=_.prepareSplitSize(r,s,o),c=r.shape.length,u=new Array(c).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=Ip({inputs:{x:r},backend:n,attrs:{begin:u,size:h}});return u[o]+=d,m})}var _Q={kernelName:vl,backendName:"webgl",kernelFunc:CQ},EQ="return sqrt(x);",AQ=Ze({opSnippet:EQ}),FQ={kernelName:ui,backendName:"webgl",kernelFunc:AQ},$Q="return x * x;",DQ=Ze({opSnippet:$Q}),RQ={kernelName:Ic,backendName:"webgl",kernelFunc:DQ},GS="return (a - b) * (a - b);",MQ=nn({opSnippet:GS,packedOpSnippet:GS}),PQ={kernelName:di,backendName:"webgl",kernelFunc:MQ};function OQ({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ra+` +`,NQ=Ze({opSnippet:IQ}),TQ={kernelName:xl,backendName:"webgl",kernelFunc:NQ},SQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;k.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},CQ={kernelName:wc,backendName:"webgl",kernelFunc:SQ};function _Q(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:c,strides:u,outputSize:p}=_.calculateShapes(s,r,o),d=!1,h=new XS(c,l,r.shape.length,s.shape.length,u,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var EQ={kernelName:Kd,backendName:"webgl",kernelFunc:_Q};function AQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=k.parseAxisParam(i,r.shape)[0],l=_.prepareSplitSize(r,s,o),c=r.shape.length,u=new Array(c).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=Np({inputs:{x:r},backend:n,attrs:{begin:u,size:h}});return u[o]+=d,m})}var FQ={kernelName:vl,backendName:"webgl",kernelFunc:AQ},$Q="return sqrt(x);",DQ=Ze({opSnippet:$Q}),RQ={kernelName:pi,backendName:"webgl",kernelFunc:DQ},MQ="return x * x;",PQ=Ze({opSnippet:MQ}),OQ={kernelName:kc,backendName:"webgl",kernelFunc:PQ},YS="return (a - b) * (a - b);",LQ=nn({opSnippet:YS,packedOpSnippet:YS}),zQ={kernelName:mi,backendName:"webgl",kernelFunc:LQ};function BQ({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new cs(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var LQ={kernelName:Wr,backendName:"webgl",kernelFunc:OQ},zQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ft(n.length),s=ft(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,c)=>(o++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${o-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new cs(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var WQ={kernelName:Vr,backendName:"webgl",kernelFunc:BQ},VQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ft(n.length),s=ft(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,c)=>(o++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${o-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -3931,15 +3931,15 @@ return a / b;`,L9=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function BQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=cn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=be({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Ip({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=be({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([v])){let T=n.texData.get(v.dataId).values,C=Le(v.shape,v.dtype,T),$=z8(b,C,f,m);x=n.makeTensorInfo(b,v.dtype,$.values)}else{let T=new zQ(m,f,b);x=n.runWebGLProgram(T,[v],v.dtype)}let N=be({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var WQ={kernelName:wl,backendName:"webgl",kernelFunc:BQ},VQ="return tan(x);",UQ=Ze({opSnippet:VQ}),GQ={kernelName:kl,backendName:"webgl",kernelFunc:UQ},HQ=` + `}};function UQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=cn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=be({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Np({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=be({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([v])){let T=n.texData.get(v.dataId).values,C=Le(v.shape,v.dtype,T),F=U8(b,C,f,m);x=n.makeTensorInfo(b,v.dtype,F.values)}else{let T=new VQ(m,f,b);x=n.runWebGLProgram(T,[v],v.dtype)}let N=be({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var GQ={kernelName:wl,backendName:"webgl",kernelFunc:UQ},HQ="return tan(x);",jQ=Ze({opSnippet:HQ}),qQ={kernelName:kl,backendName:"webgl",kernelFunc:jQ},KQ=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,jQ=Ze({opSnippet:HQ}),qQ={kernelName:mi,backendName:"webgl",kernelFunc:jQ},XQ=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rk.decodeString(u)),l=Le(r.shape,r.dtype,o),c=W8(l,s);return n.makeTensorInfo(c.shape,c.dtype,c.values)}let i=new XQ(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var YQ={kernelName:Br,backendName:"webgl",kernelFunc:HS};function ZQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,c]=V8(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var JQ={kernelName:Il,backendName:"webgl",kernelFunc:ZQ};function QQ(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;xp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:c}=U8(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var eee={kernelName:jd,backendName:"webgl",kernelFunc:QQ};function tee(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],c=new Array(o-1),u=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var nee={kernelName:Nl,backendName:"webgl",kernelFunc:tee},aee=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",c=Math.floor(n/4)*4,u=n%4,p=` + `}};function ZQ(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rk.decodeString(u)),l=Le(r.shape,r.dtype,o),c=H8(l,s);return n.makeTensorInfo(c.shape,c.dtype,c.values)}let i=new JQ(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var QQ={kernelName:Wr,backendName:"webgl",kernelFunc:ZS};function eee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,c]=j8(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var tee={kernelName:Il,backendName:"webgl",kernelFunc:eee};function nee(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;vp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:c}=q8(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var aee={kernelName:Xd,backendName:"webgl",kernelFunc:nee};function ree(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],c=new Array(o-1),u=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var see={kernelName:Nl,backendName:"webgl",kernelFunc:ree},iee=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",c=Math.floor(n/4)*4,u=n%4,p=` sumValue += dot(values, segFilter); `,d="";r%n>0&&(d=` if (inIdx < 0 || inIdx >= ${r}) { @@ -4045,7 +4045,7 @@ return a / b;`,L9=` } setOutput(${l}); } - `}};function ree(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],c=0,u=_.getAxesPermutation([c],o),p=r;u!=null&&(p=Tn({inputs:{x:r},backend:n,attrs:{perm:u}}),l.push(p),c=_.getInnerMostAxes(1,o)[0]);let d=_.segment_util.computeOutShape(p.shape,c,i),h=k.sizeFromShape([p.shape[c]]),m=be({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Qd(r.dtype),g=(x,N,T,C,$)=>{let F=x.shape[0],O=x.shape[1],B=_.segment_util.segOpComputeOptimalWindowSize(O,$),W={windowSize:B,inSize:O,batchSize:F,numSegments:$},G=new aee(W,N),q=n.compileAndRun(G,[x,T],C);if(l.push(q),q.shape[1]===$)return q;let H=VS({backend:n,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),K=HS({inputs:{x:H},backend:n,attrs:{reps:[O/B]}});return l.push(H),l.push(K),g(q,N,K,C,$)},y=g(m,"unsortedSegmentSum",s,f,i),b=be({inputs:{x:y},backend:n,attrs:{shape:d}}),v=b;if(u!=null){l.push(b);let x=_.getUndoAxesPermutation(u);v=Tn({inputs:{x:v},backend:n,attrs:{perm:x}})}return l.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var see={kernelName:Nc,backendName:"webgl",kernelFunc:ree},iee=[JZ,t9,BK,VK,HK,KK,YK,QK,tX,aX,oX,uX,dX,fX,kX,bX,TX,EX,CX,DX,MX,OX,WX,KX,YX,nY,rY,lY,pY,wK,fY,TY,CY,xY,FY,DY,EY,PY,zY,VY,GY,jY,XY,t7,a7,ZY,i7,u7,h7,y7,w7,N7,T7,S7,_7,A7,$7,R7,P7,B7,G7,j7,K7,Z7,tZ,sZ,uZ,vK,pZ,mY,mZ,yZ,vZ,IK,NZ,_Z,AZ,OZ,RZ,WZ,GZ,KZ,a9,p9,u9,f9,y9,x9,o9,w9,I9,C9,F9,M9,U9,_K,H9,K9,Z9,eJ,JX,aJ,sJ,oJ,cJ,mJ,TK,gJ,yJ,QX,z9,vJ,_J,NJ,AK,$J,MJ,LJ,WJ,HJ,qJ,YJ,QJ,tQ,rQ,oQ,cQ,hQ,gQ,xQ,jX,W9,kQ,NQ,SQ,_Q,FQ,RQ,PQ,LQ,WQ,B9,OK,GQ,qQ,YQ,JQ,LK,eee,nee,see,rJ];for(let e of iee)Sc(e);var oee="3.0.0",lee={"tfjs-core":X0,"tfjs-backend-cpu":LU,"tfjs-backend-webgl":xK,"tfjs-data":wN,"tfjs-layers":mm,"tfjs-converter":fN,tfjs:oee},Wn;(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"})(Wn||(Wn={}));var Tp;(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"})(Tp||(Tp={}));var jS;function uee(e){jS=e.wasm.cwrap(gi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function cee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let $=n.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);m=$.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Tp[u];if(g==null)throw new Error(`${u} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=c?s.shape[1]:s.shape[2],v=r.shape[0],x=n.makeOutput([v,y,b],r.dtype),N=n.dataIdMap.get(x.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return jS(d,T,r.shape.length,h,C,s.shape.length,l,c,g,m,f,p||0,N),x}var pee={kernelName:gi,backendName:"wasm",setupFunc:uee,kernelFunc:cee};function Vn(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),c=s.dataIdMap.get(l.dataId).id;return k.sizeFromShape(l.shape)===0||t(o,c),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var dee=Vn(So);function fn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:c,b:u}=l,p=o.dataIdMap.get(c.dataId).id,d=o.dataIdMap.get(u.dataId).id,h=n!=null?n:c.dtype,m=_.assertAndGetBroadcastShape(c.shape,u.shape),f=o.makeOutput(m,h);if(k.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(c.shape).buffer),y=new Uint8Array(new Int32Array(u.shape).buffer),b=o.dataIdMap.get(f.dataId).id,v=()=>a(p,g,c.shape.length,d,y,u.shape.length,Wn[c.dtype],b);if(t&&c.dtype==="float32")return v(),f;let x=_.getBroadcastDims(c.shape,m),N=_.getBroadcastDims(u.shape,m),T=x.every(($,F)=>$===F),C=N.every(($,F)=>$===F);if(T&&C)return v(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${c.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var hee=!0,mee=fn(Lr,hee),qS;function fee(e){qS=e.wasm.cwrap(Ss,null,["array","number","number","number"])}function gee(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(k.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return qS(s,r.length,Wn[a.dtype],i),a}var yee={kernelName:Ss,backendName:"wasm",setupFunc:fee,kernelFunc:gee};function Km(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var bee={kernelName:Ko,backendName:"wasm",kernelFunc:Km},KS;function xee(e){KS=e.wasm.cwrap(fi,null,["number","array","number","number","number","array","number"])}function Xm(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=wee(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var kee={kernelName:fi,backendName:"wasm",kernelFunc:Xm,setupFunc:xee};function gu(e,t,n){let a=e.shape,r=e.shape.length,s=k.parseAxisParam(t,a),i=s,o=_.getAxesPermutation(i,r),l=null,c=!1;if(o!=null){let u=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),{dataId:a.dataId,shape:i,dtype:a.dtype}}var Eee={kernelName:dl,backendName:"wasm",kernelFunc:Ma},ZS;function Aee(e){ZS=e.wasm.cwrap(Es,null,["number","array","number","number","array","number","number","number","number"])}function Fee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=Ma({inputs:{x:r},backend:n,attrs:{shape:x}}),C=Ma({inputs:{x:s},backend:n,attrs:{shape:N}}),$=n.dataIdMap.get(T.dataId).id,F=n.dataIdMap.get(C.dataId).id,O=i?T.shape[2]:T.shape[1],B=o?C.shape[1]:C.shape[2],W=Math.max(g,y),G=n.makeOutput([W,O,B],T.dtype),q=n.dataIdMap.get(G.dataId).id,H=new Uint8Array(new Int32Array(T.shape).buffer),K=new Uint8Array(new Int32Array(C.shape).buffer);return ZS($,H,T.shape.length,F,K,C.shape.length,i,o,q),G.shape=v,G}var $ee={kernelName:Es,backendName:"wasm",setupFunc:Aee,kernelFunc:Fee};function Ym(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Dee={kernelName:As,backendName:"wasm",kernelFunc:Ym},JS;function Ree(e){JS=e.wasm.cwrap(zr,null,["number","number","number","number"])}function Mee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(l.dataId).id;return JS(o,s,i,c),l}var Pee={kernelName:zr,backendName:"wasm",setupFunc:Ree,kernelFunc:Mee};function QS(e){let{inputs:t,backend:n}=e,a=k.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>k.sizeFromShape(h.shape)>0);if(s.length===1)return Km({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(k.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(_.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(v=>{let x=k.sizeFromShape(v.shape.slice(a));return Ma({inputs:{x:v},backend:n,attrs:{shape:[-1,x]}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape}));r=_.computeOutShape(h.map(v=>v.shape),1);let f=h[0].shape[0]===1,g=fv(m,r,t[0].dtype,f),y=_.computeOutShape(s.map(v=>v.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=_.fromStringArrayToUint8(g),i}let l=k.sizeFromShape(s[0].shape.slice(0,a)),c=0,u=s.map(h=>{let m=k.sizeFromShape(h.shape.slice(a));return c+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let c=_.getAxesPermutation([s],l),u=r;c!==null&&(u=Xm({inputs:{x:r},attrs:{perm:c},backend:n}));let p=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(u.shape,u.dtype),h=u.shape[p],m=n.dataIdMap.get(u.dataId).id,f=n.dataIdMap.get(d.dataId).id;a2(m,i?1:0,o?1:0,h,f,Wn[r.dtype]);let g=d;if(c!==null){let y=_.getUndoAxesPermutation(c);g=Xm({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(u.dataId),n.disposeData(d.dataId)}return g}var Yee={kernelName:Rs,backendName:"wasm",setupFunc:Kee,kernelFunc:Xee},r2;function Zee(e){r2=e.wasm.cwrap(Lo,null,["number","number","number","array","number","array","array","number","number"])}function Jee(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(k.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),v=new Uint8Array(new Int32Array(k.computeStrides(m)).buffer),x=t.dataIdMap.get(f.dataId).id;return r2(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,v,m.length,x),f}var Qee={kernelName:Lo,backendName:"wasm",setupFunc:Zee,kernelFunc:Jee},s2;function ete(e){s2=e.wasm.cwrap(Ms,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function tte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:c,pad:u,dimRoundingMode:p}=n,d=c==null?[1,1]:c,h=_.computeConv2DInfo(r.shape,s.shape,l,d,u,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,v=h.padInfo.left,x=h.dilationHeight,N=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,$=h.inChannels,F=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 B=a.makeOutput(h.outShape,"float32"),W=a.dataIdMap.get(B.dataId).id;return s2(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,v,O,x,N,T,C,$,F,W),B}var nte={kernelName:Ms,backendName:"wasm",setupFunc:ete,kernelFunc:tte},ate=!1,rte=fn(Wo,ate,"bool"),ste=Vn(Os);function jv(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Ma({inputs:{x:r},backend:a,attrs:{shape:o}})}var ite={kernelName:Vo,backendName:"wasm",kernelFunc:jv};function ote(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var lte={kernelName:mc,backendName:"wasm",kernelFunc:ote},i2;function ute(e){i2=e.wasm.cwrap(Go,null,["number","number","number","number","number","number"])}function cte(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,c,u]=a.shape;return i2(s,o,l,c,u,i),r}var pte={kernelName:Go,backendName:"wasm",kernelFunc:cte,setupFunc:ute},dte=Vn(Ls),hte=!1,mte=fn(zs,hte),o2;function fte(e){o2=e.wasm.cwrap(Bs,null,["number","number","number","number","number","number","number"])}function gte(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:c}=n,u=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=c!=null?t.dataIdMap.get(c.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(k.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return o2(u,p,d,h,m,r,g),f}var yte={kernelName:Bs,backendName:"wasm",setupFunc:fte,kernelFunc:gte},l2;function bte(e){l2=e.wasm.cwrap(yi,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 xte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d),g=Tp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,$=f.padInfo.right,F=f.padInfo.bottom,O=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,H=f.inChannels,K=f.padInfo.type==="SAME"?1:0,X=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return l2(y,X,ne,J,b,N,T,x,C,$,F,O,K,B,W,G,q,H,v,g,oe,m||0,Q),se}var vte={kernelName:yi,backendName:"wasm",setupFunc:bte,kernelFunc:xte},u2;function wte(e){u2=e.wasm.cwrap(bi,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 kte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d,!0),g=Tp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,$=f.padInfo.right,F=f.padInfo.bottom,O=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,H=f.inChannels,K=f.padInfo.type==="SAME"?1:0,X=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return u2(y,X,ne,J,b,N,T,x,C,$,F,O,K,B,W,G,q,H,v,g,oe,m||0,Q),se}var Ite={kernelName:bi,backendName:"wasm",setupFunc:wte,kernelFunc:kte},c2;function Nte(e){c2=e.wasm.cwrap(jo,null,["number","number","number","number","number","number","array","number"])}function Tte(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=fy.prepareAndValidate(a,r),c=t.makeOutput(s,a.dtype);if(i===0)return c;let u=r.shape,p=u[u.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(c.dataId).id;return c2(d,Wn[a.dtype],h,i,p,o,m,f),c}var Ste={kernelName:jo,backendName:"wasm",setupFunc:Nte,kernelFunc:Tte},p2;function Cte(e){p2=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function _te(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=k.parseAxisParam(i,r.shape)[0],c=_.segment_util.collectGatherOpShapeInfo(r,s,l,o),u=Ma({inputs:{x:r},attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]},backend:t}),p=k.sizeFromShape(s.shape),d=Ma({inputs:{x:s},attrs:{shape:[c.batchSize,p/c.batchSize]},backend:t}),h=[c.batchSize,c.outerSize,p/c.batchSize,c.sliceSize],m=t.makeOutput(h,r.dtype);if(k.sizeFromShape(r.shape)===0)return m;let f=u.shape.length-1,g=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,v=new Uint8Array(new Int32Array(k.computeStrides(u.shape)).buffer),x=new Uint8Array(new Int32Array(k.computeStrides(h)).buffer);return p2(g,Wn[r.dtype],v,f,y,c.batchSize,x,b),m.shape=c.outputShape,m}var Ete={kernelName:Ho,backendName:"wasm",setupFunc:Cte,kernelFunc:_te},Ate=!1,Fte=fn(qo,Ate,"bool"),$te=!1,Dte=fn(Ws,$te,"bool"),d2;function Rte(e){d2=e.wasm.cwrap(Vs,null,["number","number","number"])}function Mte(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(k.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;d2(r,n,i)}return s}var Pte={kernelName:Vs,backendName:"wasm",setupFunc:Rte,kernelFunc:Mte},Ote=!1,Lte=fn(Jo,Ote,"bool"),zte=!1,Bte=fn(Qo,zte,"bool"),Wte=Vn(Us),Vte=!1,Ute=fn(tl,Vte,"bool"),h2;function Gte(e){h2=e.wasm.cwrap(Gs,null,["number, number, number"])}function Hte(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:u,originalAxes:p,inputWasTransposed:d}=gu(i,r,t);if(d){let b=t.dataIdMap.get(c.dataId).id;l=c,o=b}let h=l.shape.length;_.assertAxesAreInnerMostDims("max",u,h);let[m,f]=_.computeOutAndReduceShapes(l.shape,u),g=k.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(k.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;h2(o,g,b)}if(d&&t.disposeData(c.dataId),s){let b=_.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var jte={kernelName:Gs,backendName:"wasm",setupFunc:Gte,kernelFunc:Hte},qte=!1,Kte=fn(Hs,qte),m2;function Xte(e){m2=e.wasm.cwrap(js,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yte(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=n,u=_.computePool2DInfo(r.shape,i,o,1,l,c),p=u.filterHeight,d=u.filterWidth,h=u.padInfo.top,m=u.padInfo.right,f=u.padInfo.bottom,g=u.padInfo.left,y=u.dilationHeight,b=u.dilationWidth,v=u.strideHeight,x=u.strideWidth,N=u.inChannels,T=u.outChannels;if(u.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${u.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(u.outShape,"float32"),$=a.dataIdMap.get(C.dataId).id;return m2(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,v,x,N,T,$),C}var Zte={kernelName:js,backendName:"wasm",setupFunc:Xte,kernelFunc:Yte},f2;function Jte(e){f2=e.wasm.cwrap(qs,null,["number, number, number"])}function Qte(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("mean",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=c;c.dtype!=="float32"&&(b=Ym({backend:t,inputs:{x:c},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let v=t.makeOutput(f,"float32");if(k.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(v.dataId).id;f2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(v.shape,d);v.shape=x}return c.dtype!=="float32"&&t.disposeData(b.dataId),v}var ene={kernelName:qs,backendName:"wasm",setupFunc:Jte,kernelFunc:Qte},g2;function tne(e){g2=e.wasm.cwrap(Ks,null,["number, number, number"])}function nne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t);if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v)}let m=c.shape.length;_.assertAxesAreInnerMostDims("min",p,m);let[f,g]=_.computeOutAndReduceShapes(c.shape,p),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;g2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var ane={kernelName:Ks,backendName:"wasm",setupFunc:tne,kernelFunc:nne},rne=!1,sne=fn(Xs,rne),ine=!0,one=fn(Ys,ine),lne=Vn(al);function qv(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var y2;function une(e){y2=e.wasm.cwrap(sl,"number",["number","number","number","number","number"])}function cne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,c=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(l.dataId).id,p=y2(c,u,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=qv(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var pne={kernelName:sl,backendName:"wasm",setupFunc:une,kernelFunc:cne},b2;function dne(e){b2=e.wasm.cwrap(il,"number",["number","number","number","number","number","bool"])}function hne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=b2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=qv(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var mne={kernelName:il,backendName:"wasm",setupFunc:dne,kernelFunc:hne},x2;function fne(e){x2=e.wasm.cwrap(ol,"number",["number","number","number","number","number","number"])}function gne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=x2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=qv(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var yne={kernelName:ol,backendName:"wasm",setupFunc:fne,kernelFunc:gne},bne=!1,xne=fn(rl,bne,"bool"),v2;function vne(e){v2=e.wasm.cwrap(Zs,null,["number","number","number","number","number"])}function wne(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),c=n.dataIdMap.get(l.dataId).id,u=n.dataIdMap.get(r.dataId).id;return v2(u,s,i,o,c),l}var kne={kernelName:Zs,backendName:"wasm",setupFunc:vne,kernelFunc:wne};function Ine(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Nne={kernelName:ll,backendName:"wasm",kernelFunc:Ine};function Tne(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return jv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(l=>{k.assertShapesMatch(s,l.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===l.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=t.map(l=>jv({inputs:{input:l},backend:n,attrs:{dim:r}}));return QS({inputs:o,backend:n,attrs:{axis:r}})}var Sne={kernelName:ul,backendName:"wasm",kernelFunc:Tne},w2;function Cne(e){w2=e.wasm.cwrap(Js,null,["number","array","number","number","array","array","number","number"])}function _ne(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),u=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(u).buffer),h=new Uint8Array(new Int32Array(p).buffer);return w2(i,c,t.shape.length,Wn[t.dtype],d,h,r,l),o}var Ene={kernelName:Js,backendName:"wasm",kernelFunc:_ne,setupFunc:Cne},Ane=!1,Fne=fn(Qs,Ane),k2;function $ne(e){k2=e.wasm.cwrap(ei,null,["number","number","number"])}function Dne(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return k2(s,i,l),o}var Rne={kernelName:ei,backendName:"wasm",setupFunc:$ne,kernelFunc:Dne},I2;function Mne(e){I2=e.wasm.cwrap(cl,null,["number","number","number","number"])}function Pne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("prod",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;I2(l,y,Wn[b.dtype],v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var One={kernelName:cl,backendName:"wasm",setupFunc:Mne,kernelFunc:Pne},Lne=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=bv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},zne={kernelName:vc,backendName:"wasm",kernelFunc:Lne},Bne=!0,Wne=fn(Ps,Bne),Vne=Vn(ti),Une=Vn(ai),N2;function Gne(e){N2=e.wasm.cwrap(ni,null,["number","number","number","number","number","number","number","number","number","number"])}function Hne(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,[u,p,d,h]=r.shape,m=[u,l,c,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Ym({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(k.sizeFromShape(r.shape)===0)return b;let v=t.dataIdMap.get(b.dataId).id;return N2(y,u,p,d,h,l,c,s?1:0,i?1:0,v),g!=null&&t.disposeData(g.dataId),b}var jne={kernelName:ni,backendName:"wasm",setupFunc:Gne,kernelFunc:Hne},T2;function qne(e){T2=e.wasm.cwrap(ri,null,["number","array","number","array","number","number"])}function Kne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=k.parseAxisParam(s,r.shape);if(r.shape.length===0)return Km({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);return T2(l,u,i.length,p,r.shape.length,c),Ma({inputs:{x:o},attrs:{shape:r.shape},backend:n})}var Xne={kernelName:ri,backendName:"wasm",kernelFunc:Kne,setupFunc:qne},S2;function Yne(e){S2=e.wasm.cwrap(Sl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Zne(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=_.getImageCenter(o,d,h),y=i===0,b=255,v=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],x=new Uint8Array(new Int32Array(v).buffer);return S2(c,p,d,h,m,s,f,g,x,v.length,u),l}var Jne={kernelName:Sl,backendName:"wasm",kernelFunc:Zne,setupFunc:Yne},Qne=Vn(si),eae=Vn(ii),C2;function tae(e){C2=e.wasm.cwrap(hl,null,["number","number","number","number","number","number","array","number","number"])}function nae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(k.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:c,sliceSize:u,strides:p,outputSize:d}=gy.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return C2(h,m,Wn[s.dtype],l,c,u,f,d,g),o}var aae={kernelName:hl,backendName:"wasm",setupFunc:tae,kernelFunc:nae},_2;function rae(e){_2=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function sae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,c=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(c.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:k.sizeFromShape(r.shape.slice(1));return _2(i,o,l,h,u),c}var iae={kernelName:ml,backendName:"wasm",kernelFunc:sae,setupFunc:rae},E2;function oae(e){E2=e.wasm.cwrap(li,null,["number","number"])}function lae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return k.sizeFromShape(r.shape)===0||E2(a,s),r}var uae={kernelName:"Sigmoid",backendName:"wasm",setupFunc:oae,kernelFunc:lae},cae=Vn(oi);function Zm(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=cn.parseSliceParams(t,n,a),o=cn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),c=r.makeOutput(i,t.dtype),u=k.computeStrides(t.shape),p=r.dataIdMap.get(c.dataId);if(o){let m=cn.computeFlatOffset(s,u);return t.dtype==="string"?p.stringBytes=l.slice(m,m+k.sizeFromShape(i)):r.typedArrayFromHeap(c).set(l.subarray(m,m+k.sizeFromShape(i))),c}if(t.dtype==="string"){let m=Am(l,s,i,t.shape,t.dtype);return p.stringBytes=m,c}let d=r.typedArrayFromHeap(c),h=t.shape.length;if(h===2)pae(l,u[0],d,s,i);else if(h===3)dae(l,u[0],u[1],d,s,i);else if(h===4)hae(l,u[0],u[1],u[2],d,s,i);else{let m=Am(l,s,i,t.shape,t.dtype);d.set(m)}return c}function pae(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let c=i;c{let d=[...u];d[o]=p;let h=Zm({inputs:{x:r},attrs:{begin:c,size:d},backend:a});return c[o]+=p,h})}var xae={kernelName:vl,backendName:"wasm",kernelFunc:bae},vae=Vn(ui),wae=Vn(Ic),kae=!0,Iae=fn(di,kae),F2;function Nae(e){F2=e.wasm.cwrap(Wr,null,["number","number","number"])}function Tae(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return F2(i,r,l),o}var Sae={kernelName:Wr,backendName:"wasm",setupFunc:Nae,kernelFunc:Tae},$2;function Cae(e){$2=e.wasm.cwrap(wl,null,["number","array","number","array","array","array","array","array","number","number"])}function _ae(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,h=_.slice_util.maskToAxes(u);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(u!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(u!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=_.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(F=>{s[F]=0,i[F]=1,g.splice(F,0,1)});let y=Ma({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:v,strides:x}=_.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,c,u);s=b,i=v,o=x;let N=_.slice_util.maskToAxes(d);N.forEach(F=>{i[F]=s[F]+1,o[F]=1});let T=_.slice_util.computeOutShape(s,i,o),C=T.filter((F,O)=>N.indexOf(O)===-1);if(o.every(F=>F===1)){let F=Zm({inputs:{x:r},attrs:{begin:s,size:T},backend:t});return Ma({inputs:{x:F},attrs:{shape:C},backend:t})}let $=t.makeOutput(C,"float32");if(!C.some(F=>F===0)){let F=t.dataIdMap.get(y.dataId).id,O=new Uint8Array(new Int32Array(k.computeStrides(y.shape)).buffer),B=new Uint8Array(new Int32Array(s).buffer),W=new Uint8Array(new Int32Array(i).buffer),G=new Uint8Array(new Int32Array(o).buffer),q=new Uint8Array(new Int32Array(C).buffer),H=new Uint8Array(new Int32Array(k.computeStrides(C)).buffer),K=t.dataIdMap.get($.dataId).id;$2(F,O,y.shape.length,B,W,G,q,H,C.length,K)}return Ma({inputs:{x:$},attrs:{shape:C},backend:t})}var Eae={kernelName:wl,backendName:"wasm",setupFunc:Cae,kernelFunc:_ae},Aae=!0,Fae=fn(hi,Aae),D2;function $ae(e){D2=e.wasm.cwrap(ci,null,["number, number, number"])}function Dae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("sum",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;D2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var Rae={kernelName:ci,backendName:"wasm",setupFunc:$ae,kernelFunc:Dae},Mae=Vn(mi),R2;function Pae(e){R2=e.wasm.cwrap(Br,null,["number","array","number","array","number","number"])}function Oae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let c=t.makeOutput(l,a.dtype),u=t.dataIdMap.get(c.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return M2(i,o,a.shape.length,Wn[a.dtype],r,s,u,d),[c,p]},Wae={kernelName:Il,backendName:"wasm",setupFunc:zae,kernelFunc:Bae};function Vae(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),c=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var Uae={kernelName:Nl,backendName:"wasm",kernelFunc:Vae};function Gae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Hae={kernelName:Tl,backendName:"wasm",kernelFunc:Gae},jae=[dee,mee,yee,Tee,_ee,$ee,Dee,Pee,Oee,Bee,Uee,Gee,qee,Yee,Qee,nte,rte,ste,ite,lte,pte,dte,mte,pee,yte,vte,Ite,Ste,Ete,Fte,Dte,bee,Pte,Lte,Bte,Wte,Ute,jte,Kte,Zte,ene,ane,sne,one,lne,pne,mne,yne,xne,kne,Nne,Sne,Ene,Fne,Rne,One,zne,Wne,Vne,Une,Eee,jne,Xne,Jne,eae,Qne,aae,iae,uae,cae,mae,yae,xae,vae,wae,Iae,Sae,Eae,Fae,Rae,Mae,Lae,Wae,kee,Uae,Hae];for(let e of jae)Sc(e);var Kv=ee();Kv.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])));Kv.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Kv.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 P2=Io(yE()),qae='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}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;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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["dynCall_ii"](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"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){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.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");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()}}}}',Kae=Io(bE()),O2=class extends sc{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new hd(this,Kr())}write(e,t,n){let a={};return this.move(a,e,t,n),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}move(e,t,n,a){let r=this.dataIdNextNumber++;if(a==="string"){let l=t;this.dataIdMap.set(e,{id:r,stringBytes:l,shape:n,dtype:a,memoryOffset:null});return}let s=k.sizeFromShape(n),i=s*k.bytesPerElement(a),o=this.wasm._malloc(i);this.dataIdMap.set(e,{id:r,memoryOffset:o,shape:n,dtype:a}),this.wasm.tfjs.registerTensor(r,s,o),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,i),o)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+k.sizeFromShape(a)*k.bytesPerElement(n));return Xae(s.buffer,n)}disposeData(e){let t=this.dataIdMap.get(e);this.wasm._free(t.memoryOffset),this.wasm.tfjs.disposeData(t.id),this.dataIdMap.delete(e)}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{a={};let r=this.dataIdNextNumber++;this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t});let s=k.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=k.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function Yae(e){return(t,n)=>(k.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function L2(e,t,n){if(Jm!=null)return Jm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Sp!=null&&Sp[a]!=null?Sp[a]:n+a}async function Zae(){let[e,t]=await Promise.all([ee().getAsync("WASM_HAS_SIMD_SUPPORT"),ee().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(l,c)=>{if(l.endsWith(".worker.js")){let u=qae,p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return l.endsWith(".wasm")?L2(e,t,Cp!=null?Cp:c):c+l},Xv&&(r.instantiateWasm=Yae(L2(e,t,Cp!=null?Cp:"")));let s;t&&e&&Jm==null?(s=P2.default(r),s.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+P2.default.toString()],{type:"text/javascript"})):s=Kae.default(r);let i=null;s.tfjs={init:s.cwrap("init",null,[]),registerTensor:s.cwrap("register_tensor",null,["number","number","number"]),disposeData:s.cwrap("dispose_data",i,["number"]),dispose:s.cwrap("dispose",i,[])};let o=!1;s.onRuntimeInitialized=()=>{o=!0,_p=!1,n({wasm:s})},s.onAbort=()=>{o||_p||(_p=!0,a({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"}))}})}function Xae(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 Jae=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Jm=null,Cp=null,Sp={},_p=!1,Xv=!1;function Qae(e,t=!1){if(ky("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),_p)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Jm=e,Xv=t}function ere(e,t=!1){if(_p)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")Cp=e;else{Sp=e;let n=Jae.filter(a=>Sp[a]==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.`)}Xv=t}var tre="3.0.0",nre=2;ih("wasm",async()=>{let{wasm:e}=await Zae();return new O2(e)},nre);var ww={};cd(ww,{AnchorPosition:()=>or,DrawBox:()=>nf,DrawBoxOptions:()=>cw,DrawFaceLandmarks:()=>vw,DrawFaceLandmarksOptions:()=>xw,DrawTextField:()=>hs,DrawTextFieldOptions:()=>$p,drawContour:()=>Tr,drawDetections:()=>hre,drawFaceExpressions:()=>yre,drawFaceLandmarks:()=>bre});function Tr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var Yv={};cd(Yv,{computeReshapedDimensions:()=>Qv,getCenterPoint:()=>Xi,isDimensions:()=>ef,isEven:()=>Qm,isFloat:()=>Jv,isTensor:()=>qi,isTensor1D:()=>are,isTensor2D:()=>Zv,isTensor3D:()=>Sr,isTensor4D:()=>ea,isValidNumber:()=>Pa,isValidProbablitiy:()=>yu,range:()=>sr,round:()=>Ki});var gn=class{constructor(t,n){if(!Pa(t)||!Pa(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new gn(1/this.width,1/this.height)}};function qi(e,t){return e instanceof Ae&&e.shape.length===t}function are(e){return qi(e,1)}function Zv(e){return qi(e,2)}function Sr(e){return qi(e,3)}function ea(e){return qi(e,4)}function Jv(e){return e%1!=0}function Qm(e){return e%2==0}function Ki(e,t=2){let n=10**t;return Math.floor(e*n)/n}function ef(e){return e&&e.width&&e.height}function Qv({width:e,height:t},n){let a=n/Math.max(t,e);return new gn(Math.round(e*a),Math.round(t*a))}function Xi(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function sr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Pa(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function yu(e){return Pa(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var ut=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Pa)}static assertIsValidBox(t,n,a=!1){if(!ut.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Pa),s=[a.x,a.y,a.width,a.height].every(Pa);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,c]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ut.assertIsValidBox({x:i,y:o,width:l,height:c},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=c}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ut({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ut({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),c<1&&(l=2-c,c=1),u<1&&(l=2-u,u=1),{dy:i,edy:l,dx:s,edx:o,y:u,ey:d,x:c,ex:p,w:a,h:r}}calibrate(t){return new ut({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var bu=class extends ut{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var ds=class{constructor(t,n,a,r,s){this._imageDims=new gn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ut(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ut(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new ds(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var bt=class extends ds{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new bt(a,r,s)}};function ew(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function tw(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let c=0;cl[u]<=n)}return s}function Oa(e,t){return D(()=>{let[n,a,r]=t,s=wn([...e.shape.slice(0,3),1],n,"float32"),i=wn([...e.shape.slice(0,3),1],a,"float32"),o=wn([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return fe(e,l)})}function aw(e,t=!1){return D(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,wn(h,0,"float32")},l=o(s),c=r-l.shape[i],p=[t&&c?o(c):null,e,l].filter(d=>!!d).map(d=>ce(d,"float32"));return Qe(p,i)})}function rre(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Ep(e){return 1/(1+Math.exp(-e))}function sre(e){return Math.log(e/(1-e))}var xu=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var ire=.5,ore=.43,lre=.45,ta=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new gn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof bt?t.box.floor():new ut(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/lre),l=Xi(t),c=Math.floor(Math.max(0,l.x-ire*o)),u=Math.floor(Math.max(0,l.y-ore*o));return new xu(c,u,Math.min(o,this.imageWidth+c),Math.min(o,this.imageHeight+u))}alignMinBbox(t){let n=tw(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var z2=class extends ta{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Xi([t[3],t[4]])]}};var vu=class extends ta{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Xi)}};var Ap=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ki(this.distance)})`:""}`}};var Fp=class extends ut{static assertIsValidLabeledBox(t,n){if(ut.assertIsValidBox(t,n),!Pa(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var Cr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Cr(t.label,n)}};var B2=class extends Fp{static assertIsValidPredictedBox(t,n){if(Fp.assertIsValidLabeledBox(t,n),!yu(t.score)||!yu(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function ir(e){return e.detection instanceof bt}function Yi(e,t){return{...e,...{detection:t}}}function rw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function tf(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function sw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=tf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function iw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var ow=Z_(V2()),Jt;function pre(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function lw(e){Jt=e}function uw(){return iw()?lw(rw()):ow.isNodejs()?lw(sw()):null}function dre(e){if(Jt||uw(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Jt.Canvas,Image:n=Jt.Image}=e;Jt.Canvas=t,Jt.Image=n,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new n),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}var st={getEnv:pre,setEnv:lw,initialize:uw,createBrowserEnv:rw,createFileSystem:tf,createNodejsEnv:sw,monkeyPatch:dre,isBrowser:iw,isNodejs:ow.isNodejs};uw();function Zi(e){return!st.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Sn(e){let{Canvas:t,CanvasRenderingContext2D:n}=st.getEnv();if(e instanceof n)return e;let a=Zi(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var or;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(or||(or={}));var $p=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||or.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},hs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof hs?t.text:t,this.anchor=n,this.options=new $p(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var cw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:or.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new $p({...i,...s})}},nf=class{constructor(t,n={}){this.box=new ut(t),this.options=new cw(n)}draw(t){let n=Sn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:c}=this.options;c&&new hs([c],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function hre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof bt?a.score:ir(a)?a.detection.score:void 0,s=a instanceof bt?a.box:ir(a)?a.detection.box:new ut(a),i=r?`${Ki(r)}`:void 0;new nf(s,{label:i}).draw(e)})}function Dp(e){let{Image:t,Video:n}=st.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function pw(e){return new Promise((t,n)=>{if(e instanceof st.getEnv().Canvas||Dp(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function dw(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=st.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Ji(e){let{Image:t,Video:n}=st.getEnv();return e instanceof t?new gn(e.naturalWidth,e.naturalHeight):e instanceof n?new gn(e.videoWidth,e.videoHeight):new gn(e.width,e.height)}function wu({width:e,height:t}){let{createCanvasElement:n}=st.getEnv(),a=n();return a.width=e,a.height=t,a}function Rp(e,t){let{ImageData:n}=st.getEnv();if(!(e instanceof n)&&!Dp(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Ji(e),s=wu({width:a,height:r});return e instanceof n?Sn(s).putImageData(e,0,0):Sn(s).drawImage(e,0,0,a,r),s}async function hw(e,t){let n=t||st.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ea(e)?1:0),i=D(()=>e.as3D(a,r,s).toInt());return await ki.toPixels(i,n),i.dispose(),n}function af(e){let{Image:t,Canvas:n,Video:a}=st.getEnv();return e instanceof t||e instanceof n||e instanceof a}function mw(e,t,n=!1){let{Image:a,Canvas:r}=st.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let s=Ji(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,c=wu({width:t,height:t}),u=e instanceof r?e:Rp(e),p=Math.abs(o-l)/2,d=n&&o{if(Sr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ea(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof st.getEnv().Canvas?a:Rp(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return sr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return Qv({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,D(()=>{let a=sr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ae){let o=ea(i)?i:i.expandDims();return o=aw(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Ya.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof st.getEnv().Canvas)return ki.fromPixels(mw(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>ce(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function gt(e){if(e instanceof _r)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Zi);return a.forEach((r,s)=>{if(!af(r)&&!Sr(r)&&!ea(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ea(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>af(r)&&pw(r))),new _r(a,Array.isArray(e))}async function ku(e,t){let{Canvas:n}=st.getEnv(),a=e;if(!(e instanceof n)){let i=await gt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await hw(o)}let r=Sn(a);return t.map(i=>i instanceof bt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:c})=>{let u=wu({width:l,height:c});return Sn(u).putImageData(r.getImageData(i,o,l,c),0,0),u})}async function Iu(e,t){if(!Sr(e)&&!ea(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ea(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return D(()=>{let[n,a,r]=e.shape.slice(ea(e)?1:0);return t.map(o=>o instanceof bt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:c,height:u})=>Vl(e.as3D(n,a,r),[l,o,0],[u,c,r]))})}async function Qi(e,t){let{fetch:n}=st.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function mre(e){let t=await Qi(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return dw(n)}async function fw(e){return(await Qi(e)).json()}async function fre(e){return new Float32Array(await(await Qi(e)).arrayBuffer())}function rf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function gw(e,t){let{manifestUri:n,modelBaseUri:a}=rf(e,t),r=await fw(n);return Ht.loadWeights(r,a)}function gre(e,t,n=!1){let{width:a,height:r}=n?Ji(t):t;return e.width=a,e.height=r,{width:a,height:r}}var an=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof Vr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof Vr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=qn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await gw(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=st.getEnv(),{manifestUri:a,modelBaseUri:r}=rf(t,this.getDefaultModelName()),s=c=>Promise.all(c.map(u=>n(u).then(p=>p.buffer))),i=Ht.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Ae))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Cn(e,t,n){return D(()=>{let a=Ei(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Z(a,t.bias),a})}function sf(e,t,n=!1){return D(()=>{let a=Ye(n?Z(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Cn(e,t.conv0,[2,2])),r=Cn(a,t.conv1,[1,1]),s=Ye(Z(a,r)),i=Cn(s,t.conv2,[1,1]);return Ye(Z(a,Z(r,i)))})}function Mp(e,t,n=!1,a=!0){return D(()=>{let r=Ye(n?Z(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Cn(e,t.conv0,a?[2,2]:[1,1])),s=Cn(r,t.conv1,[1,1]),i=Ye(Z(r,s)),o=Cn(i,t.conv2,[1,1]),l=Ye(Z(r,Z(s,o))),c=Cn(l,t.conv3,[1,1]);return Ye(Z(r,Z(s,Z(o,c))))})}function eo(e,t,n="same",a=!1){return D(()=>{let r=Z(At(e,t.filters,[1,1],n),t.bias);return a?Ye(r):r})}function yn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Nu(e,t){return(n,a,r,s)=>{let i=Sa(e(n*a*r*r),[r,r,n,a]),o=tt(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function of(e,t){return(n,a,r)=>{let s=Ta(e(n*a),[n,a]),i=tt(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var lf=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Tu(e,t){return(n,a,r)=>{let s=Sa(e(3*3*n),[3,3,n,1]),i=Sa(e(n*a),[1,1,n,a]),o=tt(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new lf(s,i,o)}}function Su(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new lf(n,a,r)}}function Un(e,t){return(n,a,r)=>{let s=e[n];if(!qi(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function bn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function uf(e,t){let n=Nu(e,t),a=Tu(e,t);function r(i,o,l,c=!1){let u=c?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:u,conv1:p,conv2:d}}function s(i,o,l,c=!1){let{conv0:u,conv1:p,conv2:d}=r(i,o,l,c),h=a(o,o,`${l}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function U2(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),{extractDenseBlock4Params:r}=uf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function cf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function pf(e,t){let n=Un(e,t),a=cf(n),r=Su(n);function s(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:c,conv1:u,conv2:p}}function i(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:c,conv1:u,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function G2(e){let t=[],{extractDenseBlock4Params:n}=pf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return yn(e,t),{params:a,paramMappings:t}}var Pp=class extends an{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(de(255)),i=Mp(s,n.dense0,!0);return i=Mp(i,n.dense1),i=Mp(i,n.dense2),i=Mp(i,n.dense3),i=Xn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return G2(t)}extractParams(t){return U2(t)}};function Op(e,t){return D(()=>Z(ze(e,t.weights),t.bias))}function H2(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=bn(e),o=of(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function j2(e){let t=[],n=Un(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return yn(e,t),{params:r,paramMappings:t}}function df(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var Lp=class extends an{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof _r?this.faceFeatureExtractor.forwardInput(t):t;return Op(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return H2(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=df(t);return this.faceFeatureExtractor.loadFromWeightMap(n),j2(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var yw=["neutral","happy","sad","angry","fearful","disgusted","surprised"],ms=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);yw.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return yw.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var hf=class extends Lp{constructor(t=new Pp){super("FaceExpressionNet",t)}forwardInput(t){return D(()=>Na(this.runNet(t)))}async forward(t){return this.forwardInput(await gt(t))}async predictExpressions(t){let n=await gt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new ms(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function bw(e){return e.expressions instanceof ms}function mf(e,t){return{...e,...{expressions:t}}}function yre(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof ms?s:bw(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),c=ir(s)?s.detection.box.bottomLeft:a||new De(0,0);new hs(l.map(p=>`${p.expression} (${Ki(p.probability)})`),c).draw(e)})}function to(e){return ir(e)&&e.landmarks instanceof ta&&e.unshiftedLandmarks instanceof ta&&e.alignedRect instanceof bt}function Cu(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new bt(e.detection.score,r.rescale(s.reverse()),s);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i}}}var xw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},vw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new xw(n)}draw(t){let n=Sn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof vu&&(n.strokeStyle=i,n.lineWidth=s,Tr(n,this.faceLandmarks.getJawOutline()),Tr(n,this.faceLandmarks.getLeftEyeBrow()),Tr(n,this.faceLandmarks.getRightEyeBrow()),Tr(n,this.faceLandmarks.getNose()),Tr(n,this.faceLandmarks.getLeftEye(),!0),Tr(n,this.faceLandmarks.getRightEye(),!0),Tr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let c=u=>{n.beginPath(),n.arc(u.x,u.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(c)}}};function bre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ta?a:to(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new vw(r).draw(e)})}var q2="0.12.5";function xre(e,t){let n=Nu(e,t),a=Tu(e,t);function r(i,o,l){let c=a(i,o,`${l}/separable_conv0`),u=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:u,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),c=a(i,i,`${o}/separable_conv1`),u=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function K2(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=bn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=xre(a,n),c=s(3,32,3,"entry_flow/conv_in"),u=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:c,reduction_block_0:u,reduction_block_1:p},h={};sr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function vre(e,t){let n=Un(e,t),a=cf(n),r=Su(n);function s(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:u}}function i(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function X2(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=vre(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),c=s("entry_flow/reduction_block_1"),u={conv_in:o,reduction_block_0:l,reduction_block_1:c},p={};sr(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return yn(e,n),{params:{entry_flow:u,middle_flow:p,exit_flow:m},paramMappings:n}}function Y2(e,t,n){return Z(At(e,t.filters,n,"same"),t.bias)}function kw(e,t,n=!0){let a=n?Ye(e):e;return a=Cn(a,t.separable_conv0,[1,1]),a=Cn(Ye(a),t.separable_conv1,[1,1]),a=Ft(a,[3,3],[2,2],"same"),a=Z(a,Y2(e,t.expansion_conv,[2,2])),a}function wre(e,t){let n=Cn(Ye(e),t.separable_conv0,[1,1]);return n=Cn(Ye(n),t.separable_conv1,[1,1]),n=Cn(Ye(n),t.separable_conv2,[1,1]),n=Z(n,e),n}var Iw=class extends an{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(de(256)),i=Ye(Y2(s,n.entry_flow.conv_in,[2,2]));return i=kw(i,n.entry_flow.reduction_block_0,!1),i=kw(i,n.entry_flow.reduction_block_1),sr(this._numMainBlocks,0,1).forEach(o=>{i=wre(i,n.middle_flow[`main_block_${o}`])}),i=kw(i,n.exit_flow.reduction_block),i=Ye(Cn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return X2(t,this._numMainBlocks)}extractParams(t){return K2(t,this._numMainBlocks)}};function Z2(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),r=of(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function J2(e){let t=[],n=Un(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return yn(e,t),{params:r,paramMappings:t}}var Er;(function(e){e.FEMALE="female",e.MALE="male"})(Er||(Er={}));var ff=class extends an{constructor(t=new Iw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof _r?this.faceFeatureExtractor.forwardInput(t):t,r=Xn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Op(r,n.fc.age).as1D(),i=Op(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return D(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Na(a)}})}async forward(t){return this.forwardInput(await gt(t))}async predictAgeAndGender(t){let n=await gt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,c)=>({ageTensor:l,genderTensor:s[c]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:c})=>{let u=(await l.data())[0],p=(await c.data())[0],d=p>.5,h=d?Er.MALE:Er.FEMALE,m=d?p:1-p;return l.dispose(),c.dispose(),{age:u,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return Z2(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=df(t);return this.faceFeatureExtractor.loadFromWeightMap(n),J2(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var zp=class extends Lp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return D(()=>{let i=(p,d)=>$t([wn([68],p,"float32"),wn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),c(d))))).div($t(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return D(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await gt(t))}async detectLandmarks(t){let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((u,p)=>Qm(p)),c=o.filter((u,p)=>!Qm(p));return new vu(Array(68).fill(0).map((u,p)=>new De(l[p],c[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var _u=class extends zp{constructor(t=new Pp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Q2(e){let t=[],{extractDenseBlock3Params:n}=pf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return yn(e,t),{params:a,paramMappings:t}}function eC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),{extractDenseBlock3Params:r}=uf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var Nw=class extends an{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(de(255)),i=sf(s,n.dense0,!0);return i=sf(i,n.dense1),i=sf(i,n.dense2),i=Xn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Q2(t)}extractParams(t){return eC(t)}};var gf=class extends zp{constructor(t=new Nw){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var tC=class extends _u{};function nC(e,t){return Z(L(e,t.weights),t.biases)}function Tw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Z(o,i),o=nC(o,t.scale),a?Ye(o):o}function aC(e,t){return Tw(e,t,[1,1],!0)}function Sw(e,t){return Tw(e,t,[1,1],!1)}function yf(e,t){return Tw(e,t,[2,2],!0,"valid")}function kre(e,t){function n(o,l,c){let u=e(o),p=u.length/(l*c*c);if(Jv(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${u.length}, numFilters: ${l}, filterSize: ${c}`);return D(()=>Ue(Sa(u,[l,p,c,c]),[2,3,1,0]))}function a(o,l,c,u){let p=n(o,l,c),d=tt(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:p,bias:d}}function r(o,l){let c=tt(e(o)),u=tt(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:u}}function s(o,l,c,u){let p=a(o,l,c,`${u}/conv`),d=r(l,`${u}/scale`);return{conv:p,scale:d}}function i(o,l,c,u,p=!1){let d=s((p?.5:1)*o,l,c,`${u}/conv1`),h=s(o,l,c,`${u}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function rC(e){let{extractWeights:t,getRemainingWeights:n}=bn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=kre(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),c=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),v=s(589824,256,3,"conv256_2"),x=s(589824,256,3,"conv256_down_out"),N=D(()=>Ue(Ta(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:c,conv64_down:u,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:v,conv256_down_out:x,fc:N},paramMappings:a}}function Ire(e,t){let n=Un(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),c=a(i);return{conv:{filters:o,bias:l},scale:c}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function sC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Ire(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),c=a("conv64_1"),u=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:v}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!Zv(v))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${v}`);let x={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:c,conv64_2:u,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:v};return yn(e,t),{params:x,paramMappings:t}}function La(e,t){let n=aC(e,t.conv1);return n=Sw(n,t.conv2),n=Z(n,e),n=Ye(n),n}function Bp(e,t){let n=yf(e,t.conv1);n=Sw(n,t.conv2);let a=Xn(e,2,2,"valid"),r=vt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=vt(o);n=Qe([n,l],1);let c=[...n.shape];c[2]=1;let u=vt(c);n=Qe([n,u],2)}return a=s?Qe([a,r],3):a,n=Z(a,n),n=Ye(n),n}var Eu=class extends an{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(150,!0),"float32"),s=Oa(a,[122.782,117.001,104.298]).div(de(256)),i=yf(s,n.conv32_down);i=Ft(i,3,2,"valid"),i=La(i,n.conv32_1),i=La(i,n.conv32_2),i=La(i,n.conv32_3),i=Bp(i,n.conv64_down),i=La(i,n.conv64_1),i=La(i,n.conv64_2),i=La(i,n.conv64_3),i=Bp(i,n.conv128_down),i=La(i,n.conv128_1),i=La(i,n.conv128_2),i=Bp(i,n.conv256_down),i=La(i,n.conv256_1),i=La(i,n.conv256_2),i=Bp(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await gt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return sC(t)}extractParams(t){return rC(t)}};function Nre(e){let t=new Eu;return t.extractWeights(e),t}function bf(e,t){return{...e,...{descriptor:t}}}function Tre(e){return typeof e.age=="number"}function xf(e,t){return{...e,...{age:t}}}function Sre(e){return(e.gender===Er.MALE||e.gender===Er.FEMALE)&&yu(e.genderProbability)}function vf(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Cre(e,t){function n(l,c){let u=Sa(e(3*3*l),[3,3,l,1]),p=tt(e(l)),d=tt(e(l)),h=tt(e(l)),m=tt(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:u,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,c,u,p,d){let h=Sa(e(l*c*u*u),[u,u,l,c]),m=tt(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,c,u,p){let{filters:d,bias:h}=a(l,c,u,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,c,u){let p=n(l,`${u}/depthwise_conv`),d=r(l,c,1,`${u}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),c=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),v=s(512,512,"mobilenetv1/conv_11"),x=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:v,conv_12:x,conv_13:N}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),c=r(256,512,3,"prediction_layer/conv_1"),u=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),v=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),x=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),$=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),O=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),B=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:v},box_predictor_2:{box_encoding_predictor:x,class_predictor:N},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:$,class_predictor:F},box_predictor_5:{box_encoding_predictor:O,class_predictor:B}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function iC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Cre(n,t),i=r(),o=s(),c={extra_dim:ah(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:c},paramMappings:t}}function _re(e,t){let n=Un(e,t);function a(c,u,p){let d=n(`${c}/Conv2d_${u}_pointwise/weights`,4,`${p}/filters`),h=n(`${c}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(c){let u=`mobilenetv1/conv_${c}`,p=`MobilenetV1/Conv2d_${c}_depthwise`,d=`${u}/depthwise_conv`,h=`${u}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",c,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(c,u){let p=n(`${c}/weights`,4,`${u}/filters`),d=n(`${c}/biases`,1,`${u}/bias`);return{filters:p,bias:d}}function o(c){let u=i(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:u,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function oC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=_re(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Sr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return yn(e,t),{params:s,paramMappings:t}}function ba(e,t,n){return D(()=>{let a=At(e,t.filters,n,"same");return a=Z(a,t.batch_norm_offset),qt(a,0,6)})}var Ere=.0010000000474974513;function Are(e,t,n){return D(()=>{let a=Yr(e,t.filters,n,"same");return a=fr(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Ere),qt(a,0,6)})}function Fre(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function lC(e,t){return D(()=>{let n,a=ba(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=Fre(o);a=Are(a,s.depthwise_conv,l),a=ba(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function $re(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),c=Math.min(a[n][1],a[n][3]),u=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(u-l)*(p-c);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,c),g=Math.min(i,u),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function uC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((u,p)=>({score:u,boxIndex:p})).filter(u=>u.score>r).sort((u,p)=>p.score-u.score),l=u=>u<=a?1:0,c=[];return o.forEach(u=>{if(c.length>=i)return;let p=u.score;for(let d=c.length-1;d>=0;--d){let h=$re(e,u.boxIndex,c[d]);if(h!==0&&(u.score*=l(h),u.score<=r))break}p===u.score&&c.push(u.boxIndex)}),c}function Dre(e){let t=dt(Ue(e,[1,0])),n=[fe(t[2],t[0]),fe(t[3],t[1])],a=[Z(t[0],ve(n[0],de(2))),Z(t[1],ve(n[1],de(2)))];return{sizes:n,centers:a}}function Rre(e,t){let{sizes:n,centers:a}=Dre(e),r=dt(Ue(t,[1,0])),s=ve(L(pn(ve(r[2],de(5))),n[0]),de(2)),i=Z(L(ve(r[0],de(10)),n[0]),a[0]),o=ve(L(pn(ve(r[3],de(5))),n[1]),de(2)),l=Z(L(ve(r[1],de(10)),n[1]),a[1]);return Ue($t([fe(i,s),fe(l,o),Z(i,s),Z(l,o)]),[1,0])}function cC(e,t,n){return D(()=>{let a=e.shape[0],r=Rre(j(ja(n.extra_dim,[a,1,1]),[-1,4]),j(e,[-1,4]));r=j(r,[a,r.shape[0]/a,4]);let s=ua(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=j(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function no(e,t){return D(()=>{let n=e.shape[0],a=j(eo(e,t.box_encoding_predictor),[n,-1,1,4]),r=j(eo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function pC(e,t,n){return D(()=>{let a=ba(e,n.conv_0,[1,1]),r=ba(a,n.conv_1,[2,2]),s=ba(r,n.conv_2,[1,1]),i=ba(s,n.conv_3,[2,2]),o=ba(i,n.conv_4,[1,1]),l=ba(o,n.conv_5,[2,2]),c=ba(l,n.conv_6,[1,1]),u=ba(c,n.conv_7,[2,2]),p=no(t,n.box_predictor_0),d=no(e,n.box_predictor_1),h=no(r,n.box_predictor_2),m=no(i,n.box_predictor_3),f=no(l,n.box_predictor_4),g=no(u,n.box_predictor_5),y=Qe([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Qe([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var xa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var ao=class extends an{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(512,!1),"float32"),r=fe(L(a,de(.007843137718737125)),de(1)),s=lC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=pC(s.out,s.conv11,n.prediction_layer);return cC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await gt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new xa(n),s=await gt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],c=o[0];for(let v=1;v{let[x,N]=[Math.max(0,y[v][0]),Math.min(1,y[v][2])].map($=>$*g),[T,C]=[Math.max(0,y[v][1]),Math.min(1,y[v][3])].map($=>$*f);return new bt(u[v],new xu(T,x,C-T,N-x),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),c.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return oC(t)}extractParams(t){return iC(t)}};function dC(e){let t=new ao;return t.extractWeights(e),t}function Mre(e){return dC(e)}var hC=class extends ao{};var mC=.4,fC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],gC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],yC=[117.001,114.697,97.404],bC="tiny_yolov2_model",xC="tiny_yolov2_separable_conv_model";var wf=e=>typeof e=="number";function Cw(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!wf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>wf(t.x)&&wf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(wf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Au(e){return D(()=>{let t=L(e,de(.10000000149011612));return Z(Ye(fe(e,t)),t)})}function Ar(e,t){return D(()=>{let n=Zn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=fe(n,t.bn.sub),n=L(n,t.bn.truediv),n=Z(n,t.conv.bias),Au(n)})}function Fr(e,t){return D(()=>{let n=Zn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ei(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Z(n,t.bias),Au(n)})}function Pre(e,t){let n=Nu(e,t);function a(i,o){let l=tt(e(i)),c=tt(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:c}}function r(i,o,l){let c=n(i,o,3,`${l}/conv`),u=a(o,`${l}/bn`);return{conv:c,bn:u}}let s=Tu(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function vC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=bn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=Pre(r,i),u;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,v]=a,x=t.isFirstLayerConv2d?o(p,d,3,"conv0"):c(p,d,"conv0"),N=c(d,h,"conv1"),T=c(h,m,"conv2"),C=c(m,f,"conv3"),$=c(f,g,"conv4"),F=c(g,y,"conv5"),O=b?c(y,b,"conv6"):void 0,B=v?c(b,v,"conv7"):void 0,W=o(v||b||y,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:$,conv5:F,conv6:O,conv7:B,conv8:W}}else{let[p,d,h,m,f,g,y,b,v]=a,x=l(p,d,"conv0"),N=l(d,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),$=l(f,g,"conv4"),F=l(g,y,"conv5"),O=l(y,b,"conv6"),B=l(b,v,"conv7"),W=o(v,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:$,conv5:F,conv6:O,conv7:B,conv8:W}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function Ore(e,t){let n=Un(e,t);function a(o){let l=n(`${o}/sub`,1),c=n(`${o}/truediv`,1);return{sub:l,truediv:c}}function r(o){let l=n(`${o}/filters`,4),c=n(`${o}/bias`,1);return{filters:l,bias:c}}function s(o){let l=r(`${o}/conv`),c=a(`${o}/bn`);return{conv:l,bn:c}}let i=Su(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function wC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Ore(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return yn(e,n),{params:i,paramMappings:n}}var lr=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var _w=class extends an{constructor(t){super("TinyYolov2");Cw(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=Ar(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=Ar(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=Ar(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=Ar(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=Ar(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=Ar(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=Ar(a,n.conv6),a=Ar(a,n.conv7),eo(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Au(eo(t,n.conv0,"valid",!1)):Fr(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=n.conv6?Fr(a,n.conv6):a,a=n.conv7?Fr(a,n.conv7):a,eo(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return D(()=>{let r=ce(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?Oa(r,this.config.meanRgb):r,r=r.div(de(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await gt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new lr(n),s=await gt(t),i=await this.forwardInput(s,a),o=D(()=>dt(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},c=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let u=c.map(g=>g.box),p=c.map(g=>g.score),d=c.map(g=>g.classScore),h=c.map(g=>this.config.classes[g.label]);return nw(u.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new ds(p[g],d[g],h[g],u[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return wC(t,this.config)}extractParams(t){let n=this.config.filterSizes||_w.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return vC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,c=t.shape[1],u=this.config.anchors.length,[p,d,h]=D(()=>{let y=t.reshape([c,c,u,this.boxEncodingSize]),b=y.slice([0,0,0,0],[c,c,u,4]),v=y.slice([0,0,0,4],[c,c,u,1]),x=this.withClassScores?Na(y.slice([0,0,0,5],[c,c,u,this.config.classes.length]),3):de(0);return[b,v,x]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let N=(b+Ep(g[y][b][v][0]))/c*o,T=(y+Ep(g[y][b][v][1]))/c*l,C=Math.exp(g[y][b][v][2])*this.config.anchors[v].x/c*o,$=Math.exp(g[y][b][v][3])*this.config.anchors[v].y/c*l,F=N-C/2,O=T-$/2,B={row:y,col:b,anchor:v},{classScore:W,label:G}=this.withClassScores?await this.extractPredictedClass(h,B):{classScore:1,label:0};m.push({box:new bu(F,O,F+C,O+$),score:x,classScore:x*W,label:G,...B})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Fu=_w;Fu.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var $u=class extends Fu{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:mC,classes:["face"],...t?{anchors:gC,meanRgb:yC}:{anchors:fC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new bt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?xC:bC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Lre(e,t=!0){let n=new $u(t);return n.extractWeights(e),n}var kf=class extends lr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var va=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function ro(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>to(l)?r(l):l.detection),i=a||(t instanceof Ae?await Iu(t,s):await ku(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ae&&l.dispose()),o}async function Du(e,t,n,a,r){return ro([e],t,async s=>n(s[0]),a,r)}var kC=.4,IC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],NC=[117.001,114.697,97.404];var Ru=class extends Fu{constructor(){let t={withSeparableConvs:!0,iouThreshold:kC,classes:["face"],anchors:IC,meanRgb:NC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new bt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var nt={ssdMobilenetv1:new ao,tinyFaceDetector:new Ru,tinyYolov2:new $u,faceLandmark68Net:new _u,faceLandmark68TinyNet:new gf,faceRecognitionNet:new Eu,faceExpressionNet:new hf,ageGenderNet:new ff},TC=(e,t)=>nt.ssdMobilenetv1.locateFaces(e,t),zre=(e,t)=>nt.tinyFaceDetector.locateFaces(e,t),Bre=(e,t)=>nt.tinyYolov2.locateFaces(e,t),SC=e=>nt.faceLandmark68Net.detectLandmarks(e),Wre=e=>nt.faceLandmark68TinyNet.detectLandmarks(e),Vre=e=>nt.faceRecognitionNet.computeFaceDescriptor(e),Ure=e=>nt.faceExpressionNet.predictExpressions(e),Gre=e=>nt.ageGenderNet.predictAgeAndGender(e),CC=e=>nt.ssdMobilenetv1.load(e),Hre=e=>nt.tinyFaceDetector.load(e),jre=e=>nt.tinyYolov2.load(e),qre=e=>nt.faceLandmark68Net.load(e),Kre=e=>nt.faceLandmark68TinyNet.load(e),Xre=e=>nt.faceRecognitionNet.load(e),Yre=e=>nt.faceExpressionNet.load(e),Zre=e=>nt.ageGenderNet.load(e),Jre=CC,Qre=TC,ese=SC;var Ew=class extends va{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Ou=class extends Ew{async run(){let t=await this.parentTask,n=await ro(t,this.input,async a=>Promise.all(a.map(r=>nt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>mf(a,n[r]))}withAgeAndGender(){return new Mu(this,this.input)}},Lu=class extends Ew{async run(){let t=await this.parentTask;if(!t)return;let n=await Du(t,this.input,a=>nt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return mf(t,n)}withAgeAndGender(){return new Pu(this,this.input)}},oo=class extends Ou{withAgeAndGender(){return new so(this,this.input)}withFaceDescriptors(){return new fs(this,this.input)}},lo=class extends Lu{withAgeAndGender(){return new io(this,this.input)}withFaceDescriptor(){return new gs(this,this.input)}};var Aw=class extends va{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Mu=class extends Aw{async run(){let t=await this.parentTask,n=await ro(t,this.input,async a=>Promise.all(a.map(r=>nt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return xf(vf(a,i,o),s)})}withFaceExpressions(){return new Ou(this,this.input)}},Pu=class extends Aw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Du(t,this.input,s=>nt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return xf(vf(t,a,r),n)}withFaceExpressions(){return new Lu(this,this.input)}},so=class extends Mu{withFaceExpressions(){return new oo(this,this.input)}withFaceDescriptors(){return new fs(this,this.input)}},io=class extends Pu{withFaceExpressions(){return new lo(this,this.input)}withFaceDescriptor(){return new gs(this,this.input)}};var If=class extends va{constructor(t,n){super();this.parentTask=t;this.input=n}},fs=class extends If{async run(){let t=await this.parentTask;return(await ro(t,this.input,a=>Promise.all(a.map(r=>nt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>bf(t[r],a))}withFaceExpressions(){return new oo(this,this.input)}withAgeAndGender(){return new so(this,this.input)}},gs=class extends If{async run(){let t=await this.parentTask;if(!t)return;let n=await Du(t,this.input,a=>nt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return bf(t,n)}withFaceExpressions(){return new lo(this,this.input)}withAgeAndGender(){return new io(this,this.input)}};var Nf=class extends va{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?nt.faceLandmark68TinyNet:nt.faceLandmark68Net}},Tf=class extends Nf{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Ae?await Iu(this.input,n):await ku(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Ae&&s.dispose()),t.map((s,i)=>Cu(s,r[i]))}withFaceExpressions(){return new oo(this,this.input)}withAgeAndGender(){return new so(this,this.input)}withFaceDescriptors(){return new fs(this,this.input)}},Sf=class extends Nf{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ae?await Iu(this.input,[n]):await ku(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ae&&s.dispose()),Cu(t,r)}withFaceExpressions(){return new lo(this,this.input)}withAgeAndGender(){return new io(this,this.input)}withFaceDescriptor(){return new gs(this,this.input)}};var Cf=class extends va{constructor(t,n=new xa){super();this.input=t;this.options=n}},Wp=class extends Cf{async run(){let{input:t,options:n}=this,a=n instanceof kf?r=>nt.tinyFaceDetector.locateFaces(r,n):n instanceof xa?r=>nt.ssdMobilenetv1.locateFaces(r,n):n instanceof lr?r=>nt.tinyYolov2.locateFaces(r,n):null;if(!a)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return a(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>Yi({},a)))})}withFaceLandmarks(t=!1){return new Tf(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ou(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Mu(this.runAndExtendWithFaceDetections(),this.input)}},_f=class extends Cf{async run(){let t=await new Wp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Yi({},n):void 0)})}withFaceLandmarks(t=!1){return new Sf(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Lu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pu(this.runAndExtendWithFaceDetection(),this.input)}};function tse(e,t=new xa){return new _f(e,t)}function Ef(e,t=new xa){return new Wp(e,t)}async function _C(e,t){return Ef(e,new xa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function nse(e,t={}){return Ef(e,new lr(t)).withFaceLandmarks().withFaceDescriptors()}var ase=_C;function Fw(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var Af=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Cr)return i;if(i instanceof Float32Array)return new Cr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Cr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>Fw(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Ap(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Cr.fromJSON(a));return new Af(n,t.distanceThreshold)}};function rse(e){let t=new Ru;return t.extractWeights(e),t}function EC(e,t){let{width:n,height:a}=new gn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>EC(r,{width:n,height:a}));if(to(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Cu(Yi(e,r),s)}return ir(e)?Yi(e,e.detection.forSize(n,a)):e instanceof ta||e instanceof bt?e.forSize(n,a):e}var sse=typeof process!="undefined",ise=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",ose={faceapi:q2,node:sse,browser:ise};export{ff as AgeGenderNet,bu as BoundingBox,ut as Box,va as ComposableTask,fs as ComputeAllFaceDescriptorsTask,If as ComputeFaceDescriptorsTaskBase,gs as ComputeSingleFaceDescriptorTask,Tf as DetectAllFaceLandmarksTask,Wp as DetectAllFacesTask,Nf as DetectFaceLandmarksTaskBase,Cf as DetectFacesTaskBase,Sf as DetectSingleFaceLandmarksTask,_f as DetectSingleFaceTask,gn as Dimensions,yw as FACE_EXPRESSION_LABELS,bt as FaceDetection,hC as FaceDetectionNet,hf as FaceExpressionNet,ms as FaceExpressions,_u as FaceLandmark68Net,gf as FaceLandmark68TinyNet,tC as FaceLandmarkNet,ta as FaceLandmarks,z2 as FaceLandmarks5,vu as FaceLandmarks68,Ap as FaceMatch,Af as FaceMatcher,Eu as FaceRecognitionNet,Er as Gender,Fp as LabeledBox,Cr as LabeledFaceDescriptors,_r as NetInput,an as NeuralNetwork,ds as ObjectDetection,De as Point,B2 as PredictedBox,xu as Rect,ao as SsdMobilenetv1,xa as SsdMobilenetv1Options,Ru as TinyFaceDetector,kf as TinyFaceDetectorOptions,$u as TinyYolov2,lr as TinyYolov2Options,ase as allFaces,_C as allFacesSsdMobilenetv1,nse as allFacesTinyYolov2,pw as awaitMediaLoaded,dw as bufferToImage,Vre as computeFaceDescriptor,wu as createCanvas,Rp as createCanvasFromMedia,Mre as createFaceDetectionNet,Nre as createFaceRecognitionNet,dC as createSsdMobilenetv1,rse as createTinyFaceDetector,Lre as createTinyYolov2,Ef as detectAllFaces,SC as detectFaceLandmarks,Wre as detectFaceLandmarksTiny,ese as detectLandmarks,tse as detectSingleFace,ww as draw,st as env,Fw as euclideanDistance,xf as extendWithAge,bf as extendWithFaceDescriptor,Yi as extendWithFaceDetection,mf as extendWithFaceExpressions,Cu as extendWithFaceLandmarks,vf as extendWithGender,Iu as extractFaceTensors,ku as extractFaces,mre as fetchImage,fw as fetchJson,fre as fetchNetWeights,Qi as fetchOrThrow,Sn as getContext2dOrThrow,Ji as getMediaDimensions,hw as imageTensorToCanvas,mw as imageToSquare,sre as inverseSigmoid,ew as iou,af as isMediaElement,Dp as isMediaLoaded,Tre as isWithAge,ir as isWithFaceDetection,bw as isWithFaceExpressions,to as isWithFaceLandmarks,Sre as isWithGender,Zre as loadAgeGenderModel,Jre as loadFaceDetectionModel,Yre as loadFaceExpressionModel,qre as loadFaceLandmarkModel,Kre as loadFaceLandmarkTinyModel,Xre as loadFaceRecognitionModel,CC as loadSsdMobilenetv1Model,Hre as loadTinyFaceDetectorModel,jre as loadTinyYolov2Model,gw as loadWeightMap,Qre as locateFaces,gre as matchDimensions,tw as minBbox,nt as nets,nw as nonMaxSuppression,Oa as normalize,aw as padToSquare,Gre as predictAgeAndGender,Ure as recognizeFaceExpressions,EC as resizeResults,Zi as resolveInput,rre as shuffleArray,Ep as sigmoid,TC as ssdMobilenetv1,Bg as tf,zre as tinyFaceDetector,Bre as tinyYolov2,gt as toNetInput,Yv as utils,Cw as validateConfig,ose as version}; + `}};function oee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],c=0,u=_.getAxesPermutation([c],o),p=r;u!=null&&(p=Tn({inputs:{x:r},backend:n,attrs:{perm:u}}),l.push(p),c=_.getInnerMostAxes(1,o)[0]);let d=_.segment_util.computeOutShape(p.shape,c,i),h=k.sizeFromShape([p.shape[c]]),m=be({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=nh(r.dtype),g=(x,N,T,C,F)=>{let $=x.shape[0],P=x.shape[1],B=_.segment_util.segOpComputeOptimalWindowSize(P,F),W={windowSize:B,inSize:P,batchSize:$,numSegments:F},G=new iee(W,N),q=n.compileAndRun(G,[x,T],C);if(l.push(q),q.shape[1]===F)return q;let j=KS({backend:n,attrs:{start:0,stop:F,step:1,dtype:"float32"}}),X=ZS({inputs:{x:j},backend:n,attrs:{reps:[P/B]}});return l.push(j),l.push(X),g(q,N,X,C,F)},y=g(m,"unsortedSegmentSum",s,f,i),b=be({inputs:{x:y},backend:n,attrs:{shape:d}}),v=b;if(u!=null){l.push(b);let x=_.getUndoAxesPermutation(u);v=Tn({inputs:{x:v},backend:n,attrs:{perm:x}})}return l.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var lee={kernelName:Ic,backendName:"webgl",kernelFunc:oee},uee=[t9,r9,UK,HK,KK,ZK,QK,nX,rX,iX,cX,dX,fX,bX,TX,wX,_X,$X,AX,PX,LX,BX,GX,ZX,QX,sY,oY,pY,mY,NK,bY,_Y,AY,kY,RY,PY,$Y,zY,VY,HY,qY,XY,JY,r7,i7,e7,u7,d7,g7,v7,N7,C7,_7,E7,F7,D7,M7,O7,z7,U7,q7,X7,Z7,eZ,rZ,lZ,dZ,IK,mZ,yY,yZ,vZ,IZ,SK,CZ,FZ,DZ,BZ,OZ,GZ,qZ,ZZ,i9,m9,d9,b9,v9,k9,c9,N9,S9,A9,R9,L9,j9,FK,K9,Z9,eJ,aJ,tY,iJ,lJ,cJ,hJ,yJ,_K,xJ,vJ,nY,V9,IJ,FJ,CJ,DK,MJ,LJ,WJ,GJ,KJ,YJ,QJ,nQ,rQ,oQ,cQ,hQ,gQ,xQ,kQ,XX,G9,TQ,CQ,EQ,FQ,RQ,OQ,zQ,WQ,GQ,U9,BK,qQ,YQ,QQ,tee,WK,aee,see,lee,oJ];for(let e of uee)Tc(e);var cee="3.1.0",pee={"tfjs-core":e1,"tfjs-backend-cpu":VU,"tfjs-backend-webgl":kK,"tfjs-data":CN,"tfjs-layers":ym,"tfjs-converter":wN,tfjs:cee},Vn;(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"})(Vn||(Vn={}));var Sp;(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"})(Sp||(Sp={}));var JS;function dee(e){JS=e.wasm.cwrap(bi,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function hee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let F=n.dataIdMap.get(i.dataId);if(F.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${F.shape.length}.`);m=F.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Sp[u];if(g==null)throw new Error(`${u} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=c?s.shape[1]:s.shape[2],v=r.shape[0],x=n.makeOutput([v,y,b],r.dtype),N=n.dataIdMap.get(x.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return JS(d,T,r.shape.length,h,C,s.shape.length,l,c,g,m,f,p||0,N),x}var mee={kernelName:bi,backendName:"wasm",setupFunc:dee,kernelFunc:hee};function Sn(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),c=s.dataIdMap.get(l.dataId).id;return k.sizeFromShape(l.shape)===0||t(o,c),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var fee=Sn(_o);function fn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:c,b:u}=l,p=o.dataIdMap.get(c.dataId).id,d=o.dataIdMap.get(u.dataId).id,h=n!=null?n:c.dtype,m=_.assertAndGetBroadcastShape(c.shape,u.shape),f=o.makeOutput(m,h);if(k.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(c.shape).buffer),y=new Uint8Array(new Int32Array(u.shape).buffer),b=o.dataIdMap.get(f.dataId).id,v=()=>a(p,g,c.shape.length,d,y,u.shape.length,Vn[c.dtype],b);if(t&&c.dtype==="float32")return v(),f;let x=_.getBroadcastDims(c.shape,m),N=_.getBroadcastDims(u.shape,m),T=x.every((F,$)=>F===$),C=N.every((F,$)=>F===$);if(T&&C)return v(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${c.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var gee=!0,yee=fn(zr,gee),QS;function bee(e){QS=e.wasm.cwrap(Ss,null,["array","number","number","number"])}function xee(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(k.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return QS(s,r.length,Vn[a.dtype],i),a}var vee={kernelName:Ss,backendName:"wasm",setupFunc:bee,kernelFunc:xee};function Zm(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var wee={kernelName:Us,backendName:"wasm",kernelFunc:Zm},e2;function kee(e){e2=e.wasm.cwrap(yi,null,["number","array","number","number","number","array","number"])}function Jm(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Nee(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Tee={kernelName:yi,backendName:"wasm",kernelFunc:Jm,setupFunc:kee};function gu(e,t,n){let a=e.shape,r=e.shape.length,s=k.parseAxisParam(t,a),i=s,o=_.getAxesPermutation(i,r),l=null,c=!1;if(o!=null){let u=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var $ee={kernelName:dl,backendName:"wasm",kernelFunc:Pa},a2;function Dee(e){a2=e.wasm.cwrap(Es,null,["number","array","number","number","array","number","number","number","number"])}function Ree(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=Pa({inputs:{x:r},backend:n,attrs:{shape:x}}),C=Pa({inputs:{x:s},backend:n,attrs:{shape:N}}),F=n.dataIdMap.get(T.dataId).id,$=n.dataIdMap.get(C.dataId).id,P=i?T.shape[2]:T.shape[1],B=o?C.shape[1]:C.shape[2],W=Math.max(g,y),G=n.makeOutput([W,P,B],T.dtype),q=n.dataIdMap.get(G.dataId).id,j=new Uint8Array(new Int32Array(T.shape).buffer),X=new Uint8Array(new Int32Array(C.shape).buffer);return a2(F,j,T.shape.length,$,X,C.shape.length,i,o,q),n.disposeData(T.dataId),n.disposeData(C.dataId),G.shape=v,G}var Mee={kernelName:Es,backendName:"wasm",setupFunc:Dee,kernelFunc:Ree};function Qm(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Pee={kernelName:As,backendName:"wasm",kernelFunc:Qm},Oee=Sn(Fs),r2;function Lee(e){r2=e.wasm.cwrap(Br,null,["number","number","number","number"])}function zee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(l.dataId).id;return r2(o,s,i,c),l}var Bee={kernelName:Br,backendName:"wasm",setupFunc:Lee,kernelFunc:zee};function s2(e){let{inputs:t,backend:n}=e,a=k.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>k.sizeFromShape(h.shape)>0);if(s.length===1)return Zm({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(k.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(_.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(v=>{let x=k.sizeFromShape(v.shape.slice(a));return Pa({inputs:{x:v},backend:n,attrs:{shape:[-1,x]}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape}));r=_.computeOutShape(h.map(v=>v.shape),1);let f=h[0].shape[0]===1,g=vv(m,r,t[0].dtype,f),y=_.computeOutShape(s.map(v=>v.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=_.fromStringArrayToUint8(g),i}let l=k.sizeFromShape(s[0].shape.slice(0,a)),c=0,u=s.map(h=>{let m=k.sizeFromShape(h.shape.slice(a));return c+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let c=_.getAxesPermutation([s],l),u=r;c!==null&&(u=Jm({inputs:{x:r},attrs:{perm:c},backend:n}));let p=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(u.shape,u.dtype),h=u.shape[p],m=n.dataIdMap.get(u.dataId).id,f=n.dataIdMap.get(d.dataId).id;u2(m,i?1:0,o?1:0,h,f,Vn[r.dtype]);let g=d;if(c!==null){let y=_.getUndoAxesPermutation(c);g=Jm({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(u.dataId),n.disposeData(d.dataId)}return g}var ete={kernelName:Ms,backendName:"wasm",setupFunc:Jee,kernelFunc:Qee},c2;function tte(e){c2=e.wasm.cwrap(zo,null,["number","number","number","array","number","array","array","number","number"])}function nte(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(k.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),v=new Uint8Array(new Int32Array(k.computeStrides(m)).buffer),x=t.dataIdMap.get(f.dataId).id;return c2(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,v,m.length,x),f}var ate={kernelName:zo,backendName:"wasm",setupFunc:tte,kernelFunc:nte},p2;function rte(e){p2=e.wasm.cwrap(Ps,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ste(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:c,pad:u,dimRoundingMode:p}=n,d=c==null?[1,1]:c,h=_.computeConv2DInfo(r.shape,s.shape,l,d,u,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,v=h.padInfo.left,x=h.dilationHeight,N=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,F=h.inChannels,$=h.outChannels,P=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 B=a.makeOutput(h.outShape,"float32"),W=a.dataIdMap.get(B.dataId).id;return p2(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,v,P,x,N,T,C,F,$,W),B}var ite={kernelName:Ps,backendName:"wasm",setupFunc:rte,kernelFunc:ste},ote=!1,lte=fn(Vo,ote,"bool"),ute=Sn(Ls);function Jv(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Pa({inputs:{x:r},backend:a,attrs:{shape:o}})}var cte={kernelName:Uo,backendName:"wasm",kernelFunc:Jv};function pte(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var dte={kernelName:hc,backendName:"wasm",kernelFunc:pte},d2;function hte(e){d2=e.wasm.cwrap(Ho,null,["number","number","number","number","number","number"])}function mte(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,c,u]=a.shape;return d2(s,o,l,c,u,i),r}var fte={kernelName:Ho,backendName:"wasm",kernelFunc:mte,setupFunc:hte},gte=Sn(zs),yte=!1,bte=fn(Bs,yte),h2;function xte(e){h2=e.wasm.cwrap(Ws,null,["number","number","number","number","number","number","number"])}function vte(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:c}=n,u=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=c!=null?t.dataIdMap.get(c.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(k.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return h2(u,p,d,h,m,r,g),f}var wte={kernelName:Ws,backendName:"wasm",setupFunc:xte,kernelFunc:vte},m2;function kte(e){m2=e.wasm.cwrap(xi,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 Ite(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d),g=Sp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,F=f.padInfo.right,$=f.padInfo.bottom,P=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,j=f.inChannels,X=f.padInfo.type==="SAME"?1:0,K=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return m2(y,K,ne,J,b,N,T,x,C,F,$,P,X,B,W,G,q,j,v,g,oe,m||0,Q),se}var Nte={kernelName:xi,backendName:"wasm",setupFunc:kte,kernelFunc:Ite},f2;function Tte(e){f2=e.wasm.cwrap(vi,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 Ste(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d,!0),g=Sp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,F=f.padInfo.right,$=f.padInfo.bottom,P=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,j=f.inChannels,X=f.padInfo.type==="SAME"?1:0,K=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return f2(y,K,ne,J,b,N,T,x,C,F,$,P,X,B,W,G,q,j,v,g,oe,m||0,Q),se}var Cte={kernelName:vi,backendName:"wasm",setupFunc:Tte,kernelFunc:Ste},g2;function _te(e){g2=e.wasm.cwrap(qo,null,["number","number","number","number","number","number","array","number"])}function Ete(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=by.prepareAndValidate(a,r),c=t.makeOutput(s,a.dtype);if(i===0)return c;let u=r.shape,p=u[u.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(c.dataId).id;return g2(d,Vn[a.dtype],h,i,p,o,m,f),c}var Ate={kernelName:qo,backendName:"wasm",setupFunc:_te,kernelFunc:Ete},y2;function Fte(e){y2=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function $te(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=k.parseAxisParam(i,r.shape)[0],c=_.segment_util.collectGatherOpShapeInfo(r,s,l,o),u=Pa({inputs:{x:r},attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]},backend:t}),p=k.sizeFromShape(s.shape),d=Pa({inputs:{x:s},attrs:{shape:[c.batchSize,p/c.batchSize]},backend:t}),h=[c.batchSize,c.outerSize,p/c.batchSize,c.sliceSize],m=t.makeOutput(h,r.dtype);if(k.sizeFromShape(r.shape)===0)return m;let f=u.shape.length-1,g=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,v=new Uint8Array(new Int32Array(k.computeStrides(u.shape)).buffer),x=new Uint8Array(new Int32Array(k.computeStrides(h)).buffer);return y2(g,Vn[r.dtype],v,f,y,c.batchSize,x,b),t.disposeData(u.dataId),t.disposeData(d.dataId),m.shape=c.outputShape,m}var Dte={kernelName:jo,backendName:"wasm",setupFunc:Fte,kernelFunc:$te},Rte=!1,Mte=fn(Ko,Rte,"bool"),Pte=!1,Ote=fn(Vs,Pte,"bool"),b2;function Lte(e){b2=e.wasm.cwrap(Gs,null,["number","number","number"])}function zte(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(k.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;b2(r,n,i)}return s}var Bte={kernelName:Gs,backendName:"wasm",setupFunc:Lte,kernelFunc:zte},Wte=!1,Vte=fn(Jo,Wte,"bool"),Ute=!1,Gte=fn(Qo,Ute,"bool"),Hte=Sn(Hs),jte=!1,qte=fn(tl,jte,"bool"),x2;function Kte(e){x2=e.wasm.cwrap(js,null,["number, number, number"])}function Xte(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:u,originalAxes:p,inputWasTransposed:d}=gu(i,r,t);if(d){let b=t.dataIdMap.get(c.dataId).id;l=c,o=b}let h=l.shape.length;_.assertAxesAreInnerMostDims("max",u,h);let[m,f]=_.computeOutAndReduceShapes(l.shape,u),g=k.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(k.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;x2(o,g,b)}if(d&&t.disposeData(c.dataId),s){let b=_.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var Yte={kernelName:js,backendName:"wasm",setupFunc:Kte,kernelFunc:Xte},Zte=!1,Jte=fn(qs,Zte),v2;function Qte(e){v2=e.wasm.cwrap(Ks,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ene(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=n,u=_.computePool2DInfo(r.shape,i,o,1,l,c),p=u.filterHeight,d=u.filterWidth,h=u.padInfo.top,m=u.padInfo.right,f=u.padInfo.bottom,g=u.padInfo.left,y=u.dilationHeight,b=u.dilationWidth,v=u.strideHeight,x=u.strideWidth,N=u.inChannels,T=u.outChannels;if(u.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${u.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(u.outShape,"float32"),F=a.dataIdMap.get(C.dataId).id;return v2(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,v,x,N,T,F),C}var tne={kernelName:Ks,backendName:"wasm",setupFunc:Qte,kernelFunc:ene},w2;function nne(e){w2=e.wasm.cwrap(Xs,null,["number, number, number"])}function ane(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("mean",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=c;c.dtype!=="float32"&&(b=Qm({backend:t,inputs:{x:c},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let v=t.makeOutput(f,"float32");if(k.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(v.dataId).id;w2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(v.shape,d);v.shape=x}return c.dtype!=="float32"&&t.disposeData(b.dataId),v}var rne={kernelName:Xs,backendName:"wasm",setupFunc:nne,kernelFunc:ane},k2;function sne(e){k2=e.wasm.cwrap(Ys,null,["number, number, number"])}function ine(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t);if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v)}let m=c.shape.length;_.assertAxesAreInnerMostDims("min",p,m);let[f,g]=_.computeOutAndReduceShapes(c.shape,p),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;k2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var one={kernelName:Ys,backendName:"wasm",setupFunc:sne,kernelFunc:ine},lne=!1,une=fn(Zs,lne),cne=!0,pne=fn(Js,cne),dne=Sn(al);function Qv(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var I2;function hne(e){I2=e.wasm.cwrap(sl,"number",["number","number","number","number","number"])}function mne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,c=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(l.dataId).id,p=I2(c,u,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=Qv(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var fne={kernelName:sl,backendName:"wasm",setupFunc:hne,kernelFunc:mne},N2;function gne(e){N2=e.wasm.cwrap(il,"number",["number","number","number","number","number","bool"])}function yne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=N2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Qv(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var bne={kernelName:il,backendName:"wasm",setupFunc:gne,kernelFunc:yne},T2;function xne(e){T2=e.wasm.cwrap(ol,"number",["number","number","number","number","number","number"])}function vne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=T2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=Qv(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var wne={kernelName:ol,backendName:"wasm",setupFunc:xne,kernelFunc:vne},kne=!1,Ine=fn(rl,kne,"bool"),S2;function Nne(e){S2=e.wasm.cwrap(Qs,null,["number","number","number","number","number"])}function Tne(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),c=n.dataIdMap.get(l.dataId).id,u=n.dataIdMap.get(r.dataId).id;return S2(u,s,i,o,c),l}var Sne={kernelName:Qs,backendName:"wasm",setupFunc:Nne,kernelFunc:Tne};function Cne(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var _ne={kernelName:ll,backendName:"wasm",kernelFunc:Cne};function Ene(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Jv({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(l=>{k.assertShapesMatch(s,l.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===l.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=t.map(l=>Jv({inputs:{input:l},backend:n,attrs:{dim:r}}));return s2({inputs:o,backend:n,attrs:{axis:r}})}var Ane={kernelName:ul,backendName:"wasm",kernelFunc:Ene},C2;function Fne(e){C2=e.wasm.cwrap(ei,null,["number","array","number","number","array","array","number","number"])}function $ne(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),u=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(u).buffer),h=new Uint8Array(new Int32Array(p).buffer);return C2(i,c,t.shape.length,Vn[t.dtype],d,h,r,l),o}var Dne={kernelName:ei,backendName:"wasm",kernelFunc:$ne,setupFunc:Fne},Rne=!1,Mne=fn(ti,Rne),_2;function Pne(e){_2=e.wasm.cwrap(ni,null,["number","number","number"])}function One(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return _2(s,i,l),o}var Lne={kernelName:ni,backendName:"wasm",setupFunc:Pne,kernelFunc:One},E2;function zne(e){E2=e.wasm.cwrap(cl,null,["number","number","number","number"])}function Bne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("prod",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;E2(l,y,Vn[b.dtype],v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var Wne={kernelName:cl,backendName:"wasm",setupFunc:zne,kernelFunc:Bne},Vne=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=Iv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Une={kernelName:xc,backendName:"wasm",kernelFunc:Vne},Gne=!0,Hne=fn(Os,Gne),jne=Sn(ai),qne=Sn(si),A2;function Kne(e){A2=e.wasm.cwrap(ri,null,["number","number","number","number","number","number","number","number","number","number"])}function Xne(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,[u,p,d,h]=r.shape,m=[u,l,c,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Qm({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(k.sizeFromShape(r.shape)===0)return b;let v=t.dataIdMap.get(b.dataId).id;return A2(y,u,p,d,h,l,c,s?1:0,i?1:0,v),g!=null&&t.disposeData(g.dataId),b}var Yne={kernelName:ri,backendName:"wasm",setupFunc:Kne,kernelFunc:Xne},F2;function Zne(e){F2=e.wasm.cwrap(ii,null,["number","array","number","array","number","number"])}function Jne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=k.parseAxisParam(s,r.shape);if(r.shape.length===0)return Zm({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);F2(l,u,i.length,p,r.shape.length,c);let d=Pa({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),d}var Qne={kernelName:ii,backendName:"wasm",kernelFunc:Jne,setupFunc:Zne},$2;function eae(e){$2=e.wasm.cwrap(Sl,null,["number","number","number","number","number","number","number","number","array","number","number"])}function tae(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=_.getImageCenter(o,d,h),y=i===0,b=255,v=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],x=new Uint8Array(new Int32Array(v).buffer);return $2(c,p,d,h,m,s,f,g,x,v.length,u),l}var nae={kernelName:Sl,backendName:"wasm",kernelFunc:tae,setupFunc:eae},aae=Sn(oi),rae=Sn(li),D2;function sae(e){D2=e.wasm.cwrap(hl,null,["number","number","number","number","number","number","array","number","number"])}function iae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(k.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:c,sliceSize:u,strides:p,outputSize:d}=xy.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return D2(h,m,Vn[s.dtype],l,c,u,f,d,g),o}var oae={kernelName:hl,backendName:"wasm",setupFunc:sae,kernelFunc:iae},R2;function lae(e){R2=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function uae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,c=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(c.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:k.sizeFromShape(r.shape.slice(1));return R2(i,o,l,h,u),c}var cae={kernelName:ml,backendName:"wasm",kernelFunc:uae,setupFunc:lae},M2;function pae(e){M2=e.wasm.cwrap(ci,null,["number","number"])}function dae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return k.sizeFromShape(r.shape)===0||M2(a,s),r}var hae={kernelName:"Sigmoid",backendName:"wasm",setupFunc:pae,kernelFunc:dae},mae=Sn(ui);function ef(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=cn.parseSliceParams(t,n,a),o=cn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),c=r.makeOutput(i,t.dtype),u=k.computeStrides(t.shape),p=r.dataIdMap.get(c.dataId);if(o){let m=cn.computeFlatOffset(s,u);return t.dtype==="string"?p.stringBytes=l.slice(m,m+k.sizeFromShape(i)):r.typedArrayFromHeap(c).set(l.subarray(m,m+k.sizeFromShape(i))),c}if(t.dtype==="string"){let m=Dm(l,s,i,t.shape,t.dtype);return p.stringBytes=m,c}let d=r.typedArrayFromHeap(c),h=t.shape.length;if(h===2)fae(l,u[0],d,s,i);else if(h===3)gae(l,u[0],u[1],d,s,i);else if(h===4)yae(l,u[0],u[1],u[2],d,s,i);else{let m=Dm(l,s,i,t.shape,t.dtype);d.set(m)}return c}function fae(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let c=i;c{let d=[...u];d[o]=p;let h=ef({inputs:{x:r},attrs:{begin:c,size:d},backend:a});return c[o]+=p,h})}var Iae={kernelName:vl,backendName:"wasm",kernelFunc:kae},Nae=Sn(pi),Tae=Sn(kc),Sae=!0,Cae=fn(mi,Sae),O2;function _ae(e){O2=e.wasm.cwrap(Vr,null,["number","number","number"])}function Eae(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return O2(i,r,l),o}var Aae={kernelName:Vr,backendName:"wasm",setupFunc:_ae,kernelFunc:Eae},L2;function Fae(e){L2=e.wasm.cwrap(wl,null,["number","array","number","array","array","array","array","array","number","number"])}function $ae(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,h=_.slice_util.maskToAxes(u);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(u!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(u!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=_.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(P=>{s[P]=0,i[P]=1,g.splice(P,0,1)});let y=Pa({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:v,strides:x}=_.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,c,u);s=b,i=v,o=x;let N=_.slice_util.maskToAxes(d);N.forEach(P=>{i[P]=s[P]+1,o[P]=1});let T=_.slice_util.computeOutShape(s,i,o),C=T.filter((P,B)=>N.indexOf(B)===-1);if(o.every(P=>P===1)){let P=ef({inputs:{x:r},attrs:{begin:s,size:T},backend:t});t.disposeData(y.dataId);let B=Pa({inputs:{x:P},attrs:{shape:C},backend:t});return t.disposeData(P.dataId),B}let F=t.makeOutput(C,"float32");if(!C.some(P=>P===0)){let P=t.dataIdMap.get(y.dataId).id,B=new Uint8Array(new Int32Array(k.computeStrides(y.shape)).buffer),W=new Uint8Array(new Int32Array(s).buffer),G=new Uint8Array(new Int32Array(i).buffer),q=new Uint8Array(new Int32Array(o).buffer),j=new Uint8Array(new Int32Array(C).buffer),X=new Uint8Array(new Int32Array(k.computeStrides(C)).buffer),K=t.dataIdMap.get(F.dataId).id;L2(P,B,y.shape.length,W,G,q,j,X,C.length,K)}t.disposeData(y.dataId);let $=Pa({inputs:{x:F},attrs:{shape:C},backend:t});return t.disposeData(F.dataId),$}var Dae={kernelName:wl,backendName:"wasm",setupFunc:Fae,kernelFunc:$ae},Rae=!0,Mae=fn(fi,Rae),z2;function Pae(e){z2=e.wasm.cwrap(di,null,["number, number, number"])}function Oae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=gu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("sum",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;z2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var Lae={kernelName:di,backendName:"wasm",setupFunc:Pae,kernelFunc:Oae},zae=Sn(gi),B2;function Bae(e){B2=e.wasm.cwrap(Wr,null,["number","array","number","array","number","number"])}function Wae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let c=t.makeOutput(l,a.dtype),u=t.dataIdMap.get(c.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return W2(i,o,a.shape.length,Vn[a.dtype],r,s,u,d),[c,p]},Hae={kernelName:Il,backendName:"wasm",setupFunc:Uae,kernelFunc:Gae};function jae(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),c=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var qae={kernelName:Nl,backendName:"wasm",kernelFunc:jae};function Kae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Xae={kernelName:Tl,backendName:"wasm",kernelFunc:Kae},Yae=[fee,yee,vee,_ee,Fee,Mee,Pee,Oee,Bee,Wee,Gee,qee,Kee,Zee,ete,ate,ite,lte,ute,cte,dte,fte,gte,bte,mee,wte,Nte,Cte,Ate,Dte,Mte,Ote,wee,Bte,Vte,Gte,Hte,qte,Yte,Jte,tne,rne,one,une,pne,dne,fne,bne,wne,Ine,Sne,_ne,Ane,Dne,Mne,Lne,Wne,Une,Hne,jne,qne,$ee,Yne,Qne,nae,rae,aae,oae,cae,hae,mae,bae,wae,Iae,Nae,Tae,Cae,Aae,Dae,Mae,Lae,zae,Vae,Hae,Tee,qae,Xae];for(let e of Yae)Tc(e);var ew=ee();ew.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])));ew.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ew.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 V2=To(IE()),Zae='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}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;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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["dynCall_ii"](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"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){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.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");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()}}}}',Jae=To(NE()),U2=class extends rc{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new gd(this,Ha())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let c=t;this.dataIdMap.set(e,{id:s,stringBytes:c,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=k.sizeFromShape(n),o=i*k.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+k.sizeFromShape(a)*k.bytesPerElement(n));return Qae(s.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(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=k.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=k.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function ere(e){return(t,n)=>(k.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function G2(e,t,n){if(tf!=null)return tf;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Cp!=null&&Cp[a]!=null?Cp[a]:n+a}async function tre(){let[e,t]=await Promise.all([ee().getAsync("WASM_HAS_SIMD_SUPPORT"),ee().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(l,c)=>{if(l.endsWith(".worker.js")){let u=Zae,p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return l.endsWith(".wasm")?G2(e,t,_p!=null?_p:c):c+l},tw&&(r.instantiateWasm=ere(G2(e,t,_p!=null?_p:"")));let s;t&&e&&tf==null?(s=V2.default(r),s.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+V2.default.toString()],{type:"text/javascript"})):s=Jae.default(r);let i=null;s.tfjs={init:s.cwrap("init",null,[]),registerTensor:s.cwrap("register_tensor",null,["number","number","number"]),disposeData:s.cwrap("dispose_data",i,["number"]),dispose:s.cwrap("dispose",i,[])};let o=!1;s.onRuntimeInitialized=()=>{o=!0,Ep=!1,n({wasm:s})},s.onAbort=()=>{o||Ep||(Ep=!0,a({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"}))}})}function Qae(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 nre=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],tf=null,_p=null,Cp={},Ep=!1,tw=!1;function are(e,t=!1){if(Ty("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Ep)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");tf=e,tw=t}function rre(e,t=!1){if(Ep)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")_p=e;else{Cp=e;let n=nre.filter(a=>Cp[a]==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.`)}tw=t}var sre="3.1.0",ire=2;uh("wasm",async()=>{let{wasm:e}=await tre();return new U2(e)},ire);var Cw={};hd(Cw,{AnchorPosition:()=>lr,DrawBox:()=>sf,DrawBoxOptions:()=>gw,DrawFaceLandmarks:()=>Sw,DrawFaceLandmarksOptions:()=>Tw,DrawTextField:()=>hs,DrawTextFieldOptions:()=>Dp,drawContour:()=>Sr,drawDetections:()=>yre,drawFaceExpressions:()=>wre,drawFaceLandmarks:()=>kre});function Sr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var nw={};hd(nw,{computeReshapedDimensions:()=>sw,getCenterPoint:()=>Zi,isDimensions:()=>af,isEven:()=>nf,isFloat:()=>rw,isTensor:()=>Xi,isTensor1D:()=>ore,isTensor2D:()=>aw,isTensor3D:()=>Cr,isTensor4D:()=>ea,isValidNumber:()=>Oa,isValidProbablitiy:()=>yu,range:()=>ir,round:()=>Yi});var gn=class{constructor(t,n){if(!Oa(t)||!Oa(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new gn(1/this.width,1/this.height)}};function Xi(e,t){return e instanceof Ae&&e.shape.length===t}function ore(e){return Xi(e,1)}function aw(e){return Xi(e,2)}function Cr(e){return Xi(e,3)}function ea(e){return Xi(e,4)}function rw(e){return e%1!=0}function nf(e){return e%2==0}function Yi(e,t=2){let n=10**t;return Math.floor(e*n)/n}function af(e){return e&&e.width&&e.height}function sw({width:e,height:t},n){let a=n/Math.max(t,e);return new gn(Math.round(e*a),Math.round(t*a))}function Zi(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function ir(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Oa(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function yu(e){return Oa(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var ut=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Oa)}static assertIsValidBox(t,n,a=!1){if(!ut.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Oa),s=[a.x,a.y,a.width,a.height].every(Oa);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,c]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ut.assertIsValidBox({x:i,y:o,width:l,height:c},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=c}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ut({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ut({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),c<1&&(l=2-c,c=1),u<1&&(l=2-u,u=1),{dy:i,edy:l,dx:s,edx:o,y:u,ey:d,x:c,ex:p,w:a,h:r}}calibrate(t){return new ut({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var bu=class extends ut{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var ds=class{constructor(t,n,a,r,s){this._imageDims=new gn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ut(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ut(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new ds(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var bt=class extends ds{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new bt(a,r,s)}};function iw(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function ow(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let c=0;cl[u]<=n)}return s}function La(e,t){return D(()=>{let[n,a,r]=t,s=wn([...e.shape.slice(0,3),1],n,"float32"),i=wn([...e.shape.slice(0,3),1],a,"float32"),o=wn([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return fe(e,l)})}function uw(e,t=!1){return D(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,wn(h,0,"float32")},l=o(s),c=r-l.shape[i],p=[t&&c?o(c):null,e,l].filter(d=>!!d).map(d=>ce(d,"float32"));return Qe(p,i)})}function lre(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Ap(e){return 1/(1+Math.exp(-e))}function ure(e){return Math.log(e/(1-e))}var xu=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var cre=.5,pre=.43,dre=.45,ta=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new gn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof bt?t.box.floor():new ut(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/dre),l=Zi(t),c=Math.floor(Math.max(0,l.x-cre*o)),u=Math.floor(Math.max(0,l.y-pre*o));return new xu(c,u,Math.min(o,this.imageWidth+c),Math.min(o,this.imageHeight+u))}alignMinBbox(t){let n=ow(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var H2=class extends ta{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Zi([t[3],t[4]])]}};var vu=class extends ta{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Zi)}};var Fp=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Yi(this.distance)})`:""}`}};var $p=class extends ut{static assertIsValidLabeledBox(t,n){if(ut.assertIsValidBox(t,n),!Oa(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var _r=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new _r(t.label,n)}};var j2=class extends $p{static assertIsValidPredictedBox(t,n){if($p.assertIsValidLabeledBox(t,n),!yu(t.score)||!yu(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function or(e){return e.detection instanceof bt}function Ji(e,t){return{...e,...{detection:t}}}function cw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function rf(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function pw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=rf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function dw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var hw=aE(K2()),Jt;function fre(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function mw(e){Jt=e}function fw(){return dw()?mw(cw()):hw.isNodejs()?mw(pw()):null}function gre(e){if(Jt||fw(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Jt.Canvas,Image:n=Jt.Image}=e;Jt.Canvas=t,Jt.Image=n,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new n),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}var st={getEnv:fre,setEnv:mw,initialize:fw,createBrowserEnv:cw,createFileSystem:rf,createNodejsEnv:pw,monkeyPatch:gre,isBrowser:dw,isNodejs:hw.isNodejs};fw();function Qi(e){return!st.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Cn(e){let{Canvas:t,CanvasRenderingContext2D:n}=st.getEnv();if(e instanceof n)return e;let a=Qi(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var lr;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(lr||(lr={}));var Dp=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||lr.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},hs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof hs?t.text:t,this.anchor=n,this.options=new Dp(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var gw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:lr.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Dp({...i,...s})}},sf=class{constructor(t,n={}){this.box=new ut(t),this.options=new gw(n)}draw(t){let n=Cn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:c}=this.options;c&&new hs([c],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function yre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof bt?a.score:or(a)?a.detection.score:void 0,s=a instanceof bt?a.box:or(a)?a.detection.box:new ut(a),i=r?`${Yi(r)}`:void 0;new sf(s,{label:i}).draw(e)})}function Rp(e){let{Image:t,Video:n}=st.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function yw(e){return new Promise((t,n)=>{if(e instanceof st.getEnv().Canvas||Rp(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function bw(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=st.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function eo(e){let{Image:t,Video:n}=st.getEnv();return e instanceof t?new gn(e.naturalWidth,e.naturalHeight):e instanceof n?new gn(e.videoWidth,e.videoHeight):new gn(e.width,e.height)}function wu({width:e,height:t}){let{createCanvasElement:n}=st.getEnv(),a=n();return a.width=e,a.height=t,a}function Mp(e,t){let{ImageData:n}=st.getEnv();if(!(e instanceof n)&&!Rp(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||eo(e),s=wu({width:a,height:r});return e instanceof n?Cn(s).putImageData(e,0,0):Cn(s).drawImage(e,0,0,a,r),s}async function xw(e,t){let n=t||st.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ea(e)?1:0),i=D(()=>e.as3D(a,r,s).toInt());return await Ni.toPixels(i,n),i.dispose(),n}function of(e){let{Image:t,Canvas:n,Video:a}=st.getEnv();return e instanceof t||e instanceof n||e instanceof a}function vw(e,t,n=!1){let{Image:a,Canvas:r}=st.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let s=eo(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,c=wu({width:t,height:t}),u=e instanceof r?e:Mp(e),p=Math.abs(o-l)/2,d=n&&o{if(Cr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ea(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof st.getEnv().Canvas?a:Mp(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ir(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return sw({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,D(()=>{let a=ir(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ae){let o=ea(i)?i:i.expandDims();return o=uw(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Za.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof st.getEnv().Canvas)return Ni.fromPixels(vw(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>ce(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function gt(e){if(e instanceof Er)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Qi);return a.forEach((r,s)=>{if(!of(r)&&!Cr(r)&&!ea(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ea(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>of(r)&&yw(r))),new Er(a,Array.isArray(e))}async function ku(e,t){let{Canvas:n}=st.getEnv(),a=e;if(!(e instanceof n)){let i=await gt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await xw(o)}let r=Cn(a);return t.map(i=>i instanceof bt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:c})=>{let u=wu({width:l,height:c});return Cn(u).putImageData(r.getImageData(i,o,l,c),0,0),u})}async function Iu(e,t){if(!Cr(e)&&!ea(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ea(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return D(()=>{let[n,a,r]=e.shape.slice(ea(e)?1:0);return t.map(o=>o instanceof bt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:c,height:u})=>Vl(e.as3D(n,a,r),[l,o,0],[u,c,r]))})}async function to(e,t){let{fetch:n}=st.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function bre(e){let t=await to(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return bw(n)}async function ww(e){return(await to(e)).json()}async function xre(e){return new Float32Array(await(await to(e)).arrayBuffer())}function lf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function kw(e,t){let{manifestUri:n,modelBaseUri:a}=lf(e,t),r=await ww(n);return Ht.loadWeights(r,a)}function vre(e,t,n=!1){let{width:a,height:r}=n?eo(t):t;return e.width=a,e.height=r,{width:a,height:r}}var an=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof Ur)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof Ur))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=qn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await kw(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=st.getEnv(),{manifestUri:a,modelBaseUri:r}=lf(t,this.getDefaultModelName()),s=c=>Promise.all(c.map(u=>n(u).then(p=>p.buffer))),i=Ht.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Ae))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function _n(e,t,n){return D(()=>{let a=Fi(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Z(a,t.bias),a})}function uf(e,t,n=!1){return D(()=>{let a=Ye(n?Z(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):_n(e,t.conv0,[2,2])),r=_n(a,t.conv1,[1,1]),s=Ye(Z(a,r)),i=_n(s,t.conv2,[1,1]);return Ye(Z(a,Z(r,i)))})}function Pp(e,t,n=!1,a=!0){return D(()=>{let r=Ye(n?Z(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):_n(e,t.conv0,a?[2,2]:[1,1])),s=_n(r,t.conv1,[1,1]),i=Ye(Z(r,s)),o=_n(i,t.conv2,[1,1]),l=Ye(Z(r,Z(s,o))),c=_n(l,t.conv3,[1,1]);return Ye(Z(r,Z(s,Z(o,c))))})}function no(e,t,n="same",a=!1){return D(()=>{let r=Z(At(e,t.filters,[1,1],n),t.bias);return a?Ye(r):r})}function yn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Nu(e,t){return(n,a,r,s)=>{let i=Ca(e(n*a*r*r),[r,r,n,a]),o=tt(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function cf(e,t){return(n,a,r)=>{let s=Sa(e(n*a),[n,a]),i=tt(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var pf=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Tu(e,t){return(n,a,r)=>{let s=Ca(e(3*3*n),[3,3,n,1]),i=Ca(e(n*a),[1,1,n,a]),o=tt(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new pf(s,i,o)}}function Su(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new pf(n,a,r)}}function Un(e,t){return(n,a,r)=>{let s=e[n];if(!Xi(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function bn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function df(e,t){let n=Nu(e,t),a=Tu(e,t);function r(i,o,l,c=!1){let u=c?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:u,conv1:p,conv2:d}}function s(i,o,l,c=!1){let{conv0:u,conv1:p,conv2:d}=r(i,o,l,c),h=a(o,o,`${l}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function X2(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),{extractDenseBlock4Params:r}=df(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function hf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function mf(e,t){let n=Un(e,t),a=hf(n),r=Su(n);function s(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:c,conv1:u,conv2:p}}function i(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:c,conv1:u,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function Y2(e){let t=[],{extractDenseBlock4Params:n}=mf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return yn(e,t),{params:a,paramMappings:t}}var Op=class extends an{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(de(255)),i=Pp(s,n.dense0,!0);return i=Pp(i,n.dense1),i=Pp(i,n.dense2),i=Pp(i,n.dense3),i=Xn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Y2(t)}extractParams(t){return X2(t)}};function Lp(e,t){return D(()=>Z(ze(e,t.weights),t.bias))}function Z2(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=bn(e),o=cf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function J2(e){let t=[],n=Un(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return yn(e,t),{params:r,paramMappings:t}}function ff(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var zp=class extends an{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof Er?this.faceFeatureExtractor.forwardInput(t):t;return Lp(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return Z2(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=ff(t);return this.faceFeatureExtractor.loadFromWeightMap(n),J2(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var Iw=["neutral","happy","sad","angry","fearful","disgusted","surprised"],ms=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Iw.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Iw.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var gf=class extends zp{constructor(t=new Op){super("FaceExpressionNet",t)}forwardInput(t){return D(()=>Ta(this.runNet(t)))}async forward(t){return this.forwardInput(await gt(t))}async predictExpressions(t){let n=await gt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new ms(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Nw(e){return e.expressions instanceof ms}function yf(e,t){return{...e,...{expressions:t}}}function wre(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof ms?s:Nw(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),c=or(s)?s.detection.box.bottomLeft:a||new De(0,0);new hs(l.map(p=>`${p.expression} (${Yi(p.probability)})`),c).draw(e)})}function ao(e){return or(e)&&e.landmarks instanceof ta&&e.unshiftedLandmarks instanceof ta&&e.alignedRect instanceof bt}function Cu(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new bt(e.detection.score,r.rescale(s.reverse()),s);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i}}}var Tw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},Sw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Tw(n)}draw(t){let n=Cn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof vu&&(n.strokeStyle=i,n.lineWidth=s,Sr(n,this.faceLandmarks.getJawOutline()),Sr(n,this.faceLandmarks.getLeftEyeBrow()),Sr(n,this.faceLandmarks.getRightEyeBrow()),Sr(n,this.faceLandmarks.getNose()),Sr(n,this.faceLandmarks.getLeftEye(),!0),Sr(n,this.faceLandmarks.getRightEye(),!0),Sr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let c=u=>{n.beginPath(),n.arc(u.x,u.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(c)}}};function kre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ta?a:ao(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Sw(r).draw(e)})}var Q2="0.12.6";function Ire(e,t){let n=Nu(e,t),a=Tu(e,t);function r(i,o,l){let c=a(i,o,`${l}/separable_conv0`),u=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:u,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),c=a(i,i,`${o}/separable_conv1`),u=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function eC(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=bn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Ire(a,n),c=s(3,32,3,"entry_flow/conv_in"),u=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:c,reduction_block_0:u,reduction_block_1:p},h={};ir(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function Nre(e,t){let n=Un(e,t),a=hf(n),r=Su(n);function s(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:u}}function i(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function tC(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Nre(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),c=s("entry_flow/reduction_block_1"),u={conv_in:o,reduction_block_0:l,reduction_block_1:c},p={};ir(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return yn(e,n),{params:{entry_flow:u,middle_flow:p,exit_flow:m},paramMappings:n}}function nC(e,t,n){return Z(At(e,t.filters,n,"same"),t.bias)}function _w(e,t,n=!0){let a=n?Ye(e):e;return a=_n(a,t.separable_conv0,[1,1]),a=_n(Ye(a),t.separable_conv1,[1,1]),a=Ft(a,[3,3],[2,2],"same"),a=Z(a,nC(e,t.expansion_conv,[2,2])),a}function Tre(e,t){let n=_n(Ye(e),t.separable_conv0,[1,1]);return n=_n(Ye(n),t.separable_conv1,[1,1]),n=_n(Ye(n),t.separable_conv2,[1,1]),n=Z(n,e),n}var Ew=class extends an{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(de(256)),i=Ye(nC(s,n.entry_flow.conv_in,[2,2]));return i=_w(i,n.entry_flow.reduction_block_0,!1),i=_w(i,n.entry_flow.reduction_block_1),ir(this._numMainBlocks,0,1).forEach(o=>{i=Tre(i,n.middle_flow[`main_block_${o}`])}),i=_w(i,n.exit_flow.reduction_block),i=Ye(_n(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return tC(t,this._numMainBlocks)}extractParams(t){return eC(t,this._numMainBlocks)}};function aC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),r=cf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function rC(e){let t=[],n=Un(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return yn(e,t),{params:r,paramMappings:t}}var Ar;(function(e){e.FEMALE="female",e.MALE="male"})(Ar||(Ar={}));var bf=class extends an{constructor(t=new Ew(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof Er?this.faceFeatureExtractor.forwardInput(t):t,r=Xn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Lp(r,n.fc.age).as1D(),i=Lp(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return D(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Ta(a)}})}async forward(t){return this.forwardInput(await gt(t))}async predictAgeAndGender(t){let n=await gt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,c)=>({ageTensor:l,genderTensor:s[c]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:c})=>{let u=(await l.data())[0],p=(await c.data())[0],d=p>.5,h=d?Ar.MALE:Ar.FEMALE,m=d?p:1-p;return l.dispose(),c.dispose(),{age:u,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return aC(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=ff(t);return this.faceFeatureExtractor.loadFromWeightMap(n),rC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var Bp=class extends zp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return D(()=>{let i=(p,d)=>$t([wn([68],p,"float32"),wn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),c(d))))).div($t(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return D(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await gt(t))}async detectLandmarks(t){let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((u,p)=>nf(p)),c=o.filter((u,p)=>!nf(p));return new vu(Array(68).fill(0).map((u,p)=>new De(l[p],c[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var _u=class extends Bp{constructor(t=new Op){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function sC(e){let t=[],{extractDenseBlock3Params:n}=mf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return yn(e,t),{params:a,paramMappings:t}}function iC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),{extractDenseBlock3Params:r}=df(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var Aw=class extends an{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(de(255)),i=uf(s,n.dense0,!0);return i=uf(i,n.dense1),i=uf(i,n.dense2),i=Xn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return sC(t)}extractParams(t){return iC(t)}};var xf=class extends Bp{constructor(t=new Aw){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var oC=class extends _u{};function lC(e,t){return Z(L(e,t.weights),t.biases)}function Fw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Z(o,i),o=lC(o,t.scale),a?Ye(o):o}function uC(e,t){return Fw(e,t,[1,1],!0)}function $w(e,t){return Fw(e,t,[1,1],!1)}function vf(e,t){return Fw(e,t,[2,2],!0,"valid")}function Sre(e,t){function n(o,l,c){let u=e(o),p=u.length/(l*c*c);if(rw(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${u.length}, numFilters: ${l}, filterSize: ${c}`);return D(()=>Ue(Ca(u,[l,p,c,c]),[2,3,1,0]))}function a(o,l,c,u){let p=n(o,l,c),d=tt(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:p,bias:d}}function r(o,l){let c=tt(e(o)),u=tt(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:u}}function s(o,l,c,u){let p=a(o,l,c,`${u}/conv`),d=r(l,`${u}/scale`);return{conv:p,scale:d}}function i(o,l,c,u,p=!1){let d=s((p?.5:1)*o,l,c,`${u}/conv1`),h=s(o,l,c,`${u}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function cC(e){let{extractWeights:t,getRemainingWeights:n}=bn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Sre(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),c=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),v=s(589824,256,3,"conv256_2"),x=s(589824,256,3,"conv256_down_out"),N=D(()=>Ue(Sa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:c,conv64_down:u,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:v,conv256_down_out:x,fc:N},paramMappings:a}}function Cre(e,t){let n=Un(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),c=a(i);return{conv:{filters:o,bias:l},scale:c}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function pC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Cre(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),c=a("conv64_1"),u=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:v}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!aw(v))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${v}`);let x={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:c,conv64_2:u,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:v};return yn(e,t),{params:x,paramMappings:t}}function za(e,t){let n=uC(e,t.conv1);return n=$w(n,t.conv2),n=Z(n,e),n=Ye(n),n}function Wp(e,t){let n=vf(e,t.conv1);n=$w(n,t.conv2);let a=Xn(e,2,2,"valid"),r=vt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=vt(o);n=Qe([n,l],1);let c=[...n.shape];c[2]=1;let u=vt(c);n=Qe([n,u],2)}return a=s?Qe([a,r],3):a,n=Z(a,n),n=Ye(n),n}var Eu=class extends an{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(150,!0),"float32"),s=La(a,[122.782,117.001,104.298]).div(de(256)),i=vf(s,n.conv32_down);i=Ft(i,3,2,"valid"),i=za(i,n.conv32_1),i=za(i,n.conv32_2),i=za(i,n.conv32_3),i=Wp(i,n.conv64_down),i=za(i,n.conv64_1),i=za(i,n.conv64_2),i=za(i,n.conv64_3),i=Wp(i,n.conv128_down),i=za(i,n.conv128_1),i=za(i,n.conv128_2),i=Wp(i,n.conv256_down),i=za(i,n.conv256_1),i=za(i,n.conv256_2),i=Wp(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await gt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return pC(t)}extractParams(t){return cC(t)}};function _re(e){let t=new Eu;return t.extractWeights(e),t}function wf(e,t){return{...e,...{descriptor:t}}}function Ere(e){return typeof e.age=="number"}function kf(e,t){return{...e,...{age:t}}}function Are(e){return(e.gender===Ar.MALE||e.gender===Ar.FEMALE)&&yu(e.genderProbability)}function If(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Fre(e,t){function n(l,c){let u=Ca(e(3*3*l),[3,3,l,1]),p=tt(e(l)),d=tt(e(l)),h=tt(e(l)),m=tt(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:u,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,c,u,p,d){let h=Ca(e(l*c*u*u),[u,u,l,c]),m=tt(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,c,u,p){let{filters:d,bias:h}=a(l,c,u,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,c,u){let p=n(l,`${u}/depthwise_conv`),d=r(l,c,1,`${u}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),c=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),v=s(512,512,"mobilenetv1/conv_11"),x=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:v,conv_12:x,conv_13:N}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),c=r(256,512,3,"prediction_layer/conv_1"),u=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),v=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),x=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),F=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),P=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),B=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:v},box_predictor_2:{box_encoding_predictor:x,class_predictor:N},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:F,class_predictor:$},box_predictor_5:{box_encoding_predictor:P,class_predictor:B}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function dC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=bn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Fre(n,t),i=r(),o=s(),c={extra_dim:ih(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:c},paramMappings:t}}function $re(e,t){let n=Un(e,t);function a(c,u,p){let d=n(`${c}/Conv2d_${u}_pointwise/weights`,4,`${p}/filters`),h=n(`${c}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(c){let u=`mobilenetv1/conv_${c}`,p=`MobilenetV1/Conv2d_${c}_depthwise`,d=`${u}/depthwise_conv`,h=`${u}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",c,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(c,u){let p=n(`${c}/weights`,4,`${u}/filters`),d=n(`${c}/biases`,1,`${u}/bias`);return{filters:p,bias:d}}function o(c){let u=i(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:u,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function hC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=$re(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Cr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return yn(e,t),{params:s,paramMappings:t}}function xa(e,t,n){return D(()=>{let a=At(e,t.filters,n,"same");return a=Z(a,t.batch_norm_offset),qt(a,0,6)})}var Dre=.0010000000474974513;function Rre(e,t,n){return D(()=>{let a=Yr(e,t.filters,n,"same");return a=gr(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Dre),qt(a,0,6)})}function Mre(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function mC(e,t){return D(()=>{let n,a=xa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=Mre(o);a=Rre(a,s.depthwise_conv,l),a=xa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function Pre(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),c=Math.min(a[n][1],a[n][3]),u=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(u-l)*(p-c);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,c),g=Math.min(i,u),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function fC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((u,p)=>({score:u,boxIndex:p})).filter(u=>u.score>r).sort((u,p)=>p.score-u.score),l=u=>u<=a?1:0,c=[];return o.forEach(u=>{if(c.length>=i)return;let p=u.score;for(let d=c.length-1;d>=0;--d){let h=Pre(e,u.boxIndex,c[d]);if(h!==0&&(u.score*=l(h),u.score<=r))break}p===u.score&&c.push(u.boxIndex)}),c}function Ore(e){let t=dt(Ue(e,[1,0])),n=[fe(t[2],t[0]),fe(t[3],t[1])],a=[Z(t[0],ve(n[0],de(2))),Z(t[1],ve(n[1],de(2)))];return{sizes:n,centers:a}}function Lre(e,t){let{sizes:n,centers:a}=Ore(e),r=dt(Ue(t,[1,0])),s=ve(L(pn(ve(r[2],de(5))),n[0]),de(2)),i=Z(L(ve(r[0],de(10)),n[0]),a[0]),o=ve(L(pn(ve(r[3],de(5))),n[1]),de(2)),l=Z(L(ve(r[1],de(10)),n[1]),a[1]);return Ue($t([fe(i,s),fe(l,o),Z(i,s),Z(l,o)]),[1,0])}function gC(e,t,n){return D(()=>{let a=e.shape[0],r=Lre(H(qa(n.extra_dim,[a,1,1]),[-1,4]),H(e,[-1,4]));r=H(r,[a,r.shape[0]/a,4]);let s=ca(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=H(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function ro(e,t){return D(()=>{let n=e.shape[0],a=H(no(e,t.box_encoding_predictor),[n,-1,1,4]),r=H(no(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function yC(e,t,n){return D(()=>{let a=xa(e,n.conv_0,[1,1]),r=xa(a,n.conv_1,[2,2]),s=xa(r,n.conv_2,[1,1]),i=xa(s,n.conv_3,[2,2]),o=xa(i,n.conv_4,[1,1]),l=xa(o,n.conv_5,[2,2]),c=xa(l,n.conv_6,[1,1]),u=xa(c,n.conv_7,[2,2]),p=ro(t,n.box_predictor_0),d=ro(e,n.box_predictor_1),h=ro(r,n.box_predictor_2),m=ro(i,n.box_predictor_3),f=ro(l,n.box_predictor_4),g=ro(u,n.box_predictor_5),y=Qe([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Qe([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var va=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var so=class extends an{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(512,!1),"float32"),r=fe(L(a,de(.007843137718737125)),de(1)),s=mC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=yC(s.out,s.conv11,n.prediction_layer);return gC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await gt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new va(n),s=await gt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],c=o[0];for(let v=1;v{let[x,N]=[Math.max(0,y[v][0]),Math.min(1,y[v][2])].map(F=>F*g),[T,C]=[Math.max(0,y[v][1]),Math.min(1,y[v][3])].map(F=>F*f);return new bt(u[v],new xu(T,x,C-T,N-x),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),c.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return hC(t)}extractParams(t){return dC(t)}};function bC(e){let t=new so;return t.extractWeights(e),t}function zre(e){return bC(e)}var xC=class extends so{};var vC=.4,wC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],kC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],IC=[117.001,114.697,97.404],NC="tiny_yolov2_model",TC="tiny_yolov2_separable_conv_model";var Nf=e=>typeof e=="number";function Dw(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Nf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Nf(t.x)&&Nf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Nf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Au(e){return D(()=>{let t=L(e,de(.10000000149011612));return Z(Ye(fe(e,t)),t)})}function Fr(e,t){return D(()=>{let n=Zn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=fe(n,t.bn.sub),n=L(n,t.bn.truediv),n=Z(n,t.conv.bias),Au(n)})}function $r(e,t){return D(()=>{let n=Zn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Fi(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Z(n,t.bias),Au(n)})}function Bre(e,t){let n=Nu(e,t);function a(i,o){let l=tt(e(i)),c=tt(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:c}}function r(i,o,l){let c=n(i,o,3,`${l}/conv`),u=a(o,`${l}/bn`);return{conv:c,bn:u}}let s=Tu(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function SC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=bn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=Bre(r,i),u;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,v]=a,x=t.isFirstLayerConv2d?o(p,d,3,"conv0"):c(p,d,"conv0"),N=c(d,h,"conv1"),T=c(h,m,"conv2"),C=c(m,f,"conv3"),F=c(f,g,"conv4"),$=c(g,y,"conv5"),P=b?c(y,b,"conv6"):void 0,B=v?c(b,v,"conv7"):void 0,W=o(v||b||y,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:F,conv5:$,conv6:P,conv7:B,conv8:W}}else{let[p,d,h,m,f,g,y,b,v]=a,x=l(p,d,"conv0"),N=l(d,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),F=l(f,g,"conv4"),$=l(g,y,"conv5"),P=l(y,b,"conv6"),B=l(b,v,"conv7"),W=o(v,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:F,conv5:$,conv6:P,conv7:B,conv8:W}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function Wre(e,t){let n=Un(e,t);function a(o){let l=n(`${o}/sub`,1),c=n(`${o}/truediv`,1);return{sub:l,truediv:c}}function r(o){let l=n(`${o}/filters`,4),c=n(`${o}/bias`,1);return{filters:l,bias:c}}function s(o){let l=r(`${o}/conv`),c=a(`${o}/bn`);return{conv:l,bn:c}}let i=Su(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function CC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Wre(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return yn(e,n),{params:i,paramMappings:n}}var ur=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var Rw=class extends an{constructor(t){super("TinyYolov2");Dw(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=Fr(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=Fr(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=Fr(a,n.conv6),a=Fr(a,n.conv7),no(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Au(no(t,n.conv0,"valid",!1)):$r(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=n.conv6?$r(a,n.conv6):a,a=n.conv7?$r(a,n.conv7):a,no(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return D(()=>{let r=ce(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?La(r,this.config.meanRgb):r,r=r.div(de(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await gt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new ur(n),s=await gt(t),i=await this.forwardInput(s,a),o=D(()=>dt(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},c=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let u=c.map(g=>g.box),p=c.map(g=>g.score),d=c.map(g=>g.classScore),h=c.map(g=>this.config.classes[g.label]);return lw(u.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new ds(p[g],d[g],h[g],u[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return CC(t,this.config)}extractParams(t){let n=this.config.filterSizes||Rw.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return SC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,c=t.shape[1],u=this.config.anchors.length,[p,d,h]=D(()=>{let y=t.reshape([c,c,u,this.boxEncodingSize]),b=y.slice([0,0,0,0],[c,c,u,4]),v=y.slice([0,0,0,4],[c,c,u,1]),x=this.withClassScores?Ta(y.slice([0,0,0,5],[c,c,u,this.config.classes.length]),3):de(0);return[b,v,x]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let N=(b+Ap(g[y][b][v][0]))/c*o,T=(y+Ap(g[y][b][v][1]))/c*l,C=Math.exp(g[y][b][v][2])*this.config.anchors[v].x/c*o,F=Math.exp(g[y][b][v][3])*this.config.anchors[v].y/c*l,$=N-C/2,P=T-F/2,B={row:y,col:b,anchor:v},{classScore:W,label:G}=this.withClassScores?await this.extractPredictedClass(h,B):{classScore:1,label:0};m.push({box:new bu($,P,$+C,P+F),score:x,classScore:x*W,label:G,...B})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Fu=Rw;Fu.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var $u=class extends Fu{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:vC,classes:["face"],...t?{anchors:kC,meanRgb:IC}:{anchors:wC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new bt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?TC:NC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Vre(e,t=!0){let n=new $u(t);return n.extractWeights(e),n}var Tf=class extends ur{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var wa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function io(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ao(l)?r(l):l.detection),i=a||(t instanceof Ae?await Iu(t,s):await ku(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ae&&l.dispose()),o}async function Du(e,t,n,a,r){return io([e],t,async s=>n(s[0]),a,r)}var _C=.4,EC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],AC=[117.001,114.697,97.404];var Ru=class extends Fu{constructor(){let t={withSeparableConvs:!0,iouThreshold:_C,classes:["face"],anchors:EC,meanRgb:AC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new bt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var nt={ssdMobilenetv1:new so,tinyFaceDetector:new Ru,tinyYolov2:new $u,faceLandmark68Net:new _u,faceLandmark68TinyNet:new xf,faceRecognitionNet:new Eu,faceExpressionNet:new gf,ageGenderNet:new bf},FC=(e,t)=>nt.ssdMobilenetv1.locateFaces(e,t),Ure=(e,t)=>nt.tinyFaceDetector.locateFaces(e,t),Gre=(e,t)=>nt.tinyYolov2.locateFaces(e,t),$C=e=>nt.faceLandmark68Net.detectLandmarks(e),Hre=e=>nt.faceLandmark68TinyNet.detectLandmarks(e),jre=e=>nt.faceRecognitionNet.computeFaceDescriptor(e),qre=e=>nt.faceExpressionNet.predictExpressions(e),Kre=e=>nt.ageGenderNet.predictAgeAndGender(e),DC=e=>nt.ssdMobilenetv1.load(e),Xre=e=>nt.tinyFaceDetector.load(e),Yre=e=>nt.tinyYolov2.load(e),Zre=e=>nt.faceLandmark68Net.load(e),Jre=e=>nt.faceLandmark68TinyNet.load(e),Qre=e=>nt.faceRecognitionNet.load(e),ese=e=>nt.faceExpressionNet.load(e),tse=e=>nt.ageGenderNet.load(e),nse=DC,ase=FC,rse=$C;var Mw=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Ou=class extends Mw{async run(){let t=await this.parentTask,n=await io(t,this.input,async a=>Promise.all(a.map(r=>nt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>yf(a,n[r]))}withAgeAndGender(){return new Mu(this,this.input)}},Lu=class extends Mw{async run(){let t=await this.parentTask;if(!t)return;let n=await Du(t,this.input,a=>nt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return yf(t,n)}withAgeAndGender(){return new Pu(this,this.input)}},uo=class extends Ou{withAgeAndGender(){return new oo(this,this.input)}withFaceDescriptors(){return new fs(this,this.input)}},co=class extends Lu{withAgeAndGender(){return new lo(this,this.input)}withFaceDescriptor(){return new gs(this,this.input)}};var Pw=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Mu=class extends Pw{async run(){let t=await this.parentTask,n=await io(t,this.input,async a=>Promise.all(a.map(r=>nt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return kf(If(a,i,o),s)})}withFaceExpressions(){return new Ou(this,this.input)}},Pu=class extends Pw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await Du(t,this.input,s=>nt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return kf(If(t,a,r),n)}withFaceExpressions(){return new Lu(this,this.input)}},oo=class extends Mu{withFaceExpressions(){return new uo(this,this.input)}withFaceDescriptors(){return new fs(this,this.input)}},lo=class extends Pu{withFaceExpressions(){return new co(this,this.input)}withFaceDescriptor(){return new gs(this,this.input)}};var Sf=class extends wa{constructor(t,n){super();this.parentTask=t;this.input=n}},fs=class extends Sf{async run(){let t=await this.parentTask;return(await io(t,this.input,a=>Promise.all(a.map(r=>nt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>wf(t[r],a))}withFaceExpressions(){return new uo(this,this.input)}withAgeAndGender(){return new oo(this,this.input)}},gs=class extends Sf{async run(){let t=await this.parentTask;if(!t)return;let n=await Du(t,this.input,a=>nt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return wf(t,n)}withFaceExpressions(){return new co(this,this.input)}withAgeAndGender(){return new lo(this,this.input)}};var Cf=class extends wa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?nt.faceLandmark68TinyNet:nt.faceLandmark68Net}},_f=class extends Cf{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Ae?await Iu(this.input,n):await ku(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Ae&&s.dispose()),t.map((s,i)=>Cu(s,r[i]))}withFaceExpressions(){return new uo(this,this.input)}withAgeAndGender(){return new oo(this,this.input)}withFaceDescriptors(){return new fs(this,this.input)}},Ef=class extends Cf{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ae?await Iu(this.input,[n]):await ku(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ae&&s.dispose()),Cu(t,r)}withFaceExpressions(){return new co(this,this.input)}withAgeAndGender(){return new lo(this,this.input)}withFaceDescriptor(){return new gs(this,this.input)}};var Af=class extends wa{constructor(t,n=new va){super();this.input=t;this.options=n}},Vp=class extends Af{async run(){let{input:t,options:n}=this,a=n instanceof Tf?r=>nt.tinyFaceDetector.locateFaces(r,n):n instanceof va?r=>nt.ssdMobilenetv1.locateFaces(r,n):n instanceof ur?r=>nt.tinyYolov2.locateFaces(r,n):null;if(!a)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return a(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>Ji({},a)))})}withFaceLandmarks(t=!1){return new _f(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ou(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Mu(this.runAndExtendWithFaceDetections(),this.input)}},Ff=class extends Af{async run(){let t=await new Vp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Ji({},n):void 0)})}withFaceLandmarks(t=!1){return new Ef(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Lu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pu(this.runAndExtendWithFaceDetection(),this.input)}};function sse(e,t=new va){return new Ff(e,t)}function $f(e,t=new va){return new Vp(e,t)}async function RC(e,t){return $f(e,new va(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function ise(e,t={}){return $f(e,new ur(t)).withFaceLandmarks().withFaceDescriptors()}var ose=RC;function Ow(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var Df=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof _r)return i;if(i instanceof Float32Array)return new _r(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new _r(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>Ow(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Fp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>_r.fromJSON(a));return new Df(n,t.distanceThreshold)}};function lse(e){let t=new Ru;return t.extractWeights(e),t}function MC(e,t){let{width:n,height:a}=new gn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>MC(r,{width:n,height:a}));if(ao(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return Cu(Ji(e,r),s)}return or(e)?Ji(e,e.detection.forSize(n,a)):e instanceof ta||e instanceof bt?e.forSize(n,a):e}var use=typeof process!="undefined",cse=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",pse={faceapi:Q2,node:use,browser:cse};export{bf as AgeGenderNet,bu as BoundingBox,ut as Box,wa as ComposableTask,fs as ComputeAllFaceDescriptorsTask,Sf as ComputeFaceDescriptorsTaskBase,gs as ComputeSingleFaceDescriptorTask,_f as DetectAllFaceLandmarksTask,Vp as DetectAllFacesTask,Cf as DetectFaceLandmarksTaskBase,Af as DetectFacesTaskBase,Ef as DetectSingleFaceLandmarksTask,Ff as DetectSingleFaceTask,gn as Dimensions,Iw as FACE_EXPRESSION_LABELS,bt as FaceDetection,xC as FaceDetectionNet,gf as FaceExpressionNet,ms as FaceExpressions,_u as FaceLandmark68Net,xf as FaceLandmark68TinyNet,oC as FaceLandmarkNet,ta as FaceLandmarks,H2 as FaceLandmarks5,vu as FaceLandmarks68,Fp as FaceMatch,Df as FaceMatcher,Eu as FaceRecognitionNet,Ar as Gender,$p as LabeledBox,_r as LabeledFaceDescriptors,Er as NetInput,an as NeuralNetwork,ds as ObjectDetection,De as Point,j2 as PredictedBox,xu as Rect,so as SsdMobilenetv1,va as SsdMobilenetv1Options,Ru as TinyFaceDetector,Tf as TinyFaceDetectorOptions,$u as TinyYolov2,ur as TinyYolov2Options,ose as allFaces,RC as allFacesSsdMobilenetv1,ise as allFacesTinyYolov2,yw as awaitMediaLoaded,bw as bufferToImage,jre as computeFaceDescriptor,wu as createCanvas,Mp as createCanvasFromMedia,zre as createFaceDetectionNet,_re as createFaceRecognitionNet,bC as createSsdMobilenetv1,lse as createTinyFaceDetector,Vre as createTinyYolov2,$f as detectAllFaces,$C as detectFaceLandmarks,Hre as detectFaceLandmarksTiny,rse as detectLandmarks,sse as detectSingleFace,Cw as draw,st as env,Ow as euclideanDistance,kf as extendWithAge,wf as extendWithFaceDescriptor,Ji as extendWithFaceDetection,yf as extendWithFaceExpressions,Cu as extendWithFaceLandmarks,If as extendWithGender,Iu as extractFaceTensors,ku as extractFaces,bre as fetchImage,ww as fetchJson,xre as fetchNetWeights,to as fetchOrThrow,Cn as getContext2dOrThrow,eo as getMediaDimensions,xw as imageTensorToCanvas,vw as imageToSquare,ure as inverseSigmoid,iw as iou,of as isMediaElement,Rp as isMediaLoaded,Ere as isWithAge,or as isWithFaceDetection,Nw as isWithFaceExpressions,ao as isWithFaceLandmarks,Are as isWithGender,tse as loadAgeGenderModel,nse as loadFaceDetectionModel,ese as loadFaceExpressionModel,Zre as loadFaceLandmarkModel,Jre as loadFaceLandmarkTinyModel,Qre as loadFaceRecognitionModel,DC as loadSsdMobilenetv1Model,Xre as loadTinyFaceDetectorModel,Yre as loadTinyYolov2Model,kw as loadWeightMap,ase as locateFaces,vre as matchDimensions,ow as minBbox,nt as nets,lw as nonMaxSuppression,La as normalize,uw as padToSquare,Kre as predictAgeAndGender,qre as recognizeFaceExpressions,MC as resizeResults,Qi as resolveInput,lre as shuffleArray,Ap as sigmoid,FC as ssdMobilenetv1,Ug as tf,Ure as tinyFaceDetector,Gre as tinyYolov2,gt as toNetInput,nw as utils,Dw as validateConfig,pse as version}; /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/face-api.esm.js.map b/dist/face-api.esm.js.map index fce088c..77996e5 100644 --- a/dist/face-api.esm.js.map +++ b/dist/face-api.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/env/isNodejs.ts", "../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts", "../src/index.ts"], - "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256480,STACKTOP=STACK_BASE,STACK_MAX=13600,DYNAMIC_BASE=5256480,DYNAMICTOP_PTR=12672;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13584;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13072;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Step\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}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;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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[\"dynCall_ii\"](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\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){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.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\");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()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n getContext2dOrThrow(faceImg)\n .putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks\n unshiftedLandmarks: TFaceLandmarks\n alignedRect: FaceDetection\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const {\n boxPredictions,\n classPredictions,\n } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n // eslint-disable-next-line no-nested-ternary\n const faceDetectionFunction = options instanceof TinyFaceDetectorOptions\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options)\n : (\n // eslint-disable-next-line no-nested-ternary\n options instanceof SsdMobilenetv1Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options)\n : (\n options instanceof TinyYolov2Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options)\n : null\n )\n );\n\n if (!faceDetectionFunction) {\n throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options');\n }\n\n return faceDetectionFunction(input);\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) {\n faceDetectionWithHighestScore = faceDetection;\n }\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n"], - "mappings": "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AAM,GAAiC,EACjC,CAAC,KAAA,GAAQ,EACT,EAAqB,GAAuB,GAClD,MAAO,CAAC,EAAG,IAAM,GAAU,EAAI,MCRtB,GAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,KACxC,GAAM,GAA2B,EAC3B,CAAC,KAAA,GAAQ,EACf,MAAO,CAAC,MAAO,IAAM,GAAM,EAAI,MCItB,GAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,KACrB,GAAM,CAAC,GAAc,EAKrB,MAAO,CAAC,EAHK,IACJ,GAAoB,EAAI,MAMrC,YAA+C,EAAM,GAInD,GAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GACvB,EAAa,GAAa,EAAS,GAAO,EAAG,UAC3C,EAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GClC9B,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAW,GACF,EAAC,EAAG,IAAM,GAAU,MC+FzB,GAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAA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ACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE5TjB,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,GACxB,GAAS,GAAgB,EAGrB,YAA0B,GAC9B,GAAI,CAAE,KAAgB,MACpB,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,OAAA,SAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,EAAG,QAAQ,EAAG,OACd,EAAG,QAAQ,EAAG,QACd,EAAG,QAAQ,EAAG,qBACd,EAAG,QAAQ,EAAG,iBACd,EAAG,OAAO,EAAG,cACb,EAAG,OAAO,EAAG,WACb,EAAG,SAAS,EAAG,MAER,GAAS,IAGlB,YAAsB,GACpB,GAAI,MAAO,kBAAoB,aAAe,IAA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GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGF,OAAW,KAAgB,KACzB,GAAe,GErUjB,GAAM,KAAU,QCyCH,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,KCjCE,GAAZ,AAAA,UAAY,GACV,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAQ,KASpB,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAiB,KCJ7B,GAAI,IAOJ,aAAe,GACb,GAAkB,EAAQ,KAAK,MAAM,GAAc,KAAiB,CAClE,SACA,QACA,SACA,SACA,QACA,SAC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", + "sources": ["../src/env/isNodejs.ts", "../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts", "../src/index.ts"], + "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":171,\"maximum\":171+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":153,\"maximum\":153+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"Ceil\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Step\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}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;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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[\"dynCall_ii\"](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\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){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.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\");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()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n getContext2dOrThrow(faceImg)\n .putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks\n unshiftedLandmarks: TFaceLandmarks\n alignedRect: FaceDetection\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const {\n boxPredictions,\n classPredictions,\n } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n // eslint-disable-next-line no-nested-ternary\n const faceDetectionFunction = options instanceof TinyFaceDetectorOptions\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options)\n : (\n // eslint-disable-next-line no-nested-ternary\n options instanceof SsdMobilenetv1Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options)\n : (\n options instanceof TinyYolov2Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options)\n : null\n )\n );\n\n if (!faceDetectionFunction) {\n throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options');\n }\n\n return faceDetectionFunction(input);\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) {\n faceDetectionWithHighestScore = faceDetection;\n }\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n"], + "mappings": "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AEzD,MAAA,GAAc,QAAQ,GAAK,EAAQ,8BAA8B,IAE1D,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,MACb,WAAY,IC2FR,GAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE5TjB,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,GACxB,GAAS,GAAgB,EAGrB,YAA0B,GAC9B,GAAI,CAAE,KAAgB,MACpB,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,OAAA,SAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBAC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B,IACtD,EAGF,GAAM,KAAyC,CACpD,WAAY,GACZ,YAAa,QACb,WAAY,KC4DR,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IAGF,OAAW,KAAgB,KACzB,GAAe,GErUjB,GAAM,KAAU,QCyCH,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,KCjCE,GAAZ,AAAA,UAAY,GACV,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAQ,KASpB,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,KAAA,GAAA,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", "names": [] } diff --git a/dist/face-api.esm.json b/dist/face-api.esm.json index e2d4202..fbfda08 100644 --- a/dist/face-api.esm.json +++ b/dist/face-api.esm.json @@ -1,7 +1,7 @@ { "inputs": { "dist/tfjs.esm.js": { - "bytes": 1053904, + "bytes": 1055784, "imports": [] }, "src/draw/drawContour.ts": { @@ -2591,7 +2591,7 @@ "imports": [], "exports": [], "inputs": {}, - "bytes": 1445459 + "bytes": 1447733 }, "dist/face-api.esm.js": { "imports": [], @@ -2722,7 +2722,7 @@ "bytesInOutput": 181 }, "dist/tfjs.esm.js": { - "bytesInOutput": 1045331 + "bytesInOutput": 1047212 }, "src/draw/index.ts": { "bytesInOutput": 280 @@ -3187,7 +3187,7 @@ "bytesInOutput": 446 } }, - "bytes": 1132745 + "bytes": 1134626 } } } diff --git a/dist/face-api.js b/dist/face-api.js index 2ff79fe..7f9f148 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -5,43 +5,43 @@ author: ' */ -var faceapi=(()=>{var wE=Object.create,Cd=Object.defineProperty,kE=Object.getPrototypeOf,IE=Object.prototype.hasOwnProperty,NE=Object.getOwnPropertyNames,TE=Object.getOwnPropertyDescriptor;var Jw=e=>Cd(e,"__esModule",{value:!0});var SE=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),cc=(e,t)=>{for(var n in t)Cd(e,n,{get:t[n],enumerable:!0})},CE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of NE(t))!IE.call(e,a)&&a!=="default"&&Cd(e,a,{get:()=>t[a],enumerable:!(n=TE(t,a))||n.enumerable});return e},_E=e=>e&&e.__esModule?e:CE(Jw(Cd(e!=null?wE(kE(e)):{},"default",{value:e,enumerable:!0})),e);var J2=SE((Lre,Z2)=>{Jw(Lre);cc(Lre,{isNodejs:()=>zre});function zre(){return typeof global=="object"&&!0&&typeof Z2!="undefined"&&typeof process!="undefined"&&!!process.version}});var ise={};cc(ise,{AgeGenderNet:()=>Gp,BoundingBox:()=>no,Box:()=>ot,ComposableTask:()=>aa,ComputeAllFaceDescriptorsTask:()=>Rr,ComputeFaceDescriptorsTaskBase:()=>Jp,ComputeSingleFaceDescriptorTask:()=>Mr,DetectAllFaceLandmarksTask:()=>ed,DetectAllFacesTask:()=>Gu,DetectFaceLandmarksTaskBase:()=>Qp,DetectFacesTaskBase:()=>nd,DetectSingleFaceLandmarksTask:()=>td,DetectSingleFaceTask:()=>ad,Dimensions:()=>ln,FACE_EXPRESSION_LABELS:()=>Wf,FaceDetection:()=>yt,FaceDetectionNet:()=>Dw,FaceExpressionNet:()=>Vp,FaceExpressions:()=>Fr,FaceLandmark68Net:()=>co,FaceLandmark68TinyNet:()=>jp,FaceLandmarkNet:()=>Ew,FaceLandmarks:()=>Un,FaceLandmarks5:()=>fw,FaceLandmarks68:()=>ro,FaceMatch:()=>Au,FaceMatcher:()=>sd,FaceRecognitionNet:()=>po,Gender:()=>pr,LabeledBox:()=>Fu,LabeledFaceDescriptors:()=>lr,NetInput:()=>cr,NeuralNetwork:()=>Qt,ObjectDetection:()=>Ar,Point:()=>De,PredictedBox:()=>gw,Rect:()=>ao,SsdMobilenetv1:()=>ks,SsdMobilenetv1Options:()=>na,TinyFaceDetector:()=>go,TinyFaceDetectorOptions:()=>Zp,TinyYolov2:()=>mo,TinyYolov2Options:()=>Ba,allFaces:()=>r_,allFacesSsdMobilenetv1:()=>Bw,allFacesTinyYolov2:()=>a_,awaitMediaLoaded:()=>Cf,bufferToImage:()=>_f,computeFaceDescriptor:()=>UC,createCanvas:()=>so,createCanvasFromMedia:()=>Du,createFaceDetectionNet:()=>CC,createFaceRecognitionNet:()=>bC,createSsdMobilenetv1:()=>$w,createTinyFaceDetector:()=>s_,createTinyYolov2:()=>PC,detectAllFaces:()=>rd,detectFaceLandmarks:()=>Pw,detectFaceLandmarksTiny:()=>VC,detectLandmarks:()=>t_,detectSingleFace:()=>n_,draw:()=>Uf,env:()=>rt,euclideanDistance:()=>qf,extendWithAge:()=>Xp,extendWithFaceDescriptor:()=>Kp,extendWithFaceDetection:()=>gs,extendWithFaceExpressions:()=>Up,extendWithFaceLandmarks:()=>uo,extendWithGender:()=>Yp,extractFaceTensors:()=>oo,extractFaces:()=>io,fetchImage:()=>Q2,fetchJson:()=>Ff,fetchNetWeights:()=>eC,fetchOrThrow:()=>vs,getContext2dOrThrow:()=>yn,getMediaDimensions:()=>xs,imageTensorToCanvas:()=>Ef,imageToSquare:()=>Af,inverseSigmoid:()=>Y2,iou:()=>wf,isMediaElement:()=>Op,isMediaLoaded:()=>$u,isWithAge:()=>xC,isWithFaceDetection:()=>La,isWithFaceExpressions:()=>Vf,isWithFaceLandmarks:()=>ws,isWithGender:()=>vC,loadAgeGenderModel:()=>JC,loadFaceDetectionModel:()=>QC,loadFaceExpressionModel:()=>ZC,loadFaceLandmarkModel:()=>KC,loadFaceLandmarkTinyModel:()=>XC,loadFaceRecognitionModel:()=>YC,loadSsdMobilenetv1Model:()=>Ow,loadTinyFaceDetectorModel:()=>jC,loadTinyYolov2Model:()=>qC,loadWeightMap:()=>Df,locateFaces:()=>e_,matchDimensions:()=>tC,minBbox:()=>kf,nets:()=>et,nonMaxSuppression:()=>If,normalize:()=>va,padToSquare:()=>Nf,predictAgeAndGender:()=>HC,recognizeFaceExpressions:()=>GC,resizeResults:()=>Ww,resolveInput:()=>ys,shuffleArray:()=>X2,sigmoid:()=>Eu,ssdMobilenetv1:()=>Mw,tf:()=>_d,tinyFaceDetector:()=>BC,tinyYolov2:()=>WC,toNetInput:()=>gt,utils:()=>bf,validateConfig:()=>jf,version:()=>i_});var _d={};cc(_d,{Abs:()=>Oo,Acos:()=>Lo,Acosh:()=>zo,AdadeltaOptimizer:()=>nm,AdagradOptimizer:()=>am,AdamOptimizer:()=>rm,AdamaxOptimizer:()=>sm,Add:()=>Vr,AddN:()=>$s,All:()=>Md,Any:()=>Pd,ArgMax:()=>Ds,ArgMin:()=>fc,Asin:()=>Bo,Asinh:()=>Wo,Atan:()=>Vo,Atan2:()=>Go,Atanh:()=>Uo,AvgPool:()=>Rs,AvgPool3D:()=>gc,AvgPool3DGrad:()=>Ld,AvgPoolGrad:()=>Od,BackendWasm:()=>q2,BatchMatMul:()=>Ms,BatchToSpaceND:()=>yc,Bincount:()=>zd,BroadcastTo:()=>h0,Callback:()=>qI,CallbackList:()=>Hk,Cast:()=>Ps,Ceil:()=>Ho,ClipByValue:()=>Ur,Complex:()=>Bd,ComplexAbs:()=>bc,Concat:()=>jo,Conv2D:()=>Os,Conv2DBackpropFilter:()=>Wd,Conv2DBackpropInput:()=>Ls,Conv3D:()=>xc,Conv3DBackpropFilterV2:()=>Vd,Conv3DBackpropInputV2:()=>Ud,Cos:()=>zs,Cosh:()=>qo,CropAndResize:()=>Ko,Cumsum:()=>Bs,CustomCallback:()=>qk,DataStorage:()=>Fd,DenseBincount:()=>Gd,DepthToSpace:()=>Xo,DepthwiseConv2dNative:()=>Ws,DepthwiseConv2dNativeBackpropFilter:()=>Hd,DepthwiseConv2dNativeBackpropInput:()=>jd,Diag:()=>qd,Dilation2D:()=>vc,Dilation2DBackpropFilter:()=>Xd,Dilation2DBackpropInput:()=>Kd,ENV:()=>iy,EarlyStopping:()=>XI,Elu:()=>Yo,EluGrad:()=>Yd,Environment:()=>p0,Equal:()=>Jo,Erf:()=>Zo,Exp:()=>Us,ExpandDims:()=>Qo,Expm1:()=>el,FFT:()=>Zd,Fill:()=>wc,FlipLeftRight:()=>tl,Floor:()=>Gs,FloorDiv:()=>Hs,FromPixels:()=>ph,FusedBatchNorm:()=>js,FusedConv2D:()=>Ii,FusedDepthwiseConv2D:()=>Ni,GatherNd:()=>al,GatherV2:()=>nl,GraphModel:()=>NN,Greater:()=>rl,GreaterEqual:()=>qs,History:()=>jk,IFFT:()=>Jd,Identity:()=>sl,Imag:()=>Qd,InputSpec:()=>Xt,IsFinite:()=>il,IsInf:()=>ol,IsNan:()=>ll,KernelBackend:()=>dc,LRN:()=>Nc,LRNGrad:()=>th,LayerVariable:()=>Bk,LayersModel:()=>Nr,LeakyRelu:()=>Ks,Less:()=>ul,LessEqual:()=>cl,LinSpace:()=>eh,Log:()=>Xs,Log1p:()=>pl,LogSoftmax:()=>m0,LogicalAnd:()=>dl,LogicalNot:()=>kc,LogicalOr:()=>Ic,Max:()=>Ys,MaxPool:()=>Js,MaxPool3D:()=>Tc,MaxPool3DGrad:()=>ah,MaxPoolGrad:()=>nh,MaxPoolWithArgmax:()=>rh,Maximum:()=>Zs,Mean:()=>Qs,Min:()=>ei,Minimum:()=>ti,MirrorPad:()=>Sc,Mod:()=>hl,MomentumOptimizer:()=>im,Multinomial:()=>sh,Multiply:()=>ni,Neg:()=>ml,NonMaxSuppressionV3:()=>gl,NonMaxSuppressionV4:()=>yl,NonMaxSuppressionV5:()=>bl,NotEqual:()=>fl,OP_SCOPE_SUFFIX:()=>T0,OneHot:()=>ai,OnesLike:()=>xl,Optimizer:()=>wr,Pack:()=>vl,PadV2:()=>ri,Pool:()=>bA,Pow:()=>si,Prelu:()=>ii,Prod:()=>wl,RMSPropOptimizer:()=>om,RNN:()=>ar,Range:()=>Cc,Rank:()=>my,Real:()=>ih,RealDiv:()=>Vs,Reciprocal:()=>kl,Reduction:()=>hn,Relu:()=>oi,Relu6:()=>ui,Reshape:()=>Il,ResizeBilinear:()=>li,ResizeBilinearGrad:()=>lh,ResizeNearestNeighbor:()=>_c,ResizeNearestNeighborGrad:()=>oh,Reverse:()=>ci,RotateWithOffset:()=>Ol,Round:()=>pi,Rsqrt:()=>di,SGDOptimizer:()=>tp,ScatterNd:()=>Nl,Select:()=>Tl,Selu:()=>Sl,Sequential:()=>lu,Sigmoid:()=>mi,Sign:()=>El,Sin:()=>hi,Sinh:()=>_l,Slice:()=>Cl,Softmax:()=>yi,Softplus:()=>Al,SpaceToBatchND:()=>Ec,SparseToDense:()=>uh,SplitV:()=>Fl,Sqrt:()=>fi,Square:()=>Ac,SquaredDifference:()=>bi,Step:()=>Hr,StridedSlice:()=>$l,Sub:()=>xi,Sum:()=>gi,SymbolicTensor:()=>Fa,Tan:()=>Dl,Tanh:()=>vi,Tensor:()=>Ae,TensorBuffer:()=>Ot,Tile:()=>Gr,TopK:()=>Rl,Transpose:()=>wi,Unique:()=>ch,Unpack:()=>Ml,UnsortedSegmentSum:()=>Fc,Variable:()=>jr,ZerosLike:()=>Pl,_FusedMatMul:()=>ki,abs:()=>Lt,acos:()=>zy,acosh:()=>By,add:()=>Z,addN:()=>o1,all:()=>Sh,any:()=>Wc,argMax:()=>Vc,argMin:()=>Wy,asin:()=>Vy,asinh:()=>Uy,atan:()=>Gy,atan2:()=>Hy,atanh:()=>jy,avgPool:()=>Yn,avgPool3d:()=>Xy,backend:()=>i1,backend_util:()=>_,basicLSTMCell:()=>q$,batchNorm:()=>br,batchNorm2d:()=>p1,batchNorm3d:()=>d1,batchNorm4d:()=>h1,batchToSpaceND:()=>Gc,bincount:()=>m1,booleanMaskAsync:()=>ZM,broadcastTo:()=>Hc,browser:()=>_i,buffer:()=>Le,callbacks:()=>z4,cast:()=>ce,ceil:()=>Yy,clipByValue:()=>qt,clone:()=>Yr,complex:()=>qr,concat:()=>Qe,concat1d:()=>f1,concat2d:()=>g1,concat3d:()=>y1,concat4d:()=>b1,constraints:()=>hk,conv1d:()=>_h,conv2d:()=>At,conv2dTranspose:()=>Eh,conv3d:()=>Jy,conv3dTranspose:()=>fD,copyRegisteredKernels:()=>wA,cos:()=>jc,cosh:()=>Ah,cosineWindow:()=>Nb,cumsum:()=>Fh,customGrad:()=>Xa,data:()=>SN,denseBincount:()=>v1,deprecationWarn:()=>Ly,depthToSpace:()=>Qy,depthwiseConv2d:()=>es,deregisterOp:()=>W4,device_util:()=>bh,diag:()=>ID,dilation2d:()=>eb,disableDeprecationWarnings:()=>s$,dispose:()=>Fe,disposeVariables:()=>i$,div:()=>ve,divNoNan:()=>tb,dot:()=>w1,dropout:()=>V1,elu:()=>ql,enableDebugMode:()=>r$,enableProdMode:()=>a$,enclosingPowerOfTwo:()=>U1,engine:()=>Jr,env:()=>ee,equal:()=>ts,erf:()=>nb,exp:()=>dn,expandDims:()=>Fn,expm1:()=>ab,eye:()=>rb,fft:()=>Qc,fill:()=>kn,findBackend:()=>h$,findBackendFactory:()=>m$,floor:()=>Kl,floorDiv:()=>Th,fused:()=>rs,gather:()=>Fi,gatherND:()=>W1,gather_util:()=>Fy,getBackend:()=>p$,getGradient:()=>cy,getKernel:()=>dh,getKernelsForBackend:()=>hh,grad:()=>JD,grads:()=>QD,greater:()=>da,greaterEqual:()=>ns,ifft:()=>eu,imag:()=>$h,image:()=>Ja,inTopKAsync:()=>lP,initializers:()=>vk,input:()=>Dk,io:()=>Ht,irfft:()=>qh,isFinite:()=>k1,isInf:()=>I1,isNaN:()=>N1,keep:()=>jt,kernel_impls:()=>Qa,layers:()=>$k,leakyRelu:()=>qc,less:()=>Dh,lessEqual:()=>$i,linalg:()=>tk,linspace:()=>T1,loadGraphModel:()=>WV,loadLayersModel:()=>s4,localResponseNormalization:()=>sb,log:()=>$n,log1p:()=>Rh,logSigmoid:()=>C1,logSoftmax:()=>Ph,logSumExp:()=>lb,logicalAnd:()=>ha,logicalNot:()=>Kc,logicalOr:()=>Oh,logicalXor:()=>F1,losses:()=>IO,matMul:()=>ze,math:()=>W0,max:()=>Zn,maxPool:()=>Ft,maxPool3d:()=>ub,maxPoolWithArgmax:()=>$1,maximum:()=>Ya,mean:()=>St,memory:()=>Ih,metrics:()=>GI,min:()=>Yl,minimum:()=>Zl,mirrorPad:()=>cb,mod:()=>pb,model:()=>a4,models:()=>HI,moments:()=>Lh,movingAverage:()=>eP,mul:()=>L,multiRNNCell:()=>_R,multinomial:()=>D1,neg:()=>Tt,nextFrame:()=>lm,norm:()=>Zh,notEqual:()=>Ri,oneHot:()=>Ul,ones:()=>Za,onesLike:()=>Dn,op:()=>P,outerProduct:()=>DR,pad:()=>Jn,pad1d:()=>PR,pad2d:()=>LR,pad3d:()=>BR,pad4d:()=>VR,pool:()=>R1,pow:()=>xr,prelu:()=>Yc,print:()=>M0,prod:()=>zh,profile:()=>o$,rand:()=>ZR,randomGamma:()=>tM,randomNormal:()=>M1,randomUniform:()=>Jl,range:()=>Bh,ready:()=>c$,real:()=>Zc,reciprocal:()=>mb,registerBackend:()=>Nh,registerCallbackConstructor:()=>i4,registerGradient:()=>f0,registerKernel:()=>Dc,registerOp:()=>B4,regularizers:()=>jI,relu:()=>Ye,relu6:()=>Wh,removeBackend:()=>d$,reshape:()=>j,reverse:()=>Rn,reverse1d:()=>cM,reverse2d:()=>dM,reverse3d:()=>mM,reverse4d:()=>gM,rfft:()=>ep,round:()=>fb,rsqrt:()=>Vh,scalar:()=>de,scatterND:()=>B1,scatter_util:()=>$y,selu:()=>Uh,separableConv2d:()=>Mi,sequential:()=>r4,serialization:()=>re,setBackend:()=>u$,setPlatform:()=>f$,setWasmPath:()=>Are,setWasmPaths:()=>Fre,setdiff1dAsync:()=>P1,sigmoid:()=>pa,sign:()=>gb,signal:()=>kO,sin:()=>Gh,sinh:()=>Hh,slice:()=>We,slice1d:()=>jh,slice2d:()=>yb,slice3d:()=>Ql,slice4d:()=>Jc,slice_util:()=>pn,softmax:()=>Ta,softplus:()=>Xl,spaceToBatchND:()=>Xc,sparseToDense:()=>Ib,spectral:()=>wO,split:()=>Mn,sqrt:()=>tn,square:()=>ut,squaredDifference:()=>Kh,squeeze:()=>as,stack:()=>$t,step:()=>tu,stridedSlice:()=>bb,sub:()=>fe,sum:()=>Te,sumOutType:()=>yh,tan:()=>xb,tanh:()=>jl,tensor:()=>Kn,tensor1d:()=>nt,tensor2d:()=>Sa,tensor3d:()=>wh,tensor4d:()=>Ca,tensor5d:()=>VM,tensor6d:()=>UM,tensor_util:()=>Na,test_util:()=>n1,tidy:()=>D,tile:()=>Ka,time:()=>l$,topk:()=>vb,train:()=>Oi,transpose:()=>Ue,truncatedNormal:()=>Xh,unique:()=>Yh,unregisterGradient:()=>vA,unregisterKernel:()=>xA,unsortedSegmentSum:()=>wb,unstack:()=>dt,upcastType:()=>ca,util:()=>k,valueAndGrad:()=>eR,valueAndGrads:()=>tR,variable:()=>O1,variableGrads:()=>S1,version:()=>zee,version_converter:()=>TN,version_core:()=>s1,version_layers:()=>$m,version_wasm:()=>$re,where:()=>wn,whereAsync:()=>kb,zeros:()=>vt,zerosLike:()=>Ge});var EE=Object.create,Ed=Object.defineProperty,AE=Object.getPrototypeOf,FE=Object.prototype.hasOwnProperty,$E=Object.getOwnPropertyNames,DE=Object.getOwnPropertyDescriptor,RE=e=>Ed(e,"__esModule",{value:!0}),cn=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)Ed(e,n,{get:t[n],enumerable:!0})},ME=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of $E(t))!FE.call(e,a)&&a!=="default"&&Ed(e,a,{get:()=>t[a],enumerable:!(n=DE(t,a))||n.enumerable});return e},Ro=e=>e&&e.__esModule?e:ME(RE(Ed(e!=null?EE(AE(e)):{},"default",{value:e,enumerable:!0})),e),PE=cn(()=>{}),OE=cn((e,t)=>{(function(n,a,r){function s(c){var u=this,p=l();u.next=function(){var d=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=d-(u.c=d|0)},u.c=1,u.s0=p(" "),u.s1=p(" "),u.s2=p(" "),u.s0-=p(c),u.s0<0&&(u.s0+=1),u.s1-=p(c),u.s1<0&&(u.s1+=1),u.s2-=p(c),u.s2<0&&(u.s2+=1),p=null}function i(c,u){return u.c=c.c,u.s0=c.s0,u.s1=c.s1,u.s2=c.s2,u}function o(c,u){var p=new s(c),d=u&&u.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var c=4022871197,u=function(p){p=p.toString();for(var d=0;d>>0,h-=c,h*=c,c=h>>>0,h-=c,c+=h*4294967296}return(c>>>0)*23283064365386963e-26};return u}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),LE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var d=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^d^d>>>8},l===(l|0)?c.x=l:u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),zE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(d^d<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,l===(l|0)?c.x=l:u+=l;for(var p=0;p>>4),c.next()}function i(l,c){return c.x=l.x,c.y=l.y,c.z=l.z,c.w=l.w,c.v=l.v,c.d=l.d,c}function o(l,c){var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),BE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.x,d=c.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,c.i=d+1&7,m};function u(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}u(c,l)}function i(l,c){return c.x=l.x.slice(),c.i=l.i,c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.x&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),WE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.w,d=c.X,h=c.i,m,f;return c.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,c.i=h,f+(p^p>>>16)|0};function u(p,d){var h,m,f,g,y,b=[],v=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,v=Math.max(v,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}u(c,l)}function i(l,c){return c.i=l.i,c.w=l.w,c.X=l.X.slice(),c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.X&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),VE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.b,h=c.c,m=c.d,f=c.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,c.b=d=d<<20^d>>>12^h,c.c=h=h-m|0,c.d=m<<16^h>>>16^f,c.a=f-d|0},c.a=0,c.b=0,c.c=2654435769|0,c.d=1367130551,l===Math.floor(l)?(c.a=l/4294967296|0,c.b=l|0):u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),UE=cn(()=>{}),GE=cn((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",c=a.pow(s,i),u=a.pow(2,o),p=u*2,d=s-1,h;function m(N,T,C){var $=[];T=T==!0?{entropy:!0}:T||{};var F=b(y(T.entropy?[N,x(n)]:N==null?v():N,3),$),O=new f($),B=function(){for(var W=O.g(i),G=c,q=0;W=p;)W/=2,G/=2,q>>>=1;return(W+q)/G};return B.int32=function(){return O.g(4)|0},B.quick=function(){return O.g(4)/4294967296},B.double=B,b(x(O.S),n),(T.pass||C||function(W,G,q,H){return H&&(H.S&&g(H,O),W.state=function(){return g(O,{})}),q?(a[l]=W,G):W})(B,F,"global"in T?T.global:this==a,T.state)}a["seed"+l]=m;function f(N){var T,C=N.length,$=this,F=0,O=$.i=$.j=0,B=$.S=[];for(C||(N=[C++]);F{var n=OE(),a=LE(),r=zE(),s=BE(),i=WE(),o=VE(),l=GE();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),HE=cn(()=>{}),pc=cn(()=>{}),jE=cn(()=>{}),qE=cn(()=>{}),KE=cn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return Q.buffer!=Je&&An(Q.buffer),_n}function i(){return Q.buffer!=Je&&An(Q.buffer),en}function o(){return Q.buffer!=Je&&An(Q.buffer),vn}function l(){return Q.buffer!=Je&&An(Q.buffer),un}function c(){return Q.buffer!=Je&&An(Q.buffer),Wa}var u=typeof r!="undefined"?r:{},p={},d;for(d in u)u.hasOwnProperty(d)&&(p[d]=u[d]);var h=[],m="./this.program",f=function(w,S){throw S},g=!1,y=!1,b=!1,v=!1;g=typeof window=="object",y=typeof importScripts=="function",b=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v=!g&&!b&&!y;var x=u.ENVIRONMENT_IS_PTHREAD||!1;x&&(Je=u.buffer,ia=u.DYNAMIC_BASE,Ia=u.DYNAMICTOP_PTR);var N="";function T(w){return u.locateFile?u.locateFile(w,N):N+w}var C,$,F,O,B,W;if(b){y?N=pc().dirname(N)+"/":N=__dirname+"/",C=function(w,S){return B||(B=require("fs")),W||(W=pc()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},F=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S},process.argv.length>1&&(m=process.argv[1].replace(/\\/g,"/")),h=process.argv.slice(2),process.on("uncaughtException",function(w){if(!(w instanceof Yw))throw w}),process.on("unhandledRejection",hr),f=function(w){process.exit(w)},u.inspect=function(){return"[Emscripten Module object]"};var G;try{G=jE()}catch(w){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),w}Worker=G.Worker}else v?(typeof read!="undefined"&&(C=function(w){return read(w)}),F=function(w){var S;return typeof readbuffer=="function"?new Uint8Array(readbuffer(w)):(S=read(w,"binary"),ke(typeof S=="object"),S)},typeof scriptArgs!="undefined"?h=scriptArgs:typeof arguments!="undefined"&&(h=arguments),typeof quit=="function"&&(f=function(w){quit(w)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(g||y)&&(y?N=self.location.href:document.currentScript&&(N=document.currentScript.src),typeof a!="undefined"&&a&&(N=a),N.indexOf("blob:")!==0?N=N.substr(0,N.lastIndexOf("/")+1):N="",b?(C=function(w,S){return B||(B=require("fs")),W||(W=pc()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},F=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S}):(C=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.send(null),S.responseText},y&&(F=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.responseType="arraybuffer",S.send(null),new Uint8Array(S.response)}),$=function(w,S,R){var U=new XMLHttpRequest;U.open("GET",w,!0),U.responseType="arraybuffer",U.onload=function(){if(U.status==200||U.status==0&&U.response){S(U.response);return}R()},U.onerror=R,U.send(null)}),O=function(w){document.title=w});b&&typeof performance=="undefined"&&(performance=qE().performance);var q=u.print||console.log.bind(console),H=u.printErr||console.warn.bind(console);for(d in p)p.hasOwnProperty(d)&&(u[d]=p[d]);p=null,u.arguments&&(h=u.arguments),u.thisProgram&&(m=u.thisProgram),u.quit&&(f=u.quit);var K=Atomics.load,X=Atomics.store,ne=Atomics.compareExchange,J;u.wasmBinary&&(J=u.wasmBinary);var se;u.noExitRuntime&&(se=u.noExitRuntime),typeof WebAssembly!="object"&&H("no native wasm support detected");var Q,oe=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),ae,pe=0,ue=0,ge=!1,ye=0;function ke(w,S){w||hr("Assertion failed: "+S)}function Se(w){var S=u["_"+w];return ke(S,"Cannot call unknown function "+w+", make sure it is exported"),S}function Ce(w,S,R,U,he){var le={string:function(qn){var zr=0;if(qn!=null&&qn!==0){var uc=(qn.length<<2)+1;zr=Ao(uc),lt(qn,zr,uc)}return zr},array:function(qn){var zr=Ao(qn.length);return ct(qn,zr),zr}};function ie(qn){return S==="string"?Ve(qn):S==="boolean"?Boolean(qn):qn}var xe=Se(w),tt=[],Mt=0;if(U)for(var rn=0;rn=U);){var le=w[S++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var ie=w[S++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|ie);continue}var xe=w[S++]&63;if((le&240)==224?le=(le&15)<<12|ie<<6|xe:le=(le&7)<<18|ie<<12|xe<<6|w[S++]&63,le<65536)he+=String.fromCharCode(le);else{var tt=le-65536;he+=String.fromCharCode(55296|tt>>10,56320|tt&1023)}}return he}function Ve(w,S){return w?Ke(i(),w,S):""}function st(w,S,R,U){if(!(U>0))return 0;for(var he=R,le=R+U-1,ie=0;ie=55296&&xe<=57343){var tt=w.charCodeAt(++ie);xe=65536+((xe&1023)<<10)|tt&1023}if(xe<=127){if(R>=le)break;S[R++]=xe}else if(xe<=2047){if(R+1>=le)break;S[R++]=192|xe>>6,S[R++]=128|xe&63}else if(xe<=65535){if(R+2>=le)break;S[R++]=224|xe>>12,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}else{if(R+3>=le)break;S[R++]=240|xe>>18,S[R++]=128|xe>>12&63,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}}return S[R]=0,R-he}function lt(w,S,R){return st(w,i(),S,R)}function He(w){for(var S=0,R=0;R=55296&&U<=57343&&(U=65536+((U&1023)<<10)|w.charCodeAt(++R)&1023),U<=127?++S:U<=2047?S+=2:U<=65535?S+=3:S+=4}return S}function ct(w,S){s().set(w,S)}var pt=65536;function Hn(w,S){return w%S>0&&(w+=S-w%S),w}var Je,_n,en,En,ra,vn,un,sa,Wa;function An(w){Je=w,u.HEAP8=_n=new Int8Array(w),u.HEAP16=En=new Int16Array(w),u.HEAP32=vn=new Int32Array(w),u.HEAPU8=en=new Uint8Array(w),u.HEAPU16=ra=new Uint16Array(w),u.HEAPU32=un=new Uint32Array(w),u.HEAPF32=sa=new Float32Array(w),u.HEAPF64=Wa=new Float64Array(w)}var wo=5256480,Hu=wo,ka=13600,ia=5256480,Ia=12672,ko=u.INITIAL_MEMORY||16777216;if(x)Q=u.wasmMemory,Je=u.buffer;else if(u.wasmMemory)Q=u.wasmMemory;else if(Q=new WebAssembly.Memory({initial:ko/pt,maximum:2147483648/pt,shared:!0}),!(Q.buffer instanceof SharedArrayBuffer))throw H("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),b&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Q&&(Je=Q.buffer),ko=Je.byteLength,An(Je),x||(o()[Ia>>2]=ia);function Io(w){for(;w.length>0;){var S=w.shift();if(typeof S=="function"){S(u);continue}var R=S.func;typeof R=="number"?S.arg===void 0?u.dynCall_v(R):u.dynCall_vi(R,S.arg):R(S.arg===void 0?null:S.arg)}}var Is=[],ju=[],Kf=[],qu=[],id=[],Ku=!1;x&&(Ku=!0);function oa(){if(!x){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)Zf(u.preRun.shift());Io(Is)}}function od(){Ku=!0,Io(ju)}function Xf(){x||Io(Kf)}function Yf(){if(!x){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)Ns(u.postRun.shift());Io(id)}}function Zf(w){Is.unshift(w)}function Ns(w){id.unshift(w)}var No=Math.ceil,Jf=Math.floor,dr=0,Xu=null,Ts=null;function Qf(w){ke(!x,"addRunDependency cannot be used in a pthread worker"),dr++,u.monitorRunDependencies&&u.monitorRunDependencies(dr)}function eg(w){if(dr--,u.monitorRunDependencies&&u.monitorRunDependencies(dr),dr==0&&(Xu!==null&&(clearInterval(Xu),Xu=null),Ts)){var S=Ts;Ts=null,S()}}u.preloadedImages={},u.preloadedAudios={};function hr(w){throw u.onAbort&&u.onAbort(w),x&&console.error("Pthread aborting at "+new Error().stack),w+="",q(w),H(w),ge=!0,ye=1,w="abort("+w+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(w)}function Yu(w,S){return String.prototype.startsWith?w.startsWith(S):w.indexOf(S)===0}var tg="data:application/octet-stream;base64,";function ld(w){return Yu(w,tg)}var ng="file://";function ud(w){return Yu(w,ng)}var la="tfjs-backend-wasm-threaded-simd.wasm";ld(la)||(la=T(la));function cd(){try{if(J)return new Uint8Array(J);if(F)return F(la);throw"both async and sync fetching of the wasm failed"}catch(w){hr(w)}}function ag(){return!J&&(g||y)&&typeof fetch=="function"&&!ud(la)?fetch(la,{credentials:"same-origin"}).then(function(w){if(!w.ok)throw"failed to load wasm binary file at '"+la+"'";return w.arrayBuffer()}).catch(function(){return cd()}):new Promise(function(w,S){w(cd())})}function rg(){var w={a:Xg};function S(ie,xe){var tt=ie.exports;if(u.asm=tt,ae=xe,!x){var Mt=me.unusedWorkers.length;me.unusedWorkers.forEach(function(rn){me.loadWasmModuleToWorker(rn,function(){--Mt||eg("wasm-instantiate")})})}}x||Qf("wasm-instantiate");function R(ie){S(ie.instance,ie.module)}function U(ie){return ag().then(function(xe){return WebAssembly.instantiate(xe,w)}).then(ie,function(xe){H("failed to asynchronously prepare wasm: "+xe),hr(xe)})}function he(){if(!J&&typeof WebAssembly.instantiateStreaming=="function"&&!ld(la)&&!ud(la)&&typeof fetch=="function")fetch(la,{credentials:"same-origin"}).then(function(ie){var xe=WebAssembly.instantiateStreaming(ie,w);return xe.then(R,function(tt){H("wasm streaming compile failed: "+tt),H("falling back to ArrayBuffer instantiation"),U(R)})});else return U(R)}if(u.instantiateWasm)try{var le=u.instantiateWasm(w,S);return le}catch(ie){return H("Module.instantiateWasm callback failed with error: "+ie),!1}return he(),{}}var sg={};function ig(){me.initRuntime()}x||ju.push({func:function(){Qu()}});var pd=0,dd=0,hd=0;function To(w,S,R){w=w|0,S=S|0,R=R|0,pd=w,hd=S,dd=R}u.__register_pthread_ptr=To;var Zu={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},So=13584;function Co(w,S){if(w<=0||w>s().length||w&!0||S<0)return-28;if(S==0)return 0;S>=2147483647&&(S=Infinity);var R=Atomics.load(o(),So>>2),U=0;if(R==w){var he=Atomics.compareExchange(o(),So>>2,R,0);if(he==R&&(--S,U=1,S<=0))return 1}var le=Atomics.notify(o(),w>>2,S);if(le>=0)return le+U;throw"Atomics.notify returned an unexpected value "+le}u._emscripten_futex_wake=Co;function og(w){if(x)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _kill_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];S.worker.terminate(),me.freeThreadData(S),me.runningWorkers.splice(me.runningWorkers.indexOf(S.worker),1),S.worker.pthread=void 0}function lg(w){if(x)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var S=me.pthreads[w];S.worker.postMessage({cmd:"cancel"})}function ug(w){if(x)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];if(S){var R=S.worker;me.returnWorkerToPool(R)}}var me={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){To(me.mainThreadBlock,!y,1),jw(me.mainThreadBlock)},initMainThreadBlock:function(){for(var w=8,S=0;S>2]=me.mainThreadBlock;var R=me.mainThreadBlock+156;o()[R>>2]=R;for(var U=13072,S=0;S<128;++S)l()[U/4+S]=0;Atomics.store(l(),me.mainThreadBlock+104>>2,U),Atomics.store(l(),me.mainThreadBlock+40>>2,me.mainThreadBlock),Atomics.store(l(),me.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(me.exitHandlers!==null){for(;me.exitHandlers.length>0;)me.exitHandlers.pop()();me.exitHandlers=null}x&&pe&&Hw()},threadExit:function(w){var S=Va();S&&(Atomics.store(l(),S+4>>2,w),Atomics.store(l(),S+0>>2,1),Atomics.store(l(),S+60>>2,1),Atomics.store(l(),S+64>>2,0),me.runExitHandlers(),Co(S+0,2147483647),To(0,0,0),pe=0,x&&postMessage({cmd:"exit"}))},threadCancel:function(){me.runExitHandlers(),Atomics.store(l(),pe+4>>2,-1),Atomics.store(l(),pe+0>>2,1),Co(pe+0,2147483647),pe=ue=0,To(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var w in me.pthreads){var S=me.pthreads[w];S&&S.worker&&me.returnWorkerToPool(S.worker)}me.pthreads={};for(var R=0;R>2];o()[w.threadInfoStruct+104>>2]=0,sc(S),sc(w.threadInfoStruct)}w.threadInfoStruct=0,w.allocatedOwnStack&&w.stackBase&&sc(w.stackBase),w.stackBase=0,w.worker&&(w.worker.pthread=null)}},returnWorkerToPool:function(w){delete me.pthreads[w.pthread.thread],me.unusedWorkers.push(w),me.runningWorkers.splice(me.runningWorkers.indexOf(w),1),me.freeThreadData(w.pthread),w.pthread=void 0},receiveObjectTransfer:function(w){},loadWasmModuleToWorker:function(w,S){w.onmessage=function(R){var U=R.data,he=U.cmd;if(w.pthread&&(me.currentProxiedOperationCallerThread=w.pthread.threadInfoStruct),U.targetThread&&U.targetThread!=Va()){var le=me.pthreads[U.targetThread];le?le.worker.postMessage(R.data,U.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+U.targetThread+", but that thread no longer exists!"),me.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")Jg();else if(he==="spawnThread")xd(R.data);else if(he==="cleanupThread")ug(U.thread);else if(he==="killThread")og(U.thread);else if(he==="cancelThread")lg(U.thread);else if(he==="loaded")w.loaded=!0,S&&S(w),w.runPthread&&(w.runPthread(),delete w.runPthread);else if(he==="print")q("Thread "+U.threadId+": "+U.text);else if(he==="printErr")H("Thread "+U.threadId+": "+U.text);else if(he==="alert")alert("Thread "+U.threadId+": "+U.text);else if(he==="exit"){var ie=w.pthread&&Atomics.load(l(),w.pthread.thread+68>>2);ie&&me.returnWorkerToPool(w)}else he==="cancelDone"?me.returnWorkerToPool(w):he==="objectTransfer"?me.receiveObjectTransfer(R.data):R.data.target==="setimmediate"?w.postMessage(R.data):H("worker sent an unknown command "+he);me.currentProxiedOperationCallerThread=void 0},w.onerror=function(R){H("pthread sent an error! "+R.filename+":"+R.lineno+": "+R.message)},b&&(w.on("message",function(R){w.onmessage({data:R})}),w.on("error",function(R){w.onerror(R)}),w.on("exit",function(R){console.log("worker exited - TODO: update the worker queue?")})),w.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||a,wasmMemory:Q,wasmModule:ae,DYNAMIC_BASE:ia,DYNAMICTOP_PTR:Ia})},allocateUnusedWorker:function(){var w=T("tfjs-backend-wasm-threaded-simd.worker.js");me.unusedWorkers.push(new Worker(w))},getNewWorker:function(){return me.unusedWorkers.length==0&&(me.allocateUnusedWorker(),me.loadWasmModuleToWorker(me.unusedWorkers[0])),me.unusedWorkers.length>0?me.unusedWorkers.pop():null},busySpinWait:function(w){for(var S=performance.now()+w;performance.now()>2]=w,w}function fg(w,S){if(x)return Pr(1,1,w,S);qu.unshift({func:w,arg:S})}function gg(w,S){if(w==S)postMessage({cmd:"processQueuedMainThreadWork"});else if(x)postMessage({targetThread:w,cmd:"processThreadQueue"});else{var R=me.pthreads[w],U=R&&R.worker;if(!U)return;U.postMessage({cmd:"processThreadQueue"})}return 1}function yg(){hr()}function bg(w,S){w=w|0,S=S|0}function xg(w,S,R){if(w<=0||w>s().length||w&!0)return-28;if(y){var U=Atomics.wait(o(),w>>2,S,R);if(U==="timed-out")return-73;if(U==="not-equal")return-6;if(U==="ok")return 0;throw"Atomics.wait returned an unexpected value "+U}else{var he=Atomics.load(o(),w>>2);if(S!=he)return-6;var le=performance.now(),ie=le+R;Atomics.store(o(),So>>2,w);for(var xe=w;w==xe;){if(le=performance.now(),le>ie)return-73;Jg(),w=Atomics.load(o(),So>>2)}return 0}}function vg(){return hd|0}function wg(){return dd|0}function kg(w,S,R){i().copyWithin(w,S,S+R)}function Ig(){return navigator.hardwareConcurrency}function Pr(w,S){for(var R=arguments.length-2,U=ic(),he=Ao(R*8),le=he>>3,ie=0;ie>3]),S+=8):(S=S+3&~3,R.push(o()[S>>2]),S+=4);return R}function Ng(w,S,R){Cs.length=S;for(var U=R>>3,he=0;he>>16),An(Q.buffer),1}catch(S){}}function Cg(w){w=w>>>0;var S=Tg();if(w<=S)return!1;var R=65536,U=2147483648;if(w>U)return!1;for(var he=16777216,le=1;le<=4;le*=2){var ie=S*(1+.2/le);ie=Math.min(ie,w+100663296);var xe=Math.min(U,Hn(Math.max(he,w,ie),R)),tt=Sg(xe);if(tt)return!0}return!1}var Pe={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var w=Pe.eventHandlers.length-1;w>=0;--w)Pe._removeHandler(w);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(qu.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(w,S,R){function U(ie,xe){if(ie.length!=xe.length)return!1;for(var tt in ie)if(ie[tt]!=xe[tt])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==w&&U(le.argsList,R))return}Pe.deferredCalls.push({targetFunction:w,precedence:S,argsList:R}),Pe.deferredCalls.sort(function(ie,xe){return ie.precedence>2]=R,o()[ie+4>>2]=U,o()[ie+8>>2]=he,Qg(w,637534208,S,U,ie),Fo(le)},getTargetThreadForEventCallback:function(w){switch(w){case 1:return 0;case 2:return me.currentProxiedOperationCallerThread;default:return w}},getNodeNameForTarget:function(w){return w?w==window?"#window":w==screen?"#screen":w&&w.nodeName?w.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function _g(w){var S=He(w)+1,R=rc(S);return lt(w,R,S),R}function Eg(w,S,R,U){var he=ic(),le=Ao(12),ie=0;S&&(ie=_g(S)),o()[le>>2]=ie,o()[le+4>>2]=R,o()[le+8>>2]=U,Qg(w,657457152,0,ie,le),Fo(he)}function Ag(w,S,R,U){S=S?Ve(S):"",Eg(w,S,R,U)}function Fg(w){return w>2?Ve(w):w}var $g=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Dg(w){w=Fg(w);var S=$g[w]||(typeof document!="undefined"?document.querySelector(w):void 0);return S}function Ju(w){return Dg(w)}function md(w,S,R){var U=Ju(w);if(!U)return-4;if(U.canvasSharedPtr&&(o()[U.canvasSharedPtr>>2]=S,o()[U.canvasSharedPtr+4>>2]=R),U.offscreenCanvas||!U.controlTransferredOffscreen){U.offscreenCanvas&&(U=U.offscreenCanvas);var he=!1;if(U.GLctxObject&&U.GLctxObject.GLctx){var le=U.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===U.width&&le[3]===U.height}U.width=S,U.height=R,he&&U.GLctxObject.GLctx.viewport(0,0,S,R)}else if(U.canvasSharedPtr){var ie=o()[U.canvasSharedPtr+8>>2];return Ag(ie,w,S,R),1}else return-4;return 0}function fd(w,S,R){return x?Pr(2,1,w,S,R):md(w,S,R)}function Rg(w,S,R){var U=Ju(w);return U?md(w,S,R):fd(w,S,R)}function Mg(w){w=w|0}function Pg(w,S){w=w|0,S=S|0}function Og(w){var S=w.getExtension("ANGLE_instanced_arrays");if(S)return w.vertexAttribDivisor=function(R,U){S.vertexAttribDivisorANGLE(R,U)},w.drawArraysInstanced=function(R,U,he,le){S.drawArraysInstancedANGLE(R,U,he,le)},w.drawElementsInstanced=function(R,U,he,le,ie){S.drawElementsInstancedANGLE(R,U,he,le,ie)},1}function Lg(w){var S=w.getExtension("OES_vertex_array_object");if(S)return w.createVertexArray=function(){return S.createVertexArrayOES()},w.deleteVertexArray=function(R){S.deleteVertexArrayOES(R)},w.bindVertexArray=function(R){S.bindVertexArrayOES(R)},w.isVertexArray=function(R){return S.isVertexArrayOES(R)},1}function zg(w){var S=w.getExtension("WEBGL_draw_buffers");if(S)return w.drawBuffers=function(R,U){S.drawBuffersWEBGL(R,U)},1}var Be={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var w=new Float32Array(Be.MINI_TEMP_BUFFER_SIZE),S=0;S>2]:-1;he+=Ve(o()[R+le*4>>2],ie<0?void 0:ie)}return he},createContext:function(w,S){var R=w.getContext("webgl",S);if(!R)return 0;var U=Be.registerContext(R,S);return U},registerContext:function(w,S){var R=rc(8);o()[R+4>>2]=Va();var U={handle:R,attributes:S,version:S.majorVersion,GLctx:w};return w.canvas&&(w.canvas.GLctxObject=U),Be.contexts[R]=U,(typeof S.enableExtensionsByDefault=="undefined"||S.enableExtensionsByDefault)&&Be.initExtensions(U),R},makeContextCurrent:function(w){return Be.currentContext=Be.contexts[w],u.ctx=Or=Be.currentContext&&Be.currentContext.GLctx,!(w&&!Or)},getContext:function(w){return Be.contexts[w]},deleteContext:function(w){Be.currentContext===Be.contexts[w]&&(Be.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(Be.contexts[w].GLctx.canvas),Be.contexts[w]&&Be.contexts[w].GLctx.canvas&&(Be.contexts[w].GLctx.canvas.GLctxObject=void 0),sc(Be.contexts[w].handle),Be.contexts[w]=null},initExtensions:function(w){if(w||(w=Be.currentContext),!w.initExtensionsDone){w.initExtensionsDone=!0;var S=w.GLctx;Og(S),Lg(S),zg(S),S.disjointTimerQueryExt=S.getExtension("EXT_disjoint_timer_query");var R=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],U=S.getSupportedExtensions()||[];U.forEach(function(he){R.indexOf(he)!=-1&&S.getExtension(he)})}},populateUniformTable:function(w){for(var S=Be.programs[w],R=Be.programInfos[w]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},U=R.uniforms,he=Or.getProgramParameter(S,35718),le=0;le>2;R.alpha=!!o()[U+(0>>2)],R.depth=!!o()[U+(4>>2)],R.stencil=!!o()[U+(8>>2)],R.antialias=!!o()[U+(12>>2)],R.premultipliedAlpha=!!o()[U+(16>>2)],R.preserveDrawingBuffer=!!o()[U+(20>>2)];var he=o()[U+(24>>2)];R.powerPreference=Bg[he],R.failIfMajorPerformanceCaveat=!!o()[U+(28>>2)],R.majorVersion=o()[U+(32>>2)],R.minorVersion=o()[U+(36>>2)],R.enableExtensionsByDefault=o()[U+(40>>2)],R.explicitSwapControl=o()[U+(44>>2)],R.proxyContextToMainThread=o()[U+(48>>2)],R.renderViaOffscreenBackBuffer=o()[U+(52>>2)];var le=Ju(w);if(!le)return-4;if(R.explicitSwapControl)return-1;var ie=Be.createContext(le,R);return ie}function Vg(w,S){return Wg(w,S)}var _s={splitPath:function(w){var S=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return S.exec(w).slice(1)},normalizeArray:function(w,S){for(var R=0,U=w.length-1;U>=0;U--){var he=w[U];he==="."?w.splice(U,1):he===".."?(w.splice(U,1),R++):R&&(w.splice(U,1),R--)}if(S)for(;R;R--)w.unshift("..");return w},normalize:function(w){var S=w.charAt(0)==="/",R=w.substr(-1)==="/";return w=_s.normalizeArray(w.split("/").filter(function(U){return!!U}),!S).join("/"),!w&&!S&&(w="."),w&&R&&(w+="/"),(S?"/":"")+w},dirname:function(w){var S=_s.splitPath(w),R=S[0],U=S[1];return!R&&!U?".":(U&&(U=U.substr(0,U.length-1)),R+U)},basename:function(w){if(w==="/")return"/";var S=w.lastIndexOf("/");return S===-1?w:w.substr(S+1)},extname:function(w){return _s.splitPath(w)[3]},join:function(){var w=Array.prototype.slice.call(arguments,0);return _s.normalize(w.join("/"))},join2:function(w,S){return _s.normalize(w+"/"+S)}},Eo={mappings:{},buffers:[null,[],[]],printChar:function(w,S){var R=Eo.buffers[w];S===0||S===10?((w===1?q:H)(Ke(R,0)),R.length=0):R.push(S)},varargs:void 0,get:function(){Eo.varargs+=4;var w=o()[Eo.varargs-4>>2];return w},getStr:function(w){var S=Ve(w);return S},get64:function(w,S){return w}};function gd(w){return x?Pr(3,1,w):0}function yd(w,S,R,U,he){if(x)return Pr(4,1,w,S,R,U,he)}function bd(w,S,R,U){if(x)return Pr(5,1,w,S,R,U);for(var he=0,le=0;le>2],xe=o()[S+(le*8+4)>>2],tt=0;tt>2]=he,0}function Ug(w){var S=me.exitHandlers.pop();w&&S()}function Gg(w,S){me.exitHandlers===null&&(me.exitHandlers=[]),me.exitHandlers.push(function(){Xw(w,S)})}function xd(w){if(x)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var S=me.getNewWorker();if(S.pthread!==void 0)throw"Internal error!";if(!w.pthread_ptr)throw"Internal error, no pthread ptr!";me.runningWorkers.push(S);for(var R=rc(128*4),U=0;U<128;++U)o()[R+U*4>>2]=0;var he=w.stackBase+w.stackSize,le=me.pthreads[w.pthread_ptr]={worker:S,stackBase:w.stackBase,stackSize:w.stackSize,allocatedOwnStack:w.allocatedOwnStack,thread:w.pthread_ptr,threadInfoStruct:w.pthread_ptr},ie=le.threadInfoStruct>>2;Atomics.store(l(),ie+(0>>2),0),Atomics.store(l(),ie+(4>>2),0),Atomics.store(l(),ie+(8>>2),0),Atomics.store(l(),ie+(68>>2),w.detached),Atomics.store(l(),ie+(104>>2),R),Atomics.store(l(),ie+(48>>2),0),Atomics.store(l(),ie+(40>>2),le.threadInfoStruct),Atomics.store(l(),ie+(44>>2),42),Atomics.store(l(),ie+(108>>2),w.stackSize),Atomics.store(l(),ie+(84>>2),w.stackSize),Atomics.store(l(),ie+(80>>2),he),Atomics.store(l(),ie+(108+8>>2),he),Atomics.store(l(),ie+(108+12>>2),w.detached),Atomics.store(l(),ie+(108+20>>2),w.schedPolicy),Atomics.store(l(),ie+(108+24>>2),w.schedPrio);var xe=Uw(),tt=xe+40;Atomics.store(l(),ie+(176>>2),tt),S.pthread=le;var Mt={cmd:"run",start_routine:w.startRoutine,arg:w.arg,threadInfoStruct:w.pthread_ptr,selfThreadId:w.pthread_ptr,parentThreadId:w.parent_pthread_ptr,stackBase:w.stackBase,stackSize:w.stackSize};S.runPthread=function(){Mt.time=performance.now(),S.postMessage(Mt,w.transferList)},S.loaded&&(S.runPthread(),delete S.runPthread)}function Hg(w,S,R){if(!S&&!R)return Zu.EINVAL;if(!w)return H("pthread_getschedparam called with a null thread pointer!"),Zu.ESRCH;var U=o()[w+12>>2];if(U!==w)return H("pthread_getschedparam attempted on thread "+w+", which does not point to a valid thread, or does not exist anymore!"),Zu.ESRCH;var he=Atomics.load(l(),w+108+20>>2),le=Atomics.load(l(),w+108+24>>2);return S&&(o()[S>>2]=he),R&&(o()[R>>2]=le),0}function Va(){return pd|0}u._pthread_self=Va;function jg(w,S,R,U){if(typeof SharedArrayBuffer=="undefined")return H("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!w)return H("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(x&&(he.length===0||le))return qw(687865856,w,S,R,U);if(le)return le;var ie=0,xe=0,tt=0,Mt=0,rn=0;if(S){ie=o()[S>>2],ie+=81920,xe=o()[S+8>>2],tt=o()[S+12>>2]!==0;var $o=o()[S+16>>2]===0;if($o){var lc=o()[S+20>>2],qn=o()[S+24>>2],zr=me.currentProxiedOperationCallerThread?me.currentProxiedOperationCallerThread:Va();Hg(zr,S+20,S+24),Mt=o()[S+20>>2],rn=o()[S+24>>2],o()[S+20>>2]=lc,o()[S+24>>2]=qn}else Mt=o()[S+20>>2],rn=o()[S+24>>2]}else ie=2097152;var uc=xe==0;uc?xe=Gw(16,ie):(xe-=ie,ke(xe>0));for(var Do=rc(232),ty=0;ty<232>>2;++ty)l()[(Do>>2)+ty]=0;o()[w>>2]=Do,o()[Do+12>>2]=Do;var Zw=Do+156;o()[Zw>>2]=Zw;var ny={stackBase:xe,stackSize:ie,allocatedOwnStack:uc,schedPolicy:Mt,schedPrio:rn,detached:tt,startRoutine:R,pthread_ptr:Do,parent_pthread_ptr:Va(),arg:U,transferList:he};return x?(ny.cmd="spawnThread",postMessage(ny,he)):xd(ny),0}function qg(w){return w=+w,w>=0?+Jf(w+.5):+No(w-.5)}function vd(w){if(x)return Pr(6,1,w);switch(w){case 30:return 16384;case 85:var S=2147483648;return S/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return mg(28),-1}x?me.initWorker():me.initMainThreadBlock();var Or;Be.init();var Kg=[null,fg,fd,gd,yd,bd,vd],Xg={e:dg,r:hg,w:gg,a:yg,l:bg,d:xg,c:Co,h:Ss,g:vg,x:wg,q:kg,B:Ig,t:Ng,A:Cg,u:Rg,k:Mg,s:Pg,v:Vg,m:gd,o:yd,i:bd,p:ig,memory:Q||u.wasmMemory,y:Ug,z:Gg,j:jg,b:Va,f:qg,n:vd,table:oe},wd=rg();u.asm=wd;var Qu=u.___wasm_call_ctors=function(){return(Qu=u.___wasm_call_ctors=u.asm.C).apply(null,arguments)},ec=u._init=function(){return(ec=u._init=u.asm.D).apply(null,arguments)},kd=u._register_tensor=function(){return(kd=u._register_tensor=u.asm.E).apply(null,arguments)},Es=u._dispose_data=function(){return(Es=u._dispose_data=u.asm.F).apply(null,arguments)},tc=u._dispose=function(){return(tc=u._dispose=u.asm.G).apply(null,arguments)},Yg=u._Abs=function(){return(Yg=u._Abs=u.asm.H).apply(null,arguments)},Zg=u._Add=function(){return(Zg=u._Add=u.asm.I).apply(null,arguments)},nc=u._AddN=function(){return(nc=u._AddN=u.asm.J).apply(null,arguments)},Id=u._ArgMax=function(){return(Id=u._ArgMax=u.asm.K).apply(null,arguments)},Nd=u._AvgPool=function(){return(Nd=u._AvgPool=u.asm.L).apply(null,arguments)},V=u._BatchMatMul=function(){return(V=u._BatchMatMul=u.asm.M).apply(null,arguments)},te=u._ClipByValue=function(){return(te=u._ClipByValue=u.asm.N).apply(null,arguments)},Ie=u._Conv2D=function(){return(Ie=u._Conv2D=u.asm.O).apply(null,arguments)},_e=u._Conv2DBackpropInput=function(){return(_e=u._Conv2DBackpropInput=u.asm.P).apply(null,arguments)},at=u._Cos=function(){return(at=u._Cos=u.asm.Q).apply(null,arguments)},_t=u._CropAndResize=function(){return(_t=u._CropAndResize=u.asm.R).apply(null,arguments)},Xe=u._Cumsum=function(){return(Xe=u._Cumsum=u.asm.S).apply(null,arguments)},je=u._DepthToSpace=function(){return(je=u._DepthToSpace=u.asm.T).apply(null,arguments)},Ut=u._DepthwiseConv2dNative=function(){return(Ut=u._DepthwiseConv2dNative=u.asm.U).apply(null,arguments)},mr=u._Equal=function(){return(mr=u._Equal=u.asm.V).apply(null,arguments)},fr=u._Exp=function(){return(fr=u._Exp=u.asm.W).apply(null,arguments)},Td=u._FlipLeftRight=function(){return(Td=u._FlipLeftRight=u.asm.X).apply(null,arguments)},ac=u._Floor=function(){return(ac=u._Floor=u.asm.Y).apply(null,arguments)},jn=u._FloorDiv=function(){return(jn=u._FloorDiv=u.asm.Z).apply(null,arguments)},Lr=u._FusedBatchNorm=function(){return(Lr=u._FusedBatchNorm=u.asm._).apply(null,arguments)},Sd=u._FusedConv2D=function(){return(Sd=u._FusedConv2D=u.asm.$).apply(null,arguments)},o_=u._FusedDepthwiseConv2D=function(){return(o_=u._FusedDepthwiseConv2D=u.asm.aa).apply(null,arguments)},l_=u._Gather=function(){return(l_=u._Gather=u.asm.ba).apply(null,arguments)},u_=u._GatherNd=function(){return(u_=u._GatherNd=u.asm.ca).apply(null,arguments)},c_=u._Greater=function(){return(c_=u._Greater=u.asm.da).apply(null,arguments)},p_=u._GreaterEqual=function(){return(p_=u._GreaterEqual=u.asm.ea).apply(null,arguments)},d_=u._LeakyRelu=function(){return(d_=u._LeakyRelu=u.asm.fa).apply(null,arguments)},h_=u._Less=function(){return(h_=u._Less=u.asm.ga).apply(null,arguments)},m_=u._LessEqual=function(){return(m_=u._LessEqual=u.asm.ha).apply(null,arguments)},f_=u._Log=function(){return(f_=u._Log=u.asm.ia).apply(null,arguments)},g_=u._LogicalAnd=function(){return(g_=u._LogicalAnd=u.asm.ja).apply(null,arguments)},y_=u._Max=function(){return(y_=u._Max=u.asm.ka).apply(null,arguments)},b_=u._MaxPool=function(){return(b_=u._MaxPool=u.asm.la).apply(null,arguments)},x_=u._Maximum=function(){return(x_=u._Maximum=u.asm.ma).apply(null,arguments)},v_=u._Mean=function(){return(v_=u._Mean=u.asm.na).apply(null,arguments)},w_=u._Min=function(){return(w_=u._Min=u.asm.oa).apply(null,arguments)},k_=u._Minimum=function(){return(k_=u._Minimum=u.asm.pa).apply(null,arguments)},I_=u._Multiply=function(){return(I_=u._Multiply=u.asm.qa).apply(null,arguments)},N_=u._Neg=function(){return(N_=u._Neg=u.asm.ra).apply(null,arguments)},T_=u._NonMaxSuppressionV3=function(){return(T_=u._NonMaxSuppressionV3=u.asm.sa).apply(null,arguments)},S_=u._NonMaxSuppressionV4=function(){return(S_=u._NonMaxSuppressionV4=u.asm.ta).apply(null,arguments)},C_=u._NonMaxSuppressionV5=function(){return(C_=u._NonMaxSuppressionV5=u.asm.ua).apply(null,arguments)},__=u._NotEqual=function(){return(__=u._NotEqual=u.asm.va).apply(null,arguments)},E_=u._OneHot=function(){return(E_=u._OneHot=u.asm.wa).apply(null,arguments)},A_=u._PadV2=function(){return(A_=u._PadV2=u.asm.xa).apply(null,arguments)},F_=u._Pow=function(){return(F_=u._Pow=u.asm.ya).apply(null,arguments)},$_=u._Prelu=function(){return($_=u._Prelu=u.asm.za).apply(null,arguments)},D_=u._Prod=function(){return(D_=u._Prod=u.asm.Aa).apply(null,arguments)},R_=u._RealDiv=function(){return(R_=u._RealDiv=u.asm.Ba).apply(null,arguments)},M_=u._Relu=function(){return(M_=u._Relu=u.asm.Ca).apply(null,arguments)},P_=u._Relu6=function(){return(P_=u._Relu6=u.asm.Da).apply(null,arguments)},O_=u._ResizeBilinear=function(){return(O_=u._ResizeBilinear=u.asm.Ea).apply(null,arguments)},L_=u._Reverse=function(){return(L_=u._Reverse=u.asm.Fa).apply(null,arguments)},z_=u._RotateWithOffset=function(){return(z_=u._RotateWithOffset=u.asm.Ga).apply(null,arguments)},B_=u._Round=function(){return(B_=u._Round=u.asm.Ha).apply(null,arguments)},W_=u._Rsqrt=function(){return(W_=u._Rsqrt=u.asm.Ia).apply(null,arguments)},V_=u._ScatterNd=function(){return(V_=u._ScatterNd=u.asm.Ja).apply(null,arguments)},U_=u._SelectV2=function(){return(U_=u._SelectV2=u.asm.Ka).apply(null,arguments)},G_=u._Sigmoid=function(){return(G_=u._Sigmoid=u.asm.La).apply(null,arguments)},H_=u._Sin=function(){return(H_=u._Sin=u.asm.Ma).apply(null,arguments)},j_=u._Softmax=function(){return(j_=u._Softmax=u.asm.Na).apply(null,arguments)},q_=u._Sqrt=function(){return(q_=u._Sqrt=u.asm.Oa).apply(null,arguments)},K_=u._Square=function(){return(K_=u._Square=u.asm.Pa).apply(null,arguments)},X_=u._SquaredDifference=function(){return(X_=u._SquaredDifference=u.asm.Qa).apply(null,arguments)},Y_=u._Step=function(){return(Y_=u._Step=u.asm.Ra).apply(null,arguments)},Z_=u._StridedSlice=function(){return(Z_=u._StridedSlice=u.asm.Sa).apply(null,arguments)},J_=u._Sub=function(){return(J_=u._Sub=u.asm.Ta).apply(null,arguments)},Q_=u._Sum=function(){return(Q_=u._Sum=u.asm.Ua).apply(null,arguments)},eE=u._Tanh=function(){return(eE=u._Tanh=u.asm.Va).apply(null,arguments)},tE=u._Tile=function(){return(tE=u._Tile=u.asm.Wa).apply(null,arguments)},nE=u._TopK=function(){return(nE=u._TopK=u.asm.Xa).apply(null,arguments)},aE=u._Transpose=function(){return(aE=u._Transpose=u.asm.Ya).apply(null,arguments)},rE=u.__FusedMatMul=function(){return(rE=u.__FusedMatMul=u.asm.Za).apply(null,arguments)},rc=u._malloc=function(){return(rc=u._malloc=u.asm._a).apply(null,arguments)},sc=u._free=function(){return(sc=u._free=u.asm.$a).apply(null,arguments)},sE=u.___em_js__initPthreadsJS=function(){return(sE=u.___em_js__initPthreadsJS=u.asm.ab).apply(null,arguments)},Vw=u.___errno_location=function(){return(Vw=u.___errno_location=u.asm.bb).apply(null,arguments)},Uw=u._emscripten_get_global_libc=function(){return(Uw=u._emscripten_get_global_libc=u.asm.cb).apply(null,arguments)},Gw=u._memalign=function(){return(Gw=u._memalign=u.asm.db).apply(null,arguments)},Hw=u.___pthread_tsd_run_dtors=function(){return(Hw=u.___pthread_tsd_run_dtors=u.asm.eb).apply(null,arguments)},Jg=u._emscripten_main_thread_process_queued_calls=function(){return(Jg=u._emscripten_main_thread_process_queued_calls=u.asm.fb).apply(null,arguments)},iE=u._emscripten_current_thread_process_queued_calls=function(){return(iE=u._emscripten_current_thread_process_queued_calls=u.asm.gb).apply(null,arguments)},jw=u._emscripten_register_main_browser_thread_id=function(){return(jw=u._emscripten_register_main_browser_thread_id=u.asm.hb).apply(null,arguments)},oE=u._emscripten_main_browser_thread_id=function(){return(oE=u._emscripten_main_browser_thread_id=u.asm.ib).apply(null,arguments)},lE=u._emscripten_async_run_in_main_thread=function(){return(lE=u._emscripten_async_run_in_main_thread=u.asm.jb).apply(null,arguments)},uE=u._emscripten_sync_run_in_main_thread=function(){return(uE=u._emscripten_sync_run_in_main_thread=u.asm.kb).apply(null,arguments)},cE=u._emscripten_sync_run_in_main_thread_0=function(){return(cE=u._emscripten_sync_run_in_main_thread_0=u.asm.lb).apply(null,arguments)},pE=u._emscripten_sync_run_in_main_thread_1=function(){return(pE=u._emscripten_sync_run_in_main_thread_1=u.asm.mb).apply(null,arguments)},dE=u._emscripten_sync_run_in_main_thread_2=function(){return(dE=u._emscripten_sync_run_in_main_thread_2=u.asm.nb).apply(null,arguments)},hE=u._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(hE=u._emscripten_sync_run_in_main_thread_xprintf_varargs=u.asm.ob).apply(null,arguments)},mE=u._emscripten_sync_run_in_main_thread_3=function(){return(mE=u._emscripten_sync_run_in_main_thread_3=u.asm.pb).apply(null,arguments)},qw=u._emscripten_sync_run_in_main_thread_4=function(){return(qw=u._emscripten_sync_run_in_main_thread_4=u.asm.qb).apply(null,arguments)},fE=u._emscripten_sync_run_in_main_thread_5=function(){return(fE=u._emscripten_sync_run_in_main_thread_5=u.asm.rb).apply(null,arguments)},gE=u._emscripten_sync_run_in_main_thread_6=function(){return(gE=u._emscripten_sync_run_in_main_thread_6=u.asm.sb).apply(null,arguments)},yE=u._emscripten_sync_run_in_main_thread_7=function(){return(yE=u._emscripten_sync_run_in_main_thread_7=u.asm.tb).apply(null,arguments)},Kw=u._emscripten_run_in_main_runtime_thread_js=function(){return(Kw=u._emscripten_run_in_main_runtime_thread_js=u.asm.ub).apply(null,arguments)},Qg=u._emscripten_async_queue_on_thread_=function(){return(Qg=u._emscripten_async_queue_on_thread_=u.asm.vb).apply(null,arguments)},bE=u._emscripten_tls_init=function(){return(bE=u._emscripten_tls_init=u.asm.wb).apply(null,arguments)},ic=u.stackSave=function(){return(ic=u.stackSave=u.asm.xb).apply(null,arguments)},Ao=u.stackAlloc=function(){return(Ao=u.stackAlloc=u.asm.yb).apply(null,arguments)},Fo=u.stackRestore=function(){return(Fo=u.stackRestore=u.asm.zb).apply(null,arguments)},Xw=u.dynCall_vi=function(){return(Xw=u.dynCall_vi=u.asm.Ab).apply(null,arguments)},xE=u.dynCall_v=function(){return(xE=u.dynCall_v=u.asm.Bb).apply(null,arguments)},vE=u.dynCall_ii=function(){return(vE=u.dynCall_ii=u.asm.Cb).apply(null,arguments)};u.asm=wd,u.cwrap=Re,u.PThread=me,u.PThread=me,u._pthread_self=Va,u.wasmMemory=Q,u.ExitStatus=Yw;var oc;u.then=function(w){if(oc)w(u);else{var S=u.onRuntimeInitialized;u.onRuntimeInitialized=function(){S&&S(),w(u)}}return u};function Yw(w){this.name="ExitStatus",this.message="Program terminated with exit("+w+")",this.status=w}Ts=function w(){oc||ey(),oc||(Ts=w)};function ey(w){if(w=w||h,dr>0||(oa(),dr>0))return;function S(){oc||(oc=!0,u.calledRun=!0,!ge&&(od(),Xf(),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Yf()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),S()},1)):S()}if(u.run=ey,u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return x||(se=!0),x||ey(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),XE=cn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i={},o;for(o in s)s.hasOwnProperty(o)&&(i[o]=s[o]);var l=[],c="./this.program",u=function(V,te){throw te},p=!1,d=!1,h=!1,m=!1;p=typeof window=="object",d=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",m=!p&&!h&&!d;var f="";function g(V){return s.locateFile?s.locateFile(V,f):f+V}var y,b,v,x,N,T;h?(d?f=pc().dirname(f)+"/":f=__dirname+"/",y=function(V,te){return N||(N=require("fs")),T||(T=pc()),V=T.normalize(V),N.readFileSync(V,te?null:"utf8")},v=function(V){var te=y(V,!0);return te.buffer||(te=new Uint8Array(te)),H(te.buffer),te},process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),l=process.argv.slice(2),process.on("uncaughtException",function(V){if(!(V instanceof tc))throw V}),process.on("unhandledRejection",Is),u=function(V){process.exit(V)},s.inspect=function(){return"[Emscripten Module object]"}):m?(typeof read!="undefined"&&(y=function(V){return read(V)}),v=function(V){var te;return typeof readbuffer=="function"?new Uint8Array(readbuffer(V)):(te=read(V,"binary"),H(typeof te=="object"),te)},typeof scriptArgs!="undefined"?l=scriptArgs:typeof arguments!="undefined"&&(l=arguments),typeof quit=="function"&&(u=function(V){quit(V)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(p||d)&&(d?f=self.location.href:document.currentScript&&(f=document.currentScript.src),a&&(f=a),f.indexOf("blob:")!==0?f=f.substr(0,f.lastIndexOf("/")+1):f="",y=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.send(null),te.responseText},d&&(v=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.responseType="arraybuffer",te.send(null),new Uint8Array(te.response)}),b=function(V,te,Ie){var _e=new XMLHttpRequest;_e.open("GET",V,!0),_e.responseType="arraybuffer",_e.onload=function(){if(_e.status==200||_e.status==0&&_e.response){te(_e.response);return}Ie()},_e.onerror=Ie,_e.send(null)},x=function(V){document.title=V});var C=s.print||console.log.bind(console),$=s.printErr||console.warn.bind(console);for(o in i)i.hasOwnProperty(o)&&(s[o]=i[o]);i=null,s.arguments&&(l=s.arguments),s.thisProgram&&(c=s.thisProgram),s.quit&&(u=s.quit);var F;s.wasmBinary&&(F=s.wasmBinary);var O;s.noExitRuntime&&(O=s.noExitRuntime),typeof WebAssembly!="object"&&$("no native wasm support detected");var B,W=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),G=!1,q=0;function H(V,te){V||Is("Assertion failed: "+te)}function K(V){var te=s["_"+V];return H(te,"Cannot call unknown function "+V+", make sure it is exported"),te}function X(V,te,Ie,_e,at){var _t={string:function(jn){var Lr=0;if(jn!=null&&jn!==0){var Sd=(jn.length<<2)+1;Lr=ec(Sd),ae(jn,Lr,Sd)}return Lr},array:function(jn){var Lr=ec(jn.length);return pe(jn,Lr),Lr}};function Xe(jn){return te==="string"?Q(jn):te==="boolean"?Boolean(jn):jn}var je=K(V),Ut=[],mr=0;if(_e)for(var fr=0;fr<_e.length;fr++){var Td=_t[Ie[fr]];Td?(mr===0&&(mr=Qu()),Ut[fr]=Td(_e[fr])):Ut[fr]=_e[fr]}var ac=je.apply(null,Ut);return ac=Xe(ac),mr!==0&&kd(mr),ac}function ne(V,te,Ie,_e){Ie=Ie||[];var at=Ie.every(function(Xe){return Xe==="number"}),_t=te!=="string";return _t&&at&&!_e?K(V):function(){return X(V,te,Ie,arguments,_e)}}var J=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function se(V,te,Ie){for(var _e=te+Ie,at=te;V[at]&&!(at>=_e);)++at;if(at-te>16&&V.subarray&&J)return J.decode(V.subarray(te,at));for(var _t="";te>10,56320|mr&1023)}}return _t}function Q(V,te){return V?se(ye,V,te):""}function oe(V,te,Ie,_e){if(!(_e>0))return 0;for(var at=Ie,_t=Ie+_e-1,Xe=0;Xe=55296&&je<=57343){var Ut=V.charCodeAt(++Xe);je=65536+((je&1023)<<10)|Ut&1023}if(je<=127){if(Ie>=_t)break;te[Ie++]=je}else if(je<=2047){if(Ie+1>=_t)break;te[Ie++]=192|je>>6,te[Ie++]=128|je&63}else if(je<=65535){if(Ie+2>=_t)break;te[Ie++]=224|je>>12,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}else{if(Ie+3>=_t)break;te[Ie++]=240|je>>18,te[Ie++]=128|je>>12&63,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}}return te[Ie]=0,Ie-at}function ae(V,te,Ie){return oe(V,ye,te,Ie)}function pe(V,te){ge.set(V,te)}var ue,ge,ye,ke,Se,Ce,Re,Ke,Ve;function st(V){ue=V,s.HEAP8=ge=new Int8Array(V),s.HEAP16=ke=new Int16Array(V),s.HEAP32=Ce=new Int32Array(V),s.HEAPU8=ye=new Uint8Array(V),s.HEAPU16=Se=new Uint16Array(V),s.HEAPU32=Re=new Uint32Array(V),s.HEAPF32=Ke=new Float32Array(V),s.HEAPF64=Ve=new Float64Array(V)}var lt=s.INITIAL_MEMORY||16777216;function He(V){for(;V.length>0;){var te=V.shift();if(typeof te=="function"){te(s);continue}var Ie=te.func;typeof Ie=="number"?te.arg===void 0?s.dynCall_v(Ie):s.dynCall_vi(Ie,te.arg):Ie(te.arg===void 0?null:te.arg)}}var ct=[],pt=[],Hn=[],Je=[],_n=!1,en=!1;function En(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Wa(s.preRun.shift());He(ct)}function ra(){_n=!0,He(pt)}function vn(){He(Hn)}function un(){en=!0}function sa(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)An(s.postRun.shift());He(Je)}function Wa(V){ct.unshift(V)}function An(V){Je.unshift(V)}var wo=Math.ceil,Hu=Math.floor,ka=0,ia=null,Ia=null;function ko(V){ka++,s.monitorRunDependencies&&s.monitorRunDependencies(ka)}function Io(V){if(ka--,s.monitorRunDependencies&&s.monitorRunDependencies(ka),ka==0&&(ia!==null&&(clearInterval(ia),ia=null),Ia)){var te=Ia;Ia=null,te()}}s.preloadedImages={},s.preloadedAudios={};function Is(V){throw s.onAbort&&s.onAbort(V),V+="",C(V),$(V),G=!0,q=1,V="abort("+V+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(V)}function ju(V,te){return String.prototype.startsWith?V.startsWith(te):V.indexOf(te)===0}var Kf="data:application/octet-stream;base64,";function qu(V){return ju(V,Kf)}var id="file://";function Ku(V){return ju(V,id)}var oa="tfjs-backend-wasm.wasm";qu(oa)||(oa=g(oa));function od(){try{if(F)return new Uint8Array(F);if(v)return v(oa);throw"both async and sync fetching of the wasm failed"}catch(V){Is(V)}}function Xf(){return!F&&(p||d)&&typeof fetch=="function"&&!Ku(oa)?fetch(oa,{credentials:"same-origin"}).then(function(V){if(!V.ok)throw"failed to load wasm binary file at '"+oa+"'";return V.arrayBuffer()}).catch(function(){return od()}):new Promise(function(V,te){V(od())})}function Yf(){var V={env:hr,wasi_snapshot_preview1:hr};function te(Xe,je){var Ut=Xe.exports;s.asm=Ut,B=Ut.memory,st(B.buffer),Io("wasm-instantiate")}ko("wasm-instantiate");function Ie(Xe){te(Xe.instance)}function _e(Xe){return Xf().then(function(je){return WebAssembly.instantiate(je,V)}).then(Xe,function(je){$("failed to asynchronously prepare wasm: "+je),Is(je)})}function at(){if(!F&&typeof WebAssembly.instantiateStreaming=="function"&&!qu(oa)&&!Ku(oa)&&typeof fetch=="function")fetch(oa,{credentials:"same-origin"}).then(function(Xe){var je=WebAssembly.instantiateStreaming(Xe,V);return je.then(Ie,function(Ut){$("wasm streaming compile failed: "+Ut),$("falling back to ArrayBuffer instantiation"),_e(Ie)})});else return _e(Ie)}if(s.instantiateWasm)try{var _t=s.instantiateWasm(V,te);return _t}catch(Xe){return $("Module.instantiateWasm callback failed with error: "+Xe),!1}return at(),{}}pt.push();function Zf(V){st(B.buffer)}var Ns={splitPath:function(V){var te=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return te.exec(V).slice(1)},normalizeArray:function(V,te){for(var Ie=0,_e=V.length-1;_e>=0;_e--){var at=V[_e];at==="."?V.splice(_e,1):at===".."?(V.splice(_e,1),Ie++):Ie&&(V.splice(_e,1),Ie--)}if(te)for(;Ie;Ie--)V.unshift("..");return V},normalize:function(V){var te=V.charAt(0)==="/",Ie=V.substr(-1)==="/";return V=Ns.normalizeArray(V.split("/").filter(function(_e){return!!_e}),!te).join("/"),!V&&!te&&(V="."),V&&Ie&&(V+="/"),(te?"/":"")+V},dirname:function(V){var te=Ns.splitPath(V),Ie=te[0],_e=te[1];return!Ie&&!_e?".":(_e&&(_e=_e.substr(0,_e.length-1)),Ie+_e)},basename:function(V){if(V==="/")return"/";var te=V.lastIndexOf("/");return te===-1?V:V.substr(te+1)},extname:function(V){return Ns.splitPath(V)[3]},join:function(){var V=Array.prototype.slice.call(arguments,0);return Ns.normalize(V.join("/"))},join2:function(V,te){return Ns.normalize(V+"/"+te)}},No={mappings:{},buffers:[null,[],[]],printChar:function(V,te){var Ie=No.buffers[V];te===0||te===10?((V===1?C:$)(se(Ie,0)),Ie.length=0):Ie.push(te)},varargs:void 0,get:function(){No.varargs+=4;var V=Ce[No.varargs-4>>2];return V},getStr:function(V){var te=Q(V);return te},get64:function(V,te){return V}};function Jf(V){return 0}function dr(V,te,Ie,_e,at){}function Xu(V,te,Ie,_e){for(var at=0,_t=0;_t>2],je=Ce[te+(_t*8+4)>>2],Ut=0;Ut>2]=at,0}function Ts(V){Id(V)}function Qf(V){Ts(V)}function eg(V){return V=+V,V>=0?+Hu(V+.5):+wo(V-.5)}var hr={emscripten_notify_memory_growth:Zf,fd_close:Jf,fd_seek:dr,fd_write:Xu,proc_exit:Qf,roundf:eg},Yu=Yf();s.asm=Yu;var tg=s._init=function(){return(tg=s._init=s.asm.init).apply(null,arguments)},ld=s._register_tensor=function(){return(ld=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},ng=s._dispose_data=function(){return(ng=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},ud=s._dispose=function(){return(ud=s._dispose=s.asm.dispose).apply(null,arguments)},la=s._Abs=function(){return(la=s._Abs=s.asm.Abs).apply(null,arguments)},cd=s._Add=function(){return(cd=s._Add=s.asm.Add).apply(null,arguments)},ag=s._AddN=function(){return(ag=s._AddN=s.asm.AddN).apply(null,arguments)},rg=s._ArgMax=function(){return(rg=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},sg=s._AvgPool=function(){return(sg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},ig=s._BatchMatMul=function(){return(ig=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},pd=s._ClipByValue=function(){return(pd=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},dd=s._Conv2D=function(){return(dd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},hd=s._Conv2DBackpropInput=function(){return(hd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},To=s._Cos=function(){return(To=s._Cos=s.asm.Cos).apply(null,arguments)},Zu=s._CropAndResize=function(){return(Zu=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},So=s._Cumsum=function(){return(So=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Co=s._DepthToSpace=function(){return(Co=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},og=s._DepthwiseConv2dNative=function(){return(og=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},lg=s._Equal=function(){return(lg=s._Equal=s.asm.Equal).apply(null,arguments)},ug=s._Exp=function(){return(ug=s._Exp=s.asm.Exp).apply(null,arguments)},me=s._FlipLeftRight=function(){return(me=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},cg=s._Floor=function(){return(cg=s._Floor=s.asm.Floor).apply(null,arguments)},pg=s._FloorDiv=function(){return(pg=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},dg=s._FusedBatchNorm=function(){return(dg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},hg=s._FusedConv2D=function(){return(hg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Ss=s._FusedDepthwiseConv2D=function(){return(Ss=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},mg=s._Gather=function(){return(mg=s._Gather=s.asm.Gather).apply(null,arguments)},fg=s._GatherNd=function(){return(fg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},gg=s._Greater=function(){return(gg=s._Greater=s.asm.Greater).apply(null,arguments)},yg=s._GreaterEqual=function(){return(yg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},bg=s._LeakyRelu=function(){return(bg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},xg=s._Less=function(){return(xg=s._Less=s.asm.Less).apply(null,arguments)},vg=s._LessEqual=function(){return(vg=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},wg=s._Log=function(){return(wg=s._Log=s.asm.Log).apply(null,arguments)},kg=s._LogicalAnd=function(){return(kg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Ig=s._Max=function(){return(Ig=s._Max=s.asm.Max).apply(null,arguments)},Pr=s._MaxPool=function(){return(Pr=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Cs=s._Maximum=function(){return(Cs=s._Maximum=s.asm.Maximum).apply(null,arguments)},_o=s._Mean=function(){return(_o=s._Mean=s.asm.Mean).apply(null,arguments)},Ng=s._Min=function(){return(Ng=s._Min=s.asm.Min).apply(null,arguments)},Tg=s._Minimum=function(){return(Tg=s._Minimum=s.asm.Minimum).apply(null,arguments)},Sg=s._Multiply=function(){return(Sg=s._Multiply=s.asm.Multiply).apply(null,arguments)},Cg=s._Neg=function(){return(Cg=s._Neg=s.asm.Neg).apply(null,arguments)},Pe=s._NonMaxSuppressionV3=function(){return(Pe=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},_g=s._NonMaxSuppressionV4=function(){return(_g=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Eg=s._NonMaxSuppressionV5=function(){return(Eg=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Ag=s._NotEqual=function(){return(Ag=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},Fg=s._OneHot=function(){return(Fg=s._OneHot=s.asm.OneHot).apply(null,arguments)},$g=s._PadV2=function(){return($g=s._PadV2=s.asm.PadV2).apply(null,arguments)},Dg=s._Pow=function(){return(Dg=s._Pow=s.asm.Pow).apply(null,arguments)},Ju=s._Prelu=function(){return(Ju=s._Prelu=s.asm.Prelu).apply(null,arguments)},md=s._Prod=function(){return(md=s._Prod=s.asm.Prod).apply(null,arguments)},fd=s._RealDiv=function(){return(fd=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Rg=s._Relu=function(){return(Rg=s._Relu=s.asm.Relu).apply(null,arguments)},Mg=s._Relu6=function(){return(Mg=s._Relu6=s.asm.Relu6).apply(null,arguments)},Pg=s._ResizeBilinear=function(){return(Pg=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Og=s._Reverse=function(){return(Og=s._Reverse=s.asm.Reverse).apply(null,arguments)},Lg=s._RotateWithOffset=function(){return(Lg=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},zg=s._Round=function(){return(zg=s._Round=s.asm.Round).apply(null,arguments)},Be=s._Rsqrt=function(){return(Be=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Bg=s._ScatterNd=function(){return(Bg=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Wg=s._SelectV2=function(){return(Wg=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Vg=s._Sigmoid=function(){return(Vg=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},_s=s._Sin=function(){return(_s=s._Sin=s.asm.Sin).apply(null,arguments)},Eo=s._Softmax=function(){return(Eo=s._Softmax=s.asm.Softmax).apply(null,arguments)},gd=s._Sqrt=function(){return(gd=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},yd=s._Square=function(){return(yd=s._Square=s.asm.Square).apply(null,arguments)},bd=s._SquaredDifference=function(){return(bd=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Ug=s._Step=function(){return(Ug=s._Step=s.asm.Step).apply(null,arguments)},Gg=s._StridedSlice=function(){return(Gg=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},xd=s._Sub=function(){return(xd=s._Sub=s.asm.Sub).apply(null,arguments)},Hg=s._Sum=function(){return(Hg=s._Sum=s.asm.Sum).apply(null,arguments)},Va=s._Tanh=function(){return(Va=s._Tanh=s.asm.Tanh).apply(null,arguments)},jg=s._Tile=function(){return(jg=s._Tile=s.asm.Tile).apply(null,arguments)},qg=s._TopK=function(){return(qg=s._TopK=s.asm.TopK).apply(null,arguments)},vd=s._Transpose=function(){return(vd=s._Transpose=s.asm.Transpose).apply(null,arguments)},Or=s.__FusedMatMul=function(){return(Or=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Kg=s._malloc=function(){return(Kg=s._malloc=s.asm.malloc).apply(null,arguments)},Xg=s._free=function(){return(Xg=s._free=s.asm.free).apply(null,arguments)},wd=s.__start=function(){return(wd=s.__start=s.asm._start).apply(null,arguments)},Qu=s.stackSave=function(){return(Qu=s.stackSave=s.asm.stackSave).apply(null,arguments)},ec=s.stackAlloc=function(){return(ec=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},kd=s.stackRestore=function(){return(kd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)};s.asm=Yu,s.cwrap=ne;var Es;s.then=function(V){if(Es)V(s);else{var te=s.onRuntimeInitialized;s.onRuntimeInitialized=function(){te&&te(),V(s)}}return s};function tc(V){this.name="ExitStatus",this.message="Program terminated with exit("+V+")",this.status=V}var Yg=!1;Ia=function V(){Es||nc(),Es||(Ia=V)};function Zg(V){var te=s.__start;try{te();var Ie=0;Id(Ie,!0)}catch(at){if(at instanceof tc)return;if(at=="unwind"){O=!0;return}else{var _e=at;at&&typeof at=="object"&&at.stack&&(_e=[at,at.stack]),$("exception thrown: "+_e),u(1,at)}}finally{Yg=!0}}function nc(V){if(V=V||l,ka>0||(En(),ka>0))return;function te(){Es||(Es=!0,s.calledRun=!0,!G&&(ra(),vn(),s.onRuntimeInitialized&&s.onRuntimeInitialized(),Nd&&Zg(V),sa()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),te()},1)):te()}s.run=nc;function Id(V,te){te&&O&&V===0||(O||(G=!0,q=V,un(),s.onExit&&s.onExit(V)),u(V,new tc(V)))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();var Nd=!0;return s.noInitialRun&&(Nd=!1),O=!0,nc(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),YE=1e-7,ZE=1e-4,Fd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},dc=class{decComplexRef(e){}time(e){return Ua("time")}read(e){return Ua("read")}readSync(e){return Ua("readSync")}numDataIds(){return Ua("numDataIds")}disposeData(e){return Ua("disposeData")}write(e,t,n){return Ua("write")}move(e,t,n,a){return Ua("move")}memory(){return Ua("memory")}floatPrecision(){return Ua("floatPrecision")}epsilon(){return this.floatPrecision()===32?YE:ZE}dispose(){return Ua("dispose")}};function Ua(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function Qw(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function JE(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function hc(e,t,n){return Math.max(e,Math.min(t,n))}function QE(e){return e%2==0?e:e+1}function eA(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function As(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Fs(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||on(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function lA(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function ua(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>Gt(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function e0(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:ua(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function t0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function n0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function a0(e,t){for(let n=0;nt+=n.length),t}function Br(e){return typeof e=="string"||e instanceof String}function o0(e){return typeof e=="boolean"}function l0(e){return typeof e=="number"}function $d(e){return Array.isArray(e)?$d(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":l0(e)?"float32":Br(e)?"string":o0(e)?"bool":"float32"}function Wr(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Dd(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function u0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return u0(0,e,t)}function ay(e,t){let n=Rd(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Po(e,new Float32Array(n));if(t==="int32")return Po(e,new Int32Array(n));if(t==="bool")return Po(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ry(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function pA(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=mA(n,a)})}};function hA(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(fA(t,a[0],a[1]),a.join("="))),t}function fA(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function mA(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ee(){return iy}var iy=null;function gA(e){iy=e}var oy;function d0(){if(oy==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");oy=e}return oy}function yA(){let e=d0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function ly(e,t){let n=yA();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Oo="Abs",Lo="Acos",zo="Acosh",Vr="Add",$s="AddN",Md="All",Pd="Any",Ds="ArgMax",fc="ArgMin",Bo="Asin",Wo="Asinh",Vo="Atan",Uo="Atanh",Go="Atan2",Rs="AvgPool",Od="AvgPoolGrad",gc="AvgPool3D",Ld="AvgPool3DGrad",Ms="BatchMatMul",yc="BatchToSpaceND",zd="Bincount",h0="BroadcastTo",Ps="Cast",Ho="Ceil",Ur="ClipByValue",Bd="Complex",bc="ComplexAbs",jo="Concat",Os="Conv2D",Wd="Conv2DBackpropFilter",Ls="Conv2DBackpropInput",xc="Conv3D",Vd="Conv3DBackpropFilterV2",Ud="Conv3DBackpropInputV2",zs="Cos",qo="Cosh",Bs="Cumsum",Ko="CropAndResize",Gd="DenseBincount",Xo="DepthToSpace",Ws="DepthwiseConv2dNative",Hd="DepthwiseConv2dNativeBackpropFilter",jd="DepthwiseConv2dNativeBackpropInput",qd="Diag",vc="Dilation2D",Kd="Dilation2DBackpropInput",Xd="Dilation2DBackpropFilter",Vs="RealDiv",Yo="Elu",Yd="EluGrad",Zo="Erf",Jo="Equal",Us="Exp",Qo="ExpandDims",el="Expm1",Zd="FFT",wc="Fill",tl="FlipLeftRight",Gs="Floor",Hs="FloorDiv",js="FusedBatchNorm",nl="GatherV2",al="GatherNd",rl="Greater",qs="GreaterEqual",sl="Identity",Jd="IFFT",Qd="Imag",il="IsFinite",ol="IsInf",ll="IsNan",Ks="LeakyRelu",ul="Less",cl="LessEqual",eh="LinSpace",Xs="Log",pl="Log1p",dl="LogicalAnd",kc="LogicalNot",Ic="LogicalOr",m0="LogSoftmax",Nc="LRN",th="LRNGrad",Ys="Max",Zs="Maximum",Js="MaxPool",nh="MaxPoolGrad",Tc="MaxPool3D",ah="MaxPool3DGrad",rh="MaxPoolWithArgmax",Qs="Mean",ei="Min",ti="Minimum",Sc="MirrorPad",hl="Mod",sh="Multinomial",ni="Multiply",ml="Neg",fl="NotEqual",gl="NonMaxSuppressionV3",yl="NonMaxSuppressionV4",bl="NonMaxSuppressionV5",xl="OnesLike",ai="OneHot",vl="Pack",ri="PadV2",bA="Pool",si="Pow",ii="Prelu",wl="Prod",Cc="Range",ih="Real",kl="Reciprocal",oi="Relu",Il="Reshape",_c="ResizeNearestNeighbor",oh="ResizeNearestNeighborGrad",li="ResizeBilinear",lh="ResizeBilinearGrad",ui="Relu6",ci="Reverse",pi="Round",di="Rsqrt",Nl="ScatterNd",Tl="Select",Sl="Selu",Cl="Slice",hi="Sin",_l="Sinh",El="Sign",mi="Sigmoid",Al="Softplus",fi="Sqrt",gi="Sum",Ec="SpaceToBatchND",Fl="SplitV",yi="Softmax",bi="SquaredDifference",Ac="Square",xi="Sub",uh="SparseToDense",$l="StridedSlice",Dl="Tan",vi="Tanh",Gr="Tile",Rl="TopK",wi="Transpose",ch="Unique",Ml="Unpack",Fc="UnsortedSegmentSum",Pl="ZerosLike",Hr="Step",ph="FromPixels",Ol="RotateWithOffset",ki="_FusedMatMul",Ii="FusedConv2D",Ni="FusedDepthwiseConv2D",Ll=ly("kernelRegistry",()=>new Map),$c=ly("gradRegistry",()=>new Map);function dh(e,t){let n=uy(e,t);return Ll.get(n)}function cy(e){return $c.get(e)}function hh(e){let t=Ll.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function Dc(e){let{kernelName:t,backendName:n}=e,a=uy(t,n);Ll.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Ll.set(a,e)}function f0(e){let{kernelName:t}=e;$c.has(t)&&ee().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),$c.set(t,e)}function xA(e,t){let n=uy(e,t);if(!Ll.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ll.delete(n)}function vA(e){if(!$c.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);$c.delete(e)}function wA(e,t){hh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Dc(a)})}function uy(e,t){return`${t}_${e}`}var k={};Oe(k,{arraysEqual:()=>gr,assert:()=>A,assertNonNegativeIntegerDimensions:()=>ry,assertNonNull:()=>As,assertShapesMatch:()=>sn,bytesFromStringArray:()=>i0,bytesPerElement:()=>s0,checkConversionForErrors:()=>a0,clamp:()=>hc,computeStrides:()=>Mo,createScalarValue:()=>kA,createShuffledIndices:()=>iA,decodeString:()=>fh,distSquared:()=>nA,encodeString:()=>Rc,fetch:()=>IA,flatten:()=>Fs,getArrayFromDType:()=>n0,getTypedArrayFromDType:()=>t0,hasEncodingLoss:()=>uA,indexToLoc:()=>dA,inferDtype:()=>$d,inferFromImplicitShape:()=>lA,isBoolean:()=>o0,isFunction:()=>Wr,isInt:()=>Gt,isNumber:()=>l0,isPromise:()=>sy,isScalarShape:()=>aA,isString:()=>Br,isTypedArray:()=>on,isValidDtype:()=>r0,locToIndex:()=>pA,makeOnesTypedArray:()=>ay,makeZerosNestedTypedArray:()=>cA,makeZerosTypedArray:()=>Rd,nearestDivisor:()=>Dd,nearestLargerEven:()=>QE,now:()=>py,parseAxisParam:()=>ua,randUniform:()=>tA,repeatedTry:()=>oA,rightPad:()=>mc,shuffle:()=>Qw,shuffleCombo:()=>JE,sizeFromShape:()=>Pt,sizeToSquarishShape:()=>sA,squeezeShape:()=>e0,sum:()=>eA,tanh:()=>rA,toNestedArray:()=>Po,toTypedArray:()=>mh});function kA(e,t){return t==="string"?Rc(e):mh([e],t)}function NA(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function mh(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Fs(e)),ee().getBool("DEBUG")&&a0(e,t),NA(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s=this.backendTimer.time(r);if(ee().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let i=0;i{TA(l,o.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(i=>i.kernelMs),extraInfo:s.then(i=>i.getExtraProfileInfo!=null?i.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function TA(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${u} %c${c} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function _A(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[c.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let c=e[l],u=c.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let c=e[l.id];c!=null?i.push(c):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let c=n(()=>o[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);let u=s.inputs[l];if(!gr(c.shape,u.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${u.shape}'`);if(e[u.id]==null)e[u.id]=c;else{let p=e[u.id];e[u.id]=a(p,c),p.dispose()}}}}var g0=20,Mc=3,dy=7;function FA(e,t,n,a){let r=Mo(t),s=AA(e,t,n,r),i=t.length,o=gh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(c=>" "+c).join(` +var faceapi=(()=>{var CE=Object.create,Ad=Object.defineProperty,_E=Object.getPrototypeOf,EE=Object.prototype.hasOwnProperty,AE=Object.getOwnPropertyNames,FE=Object.getOwnPropertyDescriptor;var r0=e=>Ad(e,"__esModule",{value:!0});var $E=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),uc=(e,t)=>{for(var n in t)Ad(e,n,{get:t[n],enumerable:!0})},DE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of AE(t))!EE.call(e,a)&&a!=="default"&&Ad(e,a,{get:()=>t[a],enumerable:!(n=FE(t,a))||n.enumerable});return e},RE=e=>e&&e.__esModule?e:DE(r0(Ad(e!=null?CE(_E(e)):{},"default",{value:e,enumerable:!0})),e);var rC=$E((Vre,aC)=>{r0(Vre);uc(Vre,{isNodejs:()=>Ure});function Ure(){return typeof global=="object"&&!0&&typeof aC!="undefined"&&typeof process!="undefined"&&!!process.version}});var cse={};uc(cse,{AgeGenderNet:()=>Hp,BoundingBox:()=>ro,Box:()=>ot,ComposableTask:()=>aa,ComputeAllFaceDescriptorsTask:()=>Mr,ComputeFaceDescriptorsTaskBase:()=>Qp,ComputeSingleFaceDescriptorTask:()=>Pr,DetectAllFaceLandmarksTask:()=>td,DetectAllFacesTask:()=>Gu,DetectFaceLandmarksTaskBase:()=>ed,DetectFacesTaskBase:()=>ad,DetectSingleFaceLandmarksTask:()=>nd,DetectSingleFaceTask:()=>rd,Dimensions:()=>ln,FACE_EXPRESSION_LABELS:()=>Gf,FaceDetection:()=>yt,FaceDetectionNet:()=>zw,FaceExpressionNet:()=>Up,FaceExpressions:()=>$r,FaceLandmark68Net:()=>ho,FaceLandmark68TinyNet:()=>qp,FaceLandmarkNet:()=>Mw,FaceLandmarks:()=>Un,FaceLandmarks5:()=>ww,FaceLandmarks68:()=>io,FaceMatch:()=>Au,FaceMatcher:()=>id,FaceRecognitionNet:()=>mo,Gender:()=>dr,LabeledBox:()=>Fu,LabeledFaceDescriptors:()=>ur,NetInput:()=>pr,NeuralNetwork:()=>Qt,ObjectDetection:()=>Fr,Point:()=>De,PredictedBox:()=>kw,Rect:()=>so,SsdMobilenetv1:()=>ks,SsdMobilenetv1Options:()=>na,TinyFaceDetector:()=>bo,TinyFaceDetectorOptions:()=>Jp,TinyYolov2:()=>go,TinyYolov2Options:()=>Wa,allFaces:()=>c_,allFacesSsdMobilenetv1:()=>jw,allFacesTinyYolov2:()=>u_,awaitMediaLoaded:()=>Af,bufferToImage:()=>Ff,computeFaceDescriptor:()=>XC,createCanvas:()=>oo,createCanvasFromMedia:()=>Du,createFaceDetectionNet:()=>DC,createFaceRecognitionNet:()=>NC,createSsdMobilenetv1:()=>Lw,createTinyFaceDetector:()=>p_,createTinyYolov2:()=>VC,detectAllFaces:()=>sd,detectFaceLandmarks:()=>Vw,detectFaceLandmarksTiny:()=>KC,detectLandmarks:()=>o_,detectSingleFace:()=>l_,draw:()=>jf,env:()=>rt,euclideanDistance:()=>Yf,extendWithAge:()=>Yp,extendWithFaceDescriptor:()=>Xp,extendWithFaceDetection:()=>gs,extendWithFaceExpressions:()=>Gp,extendWithFaceLandmarks:()=>po,extendWithGender:()=>Zp,extractFaceTensors:()=>uo,extractFaces:()=>lo,fetchImage:()=>sC,fetchJson:()=>Rf,fetchNetWeights:()=>iC,fetchOrThrow:()=>vs,getContext2dOrThrow:()=>yn,getMediaDimensions:()=>xs,imageTensorToCanvas:()=>$f,imageToSquare:()=>Df,inverseSigmoid:()=>nC,iou:()=>Nf,isMediaElement:()=>Lp,isMediaLoaded:()=>$u,isWithAge:()=>TC,isWithFaceDetection:()=>za,isWithFaceExpressions:()=>Hf,isWithFaceLandmarks:()=>ws,isWithGender:()=>SC,loadAgeGenderModel:()=>r_,loadFaceDetectionModel:()=>s_,loadFaceExpressionModel:()=>a_,loadFaceLandmarkModel:()=>e_,loadFaceLandmarkTinyModel:()=>t_,loadFaceRecognitionModel:()=>n_,loadSsdMobilenetv1Model:()=>Uw,loadTinyFaceDetectorModel:()=>JC,loadTinyYolov2Model:()=>QC,loadWeightMap:()=>Pf,locateFaces:()=>i_,matchDimensions:()=>oC,minBbox:()=>Tf,nets:()=>et,nonMaxSuppression:()=>Sf,normalize:()=>wa,padToSquare:()=>Cf,predictAgeAndGender:()=>ZC,recognizeFaceExpressions:()=>YC,resizeResults:()=>qw,resolveInput:()=>ys,shuffleArray:()=>tC,sigmoid:()=>Eu,ssdMobilenetv1:()=>Ww,tf:()=>Fd,tinyFaceDetector:()=>jC,tinyYolov2:()=>qC,toNetInput:()=>gt,utils:()=>wf,validateConfig:()=>Xf,version:()=>d_});var Fd={};uc(Fd,{Abs:()=>zo,Acos:()=>Bo,Acosh:()=>Wo,AdadeltaOptimizer:()=>sm,AdagradOptimizer:()=>im,AdamOptimizer:()=>om,AdamaxOptimizer:()=>lm,Add:()=>Ur,AddN:()=>$s,All:()=>Ld,Any:()=>zd,ArgMax:()=>Ds,ArgMin:()=>mc,Asin:()=>Vo,Asinh:()=>Uo,Atan:()=>Go,Atan2:()=>jo,Atanh:()=>Ho,AvgPool:()=>Rs,AvgPool3D:()=>fc,AvgPool3DGrad:()=>Wd,AvgPoolGrad:()=>Bd,BackendWasm:()=>Q2,BatchMatMul:()=>Ms,BatchToSpaceND:()=>gc,Bincount:()=>Vd,BroadcastTo:()=>b0,Callback:()=>JI,CallbackList:()=>Yk,Cast:()=>Ps,Ceil:()=>Os,ClipByValue:()=>Gr,Complex:()=>Ud,ComplexAbs:()=>yc,Concat:()=>qo,Conv2D:()=>Ls,Conv2DBackpropFilter:()=>Gd,Conv2DBackpropInput:()=>zs,Conv3D:()=>bc,Conv3DBackpropFilterV2:()=>Hd,Conv3DBackpropInputV2:()=>jd,Cos:()=>Bs,Cosh:()=>Ko,CropAndResize:()=>Xo,Cumsum:()=>Ws,CustomCallback:()=>Jk,DataStorage:()=>Rd,DenseBincount:()=>qd,DepthToSpace:()=>Yo,DepthwiseConv2dNative:()=>Vs,DepthwiseConv2dNativeBackpropFilter:()=>Kd,DepthwiseConv2dNativeBackpropInput:()=>Xd,Diag:()=>Yd,Dilation2D:()=>xc,Dilation2DBackpropFilter:()=>Jd,Dilation2DBackpropInput:()=>Zd,ENV:()=>cy,EarlyStopping:()=>eN,Elu:()=>Zo,EluGrad:()=>Qd,Environment:()=>g0,Equal:()=>Qo,Erf:()=>Jo,Exp:()=>Gs,ExpandDims:()=>el,Expm1:()=>tl,FFT:()=>eh,Fill:()=>vc,FlipLeftRight:()=>nl,Floor:()=>Hs,FloorDiv:()=>js,FromPixels:()=>mh,FusedBatchNorm:()=>qs,FusedConv2D:()=>Ti,FusedDepthwiseConv2D:()=>Si,GatherNd:()=>rl,GatherV2:()=>al,GraphModel:()=>AN,Greater:()=>sl,GreaterEqual:()=>Ks,History:()=>Zk,IFFT:()=>th,Identity:()=>Xs,Imag:()=>nh,InputSpec:()=>Xt,IsFinite:()=>il,IsInf:()=>ol,IsNan:()=>ll,KernelBackend:()=>pc,LRN:()=>Ic,LRNGrad:()=>rh,LayerVariable:()=>Hk,LayersModel:()=>Tr,LeakyRelu:()=>Ys,Less:()=>ul,LessEqual:()=>cl,LinSpace:()=>ah,Log:()=>Zs,Log1p:()=>pl,LogSoftmax:()=>x0,LogicalAnd:()=>dl,LogicalNot:()=>wc,LogicalOr:()=>kc,Max:()=>Js,MaxPool:()=>ei,MaxPool3D:()=>Nc,MaxPool3DGrad:()=>ih,MaxPoolGrad:()=>sh,MaxPoolWithArgmax:()=>oh,Maximum:()=>Qs,Mean:()=>ti,Min:()=>ni,Minimum:()=>ai,MirrorPad:()=>Tc,Mod:()=>hl,MomentumOptimizer:()=>um,Multinomial:()=>lh,Multiply:()=>ri,Neg:()=>ml,NonMaxSuppressionV3:()=>gl,NonMaxSuppressionV4:()=>yl,NonMaxSuppressionV5:()=>bl,NotEqual:()=>fl,OP_SCOPE_SUFFIX:()=>A0,OneHot:()=>si,OnesLike:()=>xl,Optimizer:()=>kr,Pack:()=>vl,PadV2:()=>ii,Pool:()=>NA,Pow:()=>oi,Prelu:()=>li,Prod:()=>wl,RMSPropOptimizer:()=>cm,RNN:()=>rr,Range:()=>Sc,Rank:()=>yy,Real:()=>uh,RealDiv:()=>Us,Reciprocal:()=>kl,Reduction:()=>hn,Relu:()=>ui,Relu6:()=>pi,Reshape:()=>Il,ResizeBilinear:()=>ci,ResizeBilinearGrad:()=>ph,ResizeNearestNeighbor:()=>Cc,ResizeNearestNeighborGrad:()=>ch,Reverse:()=>di,RotateWithOffset:()=>Ol,Round:()=>hi,Rsqrt:()=>mi,SGDOptimizer:()=>tp,ScatterNd:()=>Nl,Select:()=>Tl,Selu:()=>Sl,Sequential:()=>lu,Sigmoid:()=>gi,Sign:()=>El,Sin:()=>fi,Sinh:()=>_l,Slice:()=>Cl,Softmax:()=>xi,Softplus:()=>Al,SpaceToBatchND:()=>_c,SparseToDense:()=>dh,SplitV:()=>Fl,Sqrt:()=>yi,Square:()=>Ec,SquaredDifference:()=>vi,Step:()=>jr,StridedSlice:()=>$l,Sub:()=>wi,Sum:()=>bi,SymbolicTensor:()=>$a,Tan:()=>Dl,Tanh:()=>ki,Tensor:()=>Ae,TensorBuffer:()=>Ot,Tile:()=>Hr,TopK:()=>Rl,Transpose:()=>Ii,Unique:()=>hh,Unpack:()=>Ml,UnsortedSegmentSum:()=>Ac,Variable:()=>qr,ZerosLike:()=>Pl,_FusedMatMul:()=>Ni,abs:()=>Lt,acos:()=>Vy,acosh:()=>Uy,add:()=>Z,addN:()=>d1,all:()=>Eh,any:()=>Wc,argMax:()=>Vc,argMin:()=>Gy,asin:()=>Hy,asinh:()=>jy,atan:()=>qy,atan2:()=>Ky,atanh:()=>Xy,avgPool:()=>Yn,avgPool3d:()=>Jy,backend:()=>p1,backend_util:()=>_,basicLSTMCell:()=>Q$,batchNorm:()=>xr,batchNorm2d:()=>g1,batchNorm3d:()=>y1,batchNorm4d:()=>b1,batchToSpaceND:()=>Gc,bincount:()=>x1,booleanMaskAsync:()=>aP,broadcastTo:()=>Hc,browser:()=>Ai,buffer:()=>Le,callbacks:()=>H4,cast:()=>ce,ceil:()=>Qy,clipByValue:()=>qt,clone:()=>Zr,complex:()=>Kr,concat:()=>Qe,concat1d:()=>v1,concat2d:()=>w1,concat3d:()=>k1,concat4d:()=>I1,constraints:()=>bk,conv1d:()=>Fh,conv2d:()=>At,conv2dTranspose:()=>$h,conv3d:()=>tb,conv3dTranspose:()=>wD,copyRegisteredKernels:()=>CA,cos:()=>jc,cosh:()=>Dh,cosineWindow:()=>Cb,cumsum:()=>Rh,customGrad:()=>Ya,data:()=>$N,denseBincount:()=>T1,deprecationWarn:()=>Wy,depthToSpace:()=>nb,depthwiseConv2d:()=>es,deregisterOp:()=>q4,device_util:()=>wh,diag:()=>ED,dilation2d:()=>ab,disableDeprecationWarnings:()=>p$,dispose:()=>Fe,disposeVariables:()=>d$,div:()=>ve,divNoNan:()=>rb,dot:()=>S1,dropout:()=>q1,elu:()=>ql,enableDebugMode:()=>c$,enableProdMode:()=>u$,enclosingPowerOfTwo:()=>K1,engine:()=>qa,env:()=>ee,equal:()=>ts,erf:()=>sb,exp:()=>dn,expandDims:()=>$n,expm1:()=>ib,eye:()=>ob,fft:()=>Qc,fill:()=>kn,findBackend:()=>x$,findBackendFactory:()=>v$,floor:()=>Kl,floorDiv:()=>_h,fused:()=>rs,gather:()=>Di,gatherND:()=>j1,gather_util:()=>Ry,getBackend:()=>y$,getGradient:()=>my,getKernel:()=>fh,getKernelsForBackend:()=>gh,grad:()=>rR,grads:()=>sR,greater:()=>ha,greaterEqual:()=>ns,ifft:()=>eu,imag:()=>Mh,image:()=>Qa,inTopKAsync:()=>mP,initializers:()=>Tk,input:()=>Lk,io:()=>Ht,irfft:()=>Yh,isFinite:()=>C1,isInf:()=>_1,isNaN:()=>E1,keep:()=>jt,kernel_impls:()=>er,layers:()=>Ok,leakyRelu:()=>qc,less:()=>Ph,lessEqual:()=>Ri,linalg:()=>ik,linspace:()=>A1,loadGraphModel:()=>jV,loadLayersModel:()=>p4,localResponseNormalization:()=>lb,log:()=>Dn,log1p:()=>Oh,logSigmoid:()=>$1,logSoftmax:()=>zh,logSumExp:()=>pb,logicalAnd:()=>ma,logicalNot:()=>Kc,logicalOr:()=>Bh,logicalXor:()=>P1,losses:()=>EO,matMul:()=>ze,math:()=>j0,max:()=>Zn,maxPool:()=>Ft,maxPool3d:()=>db,maxPoolWithArgmax:()=>O1,maximum:()=>Za,mean:()=>St,memory:()=>Sh,metrics:()=>XI,min:()=>Yl,minimum:()=>Zl,mirrorPad:()=>hb,mod:()=>mb,model:()=>u4,models:()=>YI,moments:()=>Wh,movingAverage:()=>iP,mul:()=>L,multiRNNCell:()=>RR,multinomial:()=>L1,neg:()=>Tt,nextFrame:()=>pm,norm:()=>em,notEqual:()=>Pi,oneHot:()=>Ul,ones:()=>Ja,onesLike:()=>Rn,op:()=>O,outerProduct:()=>zR,pad:()=>Jn,pad1d:()=>VR,pad2d:()=>GR,pad3d:()=>jR,pad4d:()=>KR,pool:()=>z1,pow:()=>vr,prelu:()=>Yc,print:()=>B0,prod:()=>Vh,profile:()=>h$,rand:()=>aM,randomGamma:()=>oM,randomNormal:()=>B1,randomUniform:()=>Jl,range:()=>Uh,ready:()=>g$,real:()=>Zc,reciprocal:()=>yb,registerBackend:()=>Ch,registerCallbackConstructor:()=>d4,registerGradient:()=>v0,registerKernel:()=>$c,registerOp:()=>j4,regularizers:()=>ZI,relu:()=>Ye,relu6:()=>Gh,removeBackend:()=>b$,reshape:()=>H,reverse:()=>Mn,reverse1d:()=>gM,reverse2d:()=>bM,reverse3d:()=>vM,reverse4d:()=>kM,rfft:()=>ep,round:()=>bb,rsqrt:()=>Hh,scalar:()=>de,scatterND:()=>H1,scatter_util:()=>My,selu:()=>jh,separableConv2d:()=>Oi,sequential:()=>c4,serialization:()=>re,setBackend:()=>f$,setPlatform:()=>w$,setWasmPath:()=>Rre,setWasmPaths:()=>Mre,setdiff1dAsync:()=>W1,sigmoid:()=>da,sign:()=>xb,signal:()=>_O,sin:()=>qh,sinh:()=>Kh,slice:()=>We,slice1d:()=>Xh,slice2d:()=>vb,slice3d:()=>Ql,slice4d:()=>Jc,slice_util:()=>pn,softmax:()=>Sa,softplus:()=>Xl,spaceToBatchND:()=>Xc,sparseToDense:()=>Sb,spectral:()=>CO,split:()=>Pn,sqrt:()=>tn,square:()=>ut,squaredDifference:()=>Zh,squeeze:()=>as,stack:()=>$t,step:()=>tu,stridedSlice:()=>wb,sub:()=>fe,sum:()=>Te,sumOutType:()=>vh,tan:()=>kb,tanh:()=>jl,tensor:()=>Kn,tensor1d:()=>nt,tensor2d:()=>Ca,tensor3d:()=>Nh,tensor4d:()=>_a,tensor5d:()=>KM,tensor6d:()=>XM,tensor_util:()=>Ta,test_util:()=>o1,tidy:()=>D,tile:()=>Xa,time:()=>m$,topk:()=>Ib,train:()=>zi,transpose:()=>Ue,truncatedNormal:()=>Jh,unique:()=>Qh,unregisterGradient:()=>SA,unregisterKernel:()=>TA,unsortedSegmentSum:()=>Nb,unstack:()=>dt,upcastType:()=>pa,util:()=>k,valueAndGrad:()=>iR,valueAndGrads:()=>oR,variable:()=>V1,variableGrads:()=>F1,version:()=>Vee,version_converter:()=>FN,version_core:()=>c1,version_layers:()=>Mm,version_wasm:()=>Pre,where:()=>wn,whereAsync:()=>Tb,zeros:()=>vt,zerosLike:()=>Ge});var ME=Object.create,$d=Object.defineProperty,PE=Object.getPrototypeOf,OE=Object.prototype.hasOwnProperty,LE=Object.getOwnPropertyNames,zE=Object.getOwnPropertyDescriptor,BE=e=>$d(e,"__esModule",{value:!0}),cn=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Oe=(e,t)=>{for(var n in t)$d(e,n,{get:t[n],enumerable:!0})},WE=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of LE(t))!OE.call(e,a)&&a!=="default"&&$d(e,a,{get:()=>t[a],enumerable:!(n=zE(t,a))||n.enumerable});return e},Po=e=>e&&e.__esModule?e:WE(BE($d(e!=null?ME(PE(e)):{},"default",{value:e,enumerable:!0})),e),VE=cn(()=>{}),UE=cn((e,t)=>{(function(n,a,r){function s(c){var u=this,p=l();u.next=function(){var d=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=d-(u.c=d|0)},u.c=1,u.s0=p(" "),u.s1=p(" "),u.s2=p(" "),u.s0-=p(c),u.s0<0&&(u.s0+=1),u.s1-=p(c),u.s1<0&&(u.s1+=1),u.s2-=p(c),u.s2<0&&(u.s2+=1),p=null}function i(c,u){return u.c=c.c,u.s0=c.s0,u.s1=c.s1,u.s2=c.s2,u}function o(c,u){var p=new s(c),d=u&&u.state,h=p.next;return h.int32=function(){return p.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,d&&(typeof d=="object"&&i(d,p),h.state=function(){return i(p,{})}),h}function l(){var c=4022871197,u=function(p){p=p.toString();for(var d=0;d>>0,h-=c,h*=c,c=h>>>0,h-=c,c+=h*4294967296}return(c>>>0)*23283064365386963e-26};return u}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),GE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var d=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^d^d>>>8},l===(l|0)?c.x=l:u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),HE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(d^d<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,l===(l|0)?c.x=l:u+=l;for(var p=0;p>>4),c.next()}function i(l,c){return c.x=l.x,c.y=l.y,c.z=l.z,c.w=l.w,c.v=l.v,c.d=l.d,c}function o(l,c){var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),jE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.x,d=c.i,h,m,f;return h=p[d],h^=h>>>7,m=h^h<<24,h=p[d+1&7],m^=h^h>>>10,h=p[d+3&7],m^=h^h>>>3,h=p[d+4&7],m^=h^h<<7,h=p[d+7&7],h=h^h<<13,m^=h^h<<9,p[d]=m,c.i=d+1&7,m};function u(p,d){var h,m,f=[];if(d===(d|0))m=f[0]=d;else for(d=""+d,h=0;h0;--h)p.next()}u(c,l)}function i(l,c){return c.x=l.x.slice(),c.i=l.i,c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.x&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),qE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this;c.next=function(){var p=c.w,d=c.X,h=c.i,m,f;return c.w=p=p+1640531527|0,f=d[h+34&127],m=d[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=d[h]=f^m,c.i=h,f+(p^p>>>16)|0};function u(p,d){var h,m,f,g,y,b=[],v=128;for(d===(d|0)?(m=d,d=null):(d=d+"\0",m=0,v=Math.max(v,d.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(d&&d.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;p.w=y,p.X=b,p.i=f}u(c,l)}function i(l,c){return c.i=l.i,c.w=l.w,c.X=l.X.slice(),c}function o(l,c){l==null&&(l=+new Date);var u=new s(l),p=c&&c.state,d=function(){return(u.next()>>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(p.X&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),KE=cn((e,t)=>{(function(n,a,r){function s(l){var c=this,u="";c.next=function(){var d=c.b,h=c.c,m=c.d,f=c.a;return d=d<<25^d>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-d|0,c.b=d=d<<20^d>>>12^h,c.c=h=h-m|0,c.d=m<<16^h>>>16^f,c.a=f-d|0},c.a=0,c.b=0,c.c=2654435769|0,c.d=1367130551,l===Math.floor(l)?(c.a=l/4294967296|0,c.b=l|0):u+=l;for(var p=0;p>>0)/4294967296};return d.double=function(){do var h=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},d.int32=u.next,d.quick=d,p&&(typeof p=="object"&&i(p,u),d.state=function(){return i(u,{})}),d}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),XE=cn(()=>{}),YE=cn((e,t)=>{(function(n,a){var r=this,s=256,i=6,o=52,l="random",c=a.pow(s,i),u=a.pow(2,o),p=u*2,d=s-1,h;function m(N,T,C){var F=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[N,x(n)]:N==null?v():N,3),F),P=new f(F),B=function(){for(var W=P.g(i),G=c,q=0;W=p;)W/=2,G/=2,q>>>=1;return(W+q)/G};return B.int32=function(){return P.g(4)|0},B.quick=function(){return P.g(4)/4294967296},B.double=B,b(x(P.S),n),(T.pass||C||function(W,G,q,j){return j&&(j.S&&g(j,P),W.state=function(){return g(P,{})}),q?(a[l]=W,G):W})(B,$,"global"in T?T.global:this==a,T.state)}a["seed"+l]=m;function f(N){var T,C=N.length,F=this,$=0,P=F.i=F.j=0,B=F.S=[];for(C||(N=[C++]);${var n=UE(),a=GE(),r=HE(),s=jE(),i=qE(),o=KE(),l=YE();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),ZE=cn(()=>{}),cc=cn(()=>{}),JE=cn(()=>{}),QE=cn(()=>{}),eA=cn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return Q.buffer!=Je&&Fn(Q.buffer),En}function i(){return Q.buffer!=Je&&Fn(Q.buffer),en}function o(){return Q.buffer!=Je&&Fn(Q.buffer),vn}function l(){return Q.buffer!=Je&&Fn(Q.buffer),un}function c(){return Q.buffer!=Je&&Fn(Q.buffer),Va}var u=typeof r!="undefined"?r:{},p={},d;for(d in u)u.hasOwnProperty(d)&&(p[d]=u[d]);var h=[],m="./this.program",f=function(w,S){throw S},g=!1,y=!1,b=!1,v=!1;g=typeof window=="object",y=typeof importScripts=="function",b=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v=!g&&!b&&!y;var x=u.ENVIRONMENT_IS_PTHREAD||!1;x&&(Je=u.buffer,ia=u.DYNAMIC_BASE,Na=u.DYNAMICTOP_PTR);var N="";function T(w){return u.locateFile?u.locateFile(w,N):N+w}var C,F,$,P,B,W;if(b){y?N=cc().dirname(N)+"/":N=__dirname+"/",C=function(w,S){return B||(B=require("fs")),W||(W=cc()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},$=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S},process.argv.length>1&&(m=process.argv[1].replace(/\\/g,"/")),h=process.argv.slice(2),process.on("uncaughtException",function(w){if(!(w instanceof n0))throw w}),process.on("unhandledRejection",mr),f=function(w){process.exit(w)},u.inspect=function(){return"[Emscripten Module object]"};var G;try{G=JE()}catch(w){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),w}Worker=G.Worker}else v?(typeof read!="undefined"&&(C=function(w){return read(w)}),$=function(w){var S;return typeof readbuffer=="function"?new Uint8Array(readbuffer(w)):(S=read(w,"binary"),ke(typeof S=="object"),S)},typeof scriptArgs!="undefined"?h=scriptArgs:typeof arguments!="undefined"&&(h=arguments),typeof quit=="function"&&(f=function(w){quit(w)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(g||y)&&(y?N=self.location.href:document.currentScript&&(N=document.currentScript.src),typeof a!="undefined"&&a&&(N=a),N.indexOf("blob:")!==0?N=N.substr(0,N.lastIndexOf("/")+1):N="",b?(C=function(w,S){return B||(B=require("fs")),W||(W=cc()),w=W.normalize(w),B.readFileSync(w,S?null:"utf8")},$=function(w){var S=C(w,!0);return S.buffer||(S=new Uint8Array(S)),ke(S.buffer),S}):(C=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.send(null),S.responseText},y&&($=function(w){var S=new XMLHttpRequest;return S.open("GET",w,!1),S.responseType="arraybuffer",S.send(null),new Uint8Array(S.response)}),F=function(w,S,R){var U=new XMLHttpRequest;U.open("GET",w,!0),U.responseType="arraybuffer",U.onload=function(){if(U.status==200||U.status==0&&U.response){S(U.response);return}R()},U.onerror=R,U.send(null)}),P=function(w){document.title=w});b&&typeof performance=="undefined"&&(performance=QE().performance);var q=u.print||console.log.bind(console),j=u.printErr||console.warn.bind(console);for(d in p)p.hasOwnProperty(d)&&(u[d]=p[d]);p=null,u.arguments&&(h=u.arguments),u.thisProgram&&(m=u.thisProgram),u.quit&&(f=u.quit);var X=Atomics.load,K=Atomics.store,ne=Atomics.compareExchange,J;u.wasmBinary&&(J=u.wasmBinary);var se;u.noExitRuntime&&(se=u.noExitRuntime),typeof WebAssembly!="object"&&j("no native wasm support detected");var Q,oe=new WebAssembly.Table({initial:171,maximum:171+0,element:"anyfunc"}),ae,pe=0,ue=0,ge=!1,ye=0;function ke(w,S){w||mr("Assertion failed: "+S)}function Se(w){var S=u["_"+w];return ke(S,"Cannot call unknown function "+w+", make sure it is exported"),S}function Ce(w,S,R,U,he){var le={string:function(qn){var Br=0;if(qn!=null&&qn!==0){var lc=(qn.length<<2)+1;Br=$o(lc),lt(qn,Br,lc)}return Br},array:function(qn){var Br=$o(qn.length);return ct(qn,Br),Br}};function ie(qn){return S==="string"?Ve(qn):S==="boolean"?Boolean(qn):qn}var xe=Se(w),tt=[],Mt=0;if(U)for(var rn=0;rn=U);){var le=w[S++];if(!le)return he;if(!(le&128)){he+=String.fromCharCode(le);continue}var ie=w[S++]&63;if((le&224)==192){he+=String.fromCharCode((le&31)<<6|ie);continue}var xe=w[S++]&63;if((le&240)==224?le=(le&15)<<12|ie<<6|xe:le=(le&7)<<18|ie<<12|xe<<6|w[S++]&63,le<65536)he+=String.fromCharCode(le);else{var tt=le-65536;he+=String.fromCharCode(55296|tt>>10,56320|tt&1023)}}return he}function Ve(w,S){return w?Ke(i(),w,S):""}function st(w,S,R,U){if(!(U>0))return 0;for(var he=R,le=R+U-1,ie=0;ie=55296&&xe<=57343){var tt=w.charCodeAt(++ie);xe=65536+((xe&1023)<<10)|tt&1023}if(xe<=127){if(R>=le)break;S[R++]=xe}else if(xe<=2047){if(R+1>=le)break;S[R++]=192|xe>>6,S[R++]=128|xe&63}else if(xe<=65535){if(R+2>=le)break;S[R++]=224|xe>>12,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}else{if(R+3>=le)break;S[R++]=240|xe>>18,S[R++]=128|xe>>12&63,S[R++]=128|xe>>6&63,S[R++]=128|xe&63}}return S[R]=0,R-he}function lt(w,S,R){return st(w,i(),S,R)}function He(w){for(var S=0,R=0;R=55296&&U<=57343&&(U=65536+((U&1023)<<10)|w.charCodeAt(++R)&1023),U<=127?++S:U<=2047?S+=2:U<=65535?S+=3:S+=4}return S}function ct(w,S){s().set(w,S)}var pt=65536;function Hn(w,S){return w%S>0&&(w+=S-w%S),w}var Je,En,en,An,ra,vn,un,sa,Va;function Fn(w){Je=w,u.HEAP8=En=new Int8Array(w),u.HEAP16=An=new Int16Array(w),u.HEAP32=vn=new Int32Array(w),u.HEAPU8=en=new Uint8Array(w),u.HEAPU16=ra=new Uint16Array(w),u.HEAPU32=un=new Uint32Array(w),u.HEAPF32=sa=new Float32Array(w),u.HEAPF64=Va=new Float64Array(w)}var Io=5256464,Hu=Io,Ia=13584,ia=5256464,Na=12656,No=u.INITIAL_MEMORY||16777216;if(x)Q=u.wasmMemory,Je=u.buffer;else if(u.wasmMemory)Q=u.wasmMemory;else if(Q=new WebAssembly.Memory({initial:No/pt,maximum:2147483648/pt,shared:!0}),!(Q.buffer instanceof SharedArrayBuffer))throw j("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),b&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");Q&&(Je=Q.buffer),No=Je.byteLength,Fn(Je),x||(o()[Na>>2]=ia);function To(w){for(;w.length>0;){var S=w.shift();if(typeof S=="function"){S(u);continue}var R=S.func;typeof R=="number"?S.arg===void 0?u.dynCall_v(R):u.dynCall_vi(R,S.arg):R(S.arg===void 0?null:S.arg)}}var Is=[],ju=[],Zf=[],qu=[],od=[],Ku=!1;x&&(Ku=!0);function oa(){if(!x){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)eg(u.preRun.shift());To(Is)}}function ld(){Ku=!0,To(ju)}function Jf(){x||To(Zf)}function Qf(){if(!x){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)Ns(u.postRun.shift());To(od)}}function eg(w){Is.unshift(w)}function Ns(w){od.unshift(w)}var So=Math.ceil,tg=Math.floor,hr=0,Xu=null,Ts=null;function ng(w){ke(!x,"addRunDependency cannot be used in a pthread worker"),hr++,u.monitorRunDependencies&&u.monitorRunDependencies(hr)}function ag(w){if(hr--,u.monitorRunDependencies&&u.monitorRunDependencies(hr),hr==0&&(Xu!==null&&(clearInterval(Xu),Xu=null),Ts)){var S=Ts;Ts=null,S()}}u.preloadedImages={},u.preloadedAudios={};function mr(w){throw u.onAbort&&u.onAbort(w),x&&console.error("Pthread aborting at "+new Error().stack),w+="",q(w),j(w),ge=!0,ye=1,w="abort("+w+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(w)}function Yu(w,S){return String.prototype.startsWith?w.startsWith(S):w.indexOf(S)===0}var rg="data:application/octet-stream;base64,";function ud(w){return Yu(w,rg)}var sg="file://";function cd(w){return Yu(w,sg)}var la="tfjs-backend-wasm-threaded-simd.wasm";ud(la)||(la=T(la));function pd(){try{if(J)return new Uint8Array(J);if($)return $(la);throw"both async and sync fetching of the wasm failed"}catch(w){mr(w)}}function ig(){return!J&&(g||y)&&typeof fetch=="function"&&!cd(la)?fetch(la,{credentials:"same-origin"}).then(function(w){if(!w.ok)throw"failed to load wasm binary file at '"+la+"'";return w.arrayBuffer()}).catch(function(){return pd()}):new Promise(function(w,S){w(pd())})}function og(){var w={a:Jg};function S(ie,xe){var tt=ie.exports;if(u.asm=tt,ae=xe,!x){var Mt=me.unusedWorkers.length;me.unusedWorkers.forEach(function(rn){me.loadWasmModuleToWorker(rn,function(){--Mt||ag("wasm-instantiate")})})}}x||ng("wasm-instantiate");function R(ie){S(ie.instance,ie.module)}function U(ie){return ig().then(function(xe){return WebAssembly.instantiate(xe,w)}).then(ie,function(xe){j("failed to asynchronously prepare wasm: "+xe),mr(xe)})}function he(){if(!J&&typeof WebAssembly.instantiateStreaming=="function"&&!ud(la)&&!cd(la)&&typeof fetch=="function")fetch(la,{credentials:"same-origin"}).then(function(ie){var xe=WebAssembly.instantiateStreaming(ie,w);return xe.then(R,function(tt){j("wasm streaming compile failed: "+tt),j("falling back to ArrayBuffer instantiation"),U(R)})});else return U(R)}if(u.instantiateWasm)try{var le=u.instantiateWasm(w,S);return le}catch(ie){return j("Module.instantiateWasm callback failed with error: "+ie),!1}return he(),{}}var lg={};function ug(){me.initRuntime()}x||ju.push({func:function(){Id()}});var dd=0,hd=0,md=0;function Co(w,S,R){w=w|0,S=S|0,R=R|0,dd=w,md=S,hd=R}u.__register_pthread_ptr=Co;var Zu={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},_o=13568;function Eo(w,S){if(w<=0||w>s().length||w&!0||S<0)return-28;if(S==0)return 0;S>=2147483647&&(S=Infinity);var R=Atomics.load(o(),_o>>2),U=0;if(R==w){var he=Atomics.compareExchange(o(),_o>>2,R,0);if(he==R&&(--S,U=1,S<=0))return 1}var le=Atomics.notify(o(),w>>2,S);if(le>=0)return le+U;throw"Atomics.notify returned an unexpected value "+le}u._emscripten_futex_wake=Eo;function cg(w){if(x)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _kill_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];S.worker.terminate(),me.freeThreadData(S),me.runningWorkers.splice(me.runningWorkers.indexOf(S.worker),1),S.worker.pthread=void 0}function pg(w){if(x)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var S=me.pthreads[w];S.worker.postMessage({cmd:"cancel"})}function dg(w){if(x)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!w)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";o()[w+12>>2]=0;var S=me.pthreads[w];if(S){var R=S.worker;me.returnWorkerToPool(R)}}var me={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){Co(me.mainThreadBlock,!y,1),Jw(me.mainThreadBlock)},initMainThreadBlock:function(){for(var w=8,S=0;S>2]=me.mainThreadBlock;var R=me.mainThreadBlock+156;o()[R>>2]=R;for(var U=13056,S=0;S<128;++S)l()[U/4+S]=0;Atomics.store(l(),me.mainThreadBlock+104>>2,U),Atomics.store(l(),me.mainThreadBlock+40>>2,me.mainThreadBlock),Atomics.store(l(),me.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(me.exitHandlers!==null){for(;me.exitHandlers.length>0;)me.exitHandlers.pop()();me.exitHandlers=null}x&&pe&&Zw()},threadExit:function(w){var S=Ua();S&&(Atomics.store(l(),S+4>>2,w),Atomics.store(l(),S+0>>2,1),Atomics.store(l(),S+60>>2,1),Atomics.store(l(),S+64>>2,0),me.runExitHandlers(),Eo(S+0,2147483647),Co(0,0,0),pe=0,x&&postMessage({cmd:"exit"}))},threadCancel:function(){me.runExitHandlers(),Atomics.store(l(),pe+4>>2,-1),Atomics.store(l(),pe+0>>2,1),Eo(pe+0,2147483647),pe=ue=0,Co(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var w in me.pthreads){var S=me.pthreads[w];S&&S.worker&&me.returnWorkerToPool(S.worker)}me.pthreads={};for(var R=0;R>2];o()[w.threadInfoStruct+104>>2]=0,rc(S),rc(w.threadInfoStruct)}w.threadInfoStruct=0,w.allocatedOwnStack&&w.stackBase&&rc(w.stackBase),w.stackBase=0,w.worker&&(w.worker.pthread=null)}},returnWorkerToPool:function(w){delete me.pthreads[w.pthread.thread],me.unusedWorkers.push(w),me.runningWorkers.splice(me.runningWorkers.indexOf(w),1),me.freeThreadData(w.pthread),w.pthread=void 0},receiveObjectTransfer:function(w){},loadWasmModuleToWorker:function(w,S){w.onmessage=function(R){var U=R.data,he=U.cmd;if(w.pthread&&(me.currentProxiedOperationCallerThread=w.pthread.threadInfoStruct),U.targetThread&&U.targetThread!=Ua()){var le=me.pthreads[U.targetThread];le?le.worker.postMessage(R.data,U.transferList):console.error('Internal error! Worker sent a message "'+he+'" to target pthread '+U.targetThread+", but that thread no longer exists!"),me.currentProxiedOperationCallerThread=void 0;return}if(he==="processQueuedMainThreadWork")ty();else if(he==="spawnThread")vd(R.data);else if(he==="cleanupThread")dg(U.thread);else if(he==="killThread")cg(U.thread);else if(he==="cancelThread")pg(U.thread);else if(he==="loaded")w.loaded=!0,S&&S(w),w.runPthread&&(w.runPthread(),delete w.runPthread);else if(he==="print")q("Thread "+U.threadId+": "+U.text);else if(he==="printErr")j("Thread "+U.threadId+": "+U.text);else if(he==="alert")alert("Thread "+U.threadId+": "+U.text);else if(he==="exit"){var ie=w.pthread&&Atomics.load(l(),w.pthread.thread+68>>2);ie&&me.returnWorkerToPool(w)}else he==="cancelDone"?me.returnWorkerToPool(w):he==="objectTransfer"?me.receiveObjectTransfer(R.data):R.data.target==="setimmediate"?w.postMessage(R.data):j("worker sent an unknown command "+he);me.currentProxiedOperationCallerThread=void 0},w.onerror=function(R){j("pthread sent an error! "+R.filename+":"+R.lineno+": "+R.message)},b&&(w.on("message",function(R){w.onmessage({data:R})}),w.on("error",function(R){w.onerror(R)}),w.on("exit",function(R){console.log("worker exited - TODO: update the worker queue?")})),w.postMessage({cmd:"load",urlOrBlob:u.mainScriptUrlOrBlob||a,wasmMemory:Q,wasmModule:ae,DYNAMIC_BASE:ia,DYNAMICTOP_PTR:Na})},allocateUnusedWorker:function(){var w=T("tfjs-backend-wasm-threaded-simd.worker.js");me.unusedWorkers.push(new Worker(w))},getNewWorker:function(){return me.unusedWorkers.length==0&&(me.allocateUnusedWorker(),me.loadWasmModuleToWorker(me.unusedWorkers[0])),me.unusedWorkers.length>0?me.unusedWorkers.pop():null},busySpinWait:function(w){for(var S=performance.now()+w;performance.now()>2]=w,w}function bg(w,S){if(x)return Or(1,1,w,S);qu.unshift({func:w,arg:S})}function xg(w,S){if(w==S)postMessage({cmd:"processQueuedMainThreadWork"});else if(x)postMessage({targetThread:w,cmd:"processThreadQueue"});else{var R=me.pthreads[w],U=R&&R.worker;if(!U)return;U.postMessage({cmd:"processThreadQueue"})}return 1}function vg(){mr()}function wg(w,S){w=w|0,S=S|0}function kg(w,S,R){if(w<=0||w>s().length||w&!0)return-28;if(y){var U=Atomics.wait(o(),w>>2,S,R);if(U==="timed-out")return-73;if(U==="not-equal")return-6;if(U==="ok")return 0;throw"Atomics.wait returned an unexpected value "+U}else{var he=Atomics.load(o(),w>>2);if(S!=he)return-6;var le=performance.now(),ie=le+R;Atomics.store(o(),_o>>2,w);for(var xe=w;w==xe;){if(le=performance.now(),le>ie)return-73;ty(),w=Atomics.load(o(),_o>>2)}return 0}}function Ig(){return md|0}function Ng(){return hd|0}function Tg(w,S,R){i().copyWithin(w,S,S+R)}function Sg(){return navigator.hardwareConcurrency}function Or(w,S){for(var R=arguments.length-2,U=sc(),he=$o(R*8),le=he>>3,ie=0;ie>3]),S+=8):(S=S+3&~3,R.push(o()[S>>2]),S+=4);return R}function Cg(w,S,R){Cs.length=S;for(var U=R>>3,he=0;he>>16),Fn(Q.buffer),1}catch(S){}}function Ag(w){w=w>>>0;var S=_g();if(w<=S)return!1;var R=65536,U=2147483648;if(w>U)return!1;for(var he=16777216,le=1;le<=4;le*=2){var ie=S*(1+.2/le);ie=Math.min(ie,w+100663296);var xe=Math.min(U,Hn(Math.max(he,w,ie),R)),tt=Eg(xe);if(tt)return!0}return!1}var Pe={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var w=Pe.eventHandlers.length-1;w>=0;--w)Pe._removeHandler(w);Pe.eventHandlers=[],Pe.deferredCalls=[]},registerRemoveEventListeners:function(){Pe.removeEventListenersRegistered||(qu.push(Pe.removeAllEventListeners),Pe.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(w,S,R){function U(ie,xe){if(ie.length!=xe.length)return!1;for(var tt in ie)if(ie[tt]!=xe[tt])return!1;return!0}for(var he in Pe.deferredCalls){var le=Pe.deferredCalls[he];if(le.targetFunction==w&&U(le.argsList,R))return}Pe.deferredCalls.push({targetFunction:w,precedence:S,argsList:R}),Pe.deferredCalls.sort(function(ie,xe){return ie.precedence>2]=R,o()[ie+4>>2]=U,o()[ie+8>>2]=he,ny(w,637534208,S,U,ie),Do(le)},getTargetThreadForEventCallback:function(w){switch(w){case 1:return 0;case 2:return me.currentProxiedOperationCallerThread;default:return w}},getNodeNameForTarget:function(w){return w?w==window?"#window":w==screen?"#screen":w&&w.nodeName?w.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Fg(w){var S=He(w)+1,R=ac(S);return lt(w,R,S),R}function $g(w,S,R,U){var he=sc(),le=$o(12),ie=0;S&&(ie=Fg(S)),o()[le>>2]=ie,o()[le+4>>2]=R,o()[le+8>>2]=U,ny(w,657457152,0,ie,le),Do(he)}function Dg(w,S,R,U){S=S?Ve(S):"",$g(w,S,R,U)}function Rg(w){return w>2?Ve(w):w}var Mg=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function Pg(w){w=Rg(w);var S=Mg[w]||(typeof document!="undefined"?document.querySelector(w):void 0);return S}function Ju(w){return Pg(w)}function fd(w,S,R){var U=Ju(w);if(!U)return-4;if(U.canvasSharedPtr&&(o()[U.canvasSharedPtr>>2]=S,o()[U.canvasSharedPtr+4>>2]=R),U.offscreenCanvas||!U.controlTransferredOffscreen){U.offscreenCanvas&&(U=U.offscreenCanvas);var he=!1;if(U.GLctxObject&&U.GLctxObject.GLctx){var le=U.GLctxObject.GLctx.getParameter(2978);he=le[0]===0&&le[1]===0&&le[2]===U.width&&le[3]===U.height}U.width=S,U.height=R,he&&U.GLctxObject.GLctx.viewport(0,0,S,R)}else if(U.canvasSharedPtr){var ie=o()[U.canvasSharedPtr+8>>2];return Dg(ie,w,S,R),1}else return-4;return 0}function gd(w,S,R){return x?Or(2,1,w,S,R):fd(w,S,R)}function Og(w,S,R){var U=Ju(w);return U?fd(w,S,R):gd(w,S,R)}function Lg(w){w=w|0}function zg(w,S){w=w|0,S=S|0}function Bg(w){var S=w.getExtension("ANGLE_instanced_arrays");if(S)return w.vertexAttribDivisor=function(R,U){S.vertexAttribDivisorANGLE(R,U)},w.drawArraysInstanced=function(R,U,he,le){S.drawArraysInstancedANGLE(R,U,he,le)},w.drawElementsInstanced=function(R,U,he,le,ie){S.drawElementsInstancedANGLE(R,U,he,le,ie)},1}function Wg(w){var S=w.getExtension("OES_vertex_array_object");if(S)return w.createVertexArray=function(){return S.createVertexArrayOES()},w.deleteVertexArray=function(R){S.deleteVertexArrayOES(R)},w.bindVertexArray=function(R){S.bindVertexArrayOES(R)},w.isVertexArray=function(R){return S.isVertexArrayOES(R)},1}function Vg(w){var S=w.getExtension("WEBGL_draw_buffers");if(S)return w.drawBuffers=function(R,U){S.drawBuffersWEBGL(R,U)},1}var Be={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var w=new Float32Array(Be.MINI_TEMP_BUFFER_SIZE),S=0;S>2]:-1;he+=Ve(o()[R+le*4>>2],ie<0?void 0:ie)}return he},createContext:function(w,S){var R=w.getContext("webgl",S);if(!R)return 0;var U=Be.registerContext(R,S);return U},registerContext:function(w,S){var R=ac(8);o()[R+4>>2]=Ua();var U={handle:R,attributes:S,version:S.majorVersion,GLctx:w};return w.canvas&&(w.canvas.GLctxObject=U),Be.contexts[R]=U,(typeof S.enableExtensionsByDefault=="undefined"||S.enableExtensionsByDefault)&&Be.initExtensions(U),R},makeContextCurrent:function(w){return Be.currentContext=Be.contexts[w],u.ctx=Lr=Be.currentContext&&Be.currentContext.GLctx,!(w&&!Lr)},getContext:function(w){return Be.contexts[w]},deleteContext:function(w){Be.currentContext===Be.contexts[w]&&(Be.currentContext=null),typeof Pe=="object"&&Pe.removeAllHandlersOnTarget(Be.contexts[w].GLctx.canvas),Be.contexts[w]&&Be.contexts[w].GLctx.canvas&&(Be.contexts[w].GLctx.canvas.GLctxObject=void 0),rc(Be.contexts[w].handle),Be.contexts[w]=null},initExtensions:function(w){if(w||(w=Be.currentContext),!w.initExtensionsDone){w.initExtensionsDone=!0;var S=w.GLctx;Bg(S),Wg(S),Vg(S),S.disjointTimerQueryExt=S.getExtension("EXT_disjoint_timer_query");var R=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],U=S.getSupportedExtensions()||[];U.forEach(function(he){R.indexOf(he)!=-1&&S.getExtension(he)})}},populateUniformTable:function(w){for(var S=Be.programs[w],R=Be.programInfos[w]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},U=R.uniforms,he=Lr.getProgramParameter(S,35718),le=0;le>2;R.alpha=!!o()[U+(0>>2)],R.depth=!!o()[U+(4>>2)],R.stencil=!!o()[U+(8>>2)],R.antialias=!!o()[U+(12>>2)],R.premultipliedAlpha=!!o()[U+(16>>2)],R.preserveDrawingBuffer=!!o()[U+(20>>2)];var he=o()[U+(24>>2)];R.powerPreference=Ug[he],R.failIfMajorPerformanceCaveat=!!o()[U+(28>>2)],R.majorVersion=o()[U+(32>>2)],R.minorVersion=o()[U+(36>>2)],R.enableExtensionsByDefault=o()[U+(40>>2)],R.explicitSwapControl=o()[U+(44>>2)],R.proxyContextToMainThread=o()[U+(48>>2)],R.renderViaOffscreenBackBuffer=o()[U+(52>>2)];var le=Ju(w);if(!le)return-4;if(R.explicitSwapControl)return-1;var ie=Be.createContext(le,R);return ie}function Hg(w,S){return Gg(w,S)}var _s={splitPath:function(w){var S=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return S.exec(w).slice(1)},normalizeArray:function(w,S){for(var R=0,U=w.length-1;U>=0;U--){var he=w[U];he==="."?w.splice(U,1):he===".."?(w.splice(U,1),R++):R&&(w.splice(U,1),R--)}if(S)for(;R;R--)w.unshift("..");return w},normalize:function(w){var S=w.charAt(0)==="/",R=w.substr(-1)==="/";return w=_s.normalizeArray(w.split("/").filter(function(U){return!!U}),!S).join("/"),!w&&!S&&(w="."),w&&R&&(w+="/"),(S?"/":"")+w},dirname:function(w){var S=_s.splitPath(w),R=S[0],U=S[1];return!R&&!U?".":(U&&(U=U.substr(0,U.length-1)),R+U)},basename:function(w){if(w==="/")return"/";var S=w.lastIndexOf("/");return S===-1?w:w.substr(S+1)},extname:function(w){return _s.splitPath(w)[3]},join:function(){var w=Array.prototype.slice.call(arguments,0);return _s.normalize(w.join("/"))},join2:function(w,S){return _s.normalize(w+"/"+S)}},Fo={mappings:{},buffers:[null,[],[]],printChar:function(w,S){var R=Fo.buffers[w];S===0||S===10?((w===1?q:j)(Ke(R,0)),R.length=0):R.push(S)},varargs:void 0,get:function(){Fo.varargs+=4;var w=o()[Fo.varargs-4>>2];return w},getStr:function(w){var S=Ve(w);return S},get64:function(w,S){return w}};function yd(w){return x?Or(3,1,w):0}function bd(w,S,R,U,he){if(x)return Or(4,1,w,S,R,U,he)}function xd(w,S,R,U){if(x)return Or(5,1,w,S,R,U);for(var he=0,le=0;le>2],xe=o()[S+(le*8+4)>>2],tt=0;tt>2]=he,0}function jg(w){var S=me.exitHandlers.pop();w&&S()}function qg(w,S){me.exitHandlers===null&&(me.exitHandlers=[]),me.exitHandlers.push(function(){t0(w,S)})}function vd(w){if(x)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var S=me.getNewWorker();if(S.pthread!==void 0)throw"Internal error!";if(!w.pthread_ptr)throw"Internal error, no pthread ptr!";me.runningWorkers.push(S);for(var R=ac(128*4),U=0;U<128;++U)o()[R+U*4>>2]=0;var he=w.stackBase+w.stackSize,le=me.pthreads[w.pthread_ptr]={worker:S,stackBase:w.stackBase,stackSize:w.stackSize,allocatedOwnStack:w.allocatedOwnStack,thread:w.pthread_ptr,threadInfoStruct:w.pthread_ptr},ie=le.threadInfoStruct>>2;Atomics.store(l(),ie+(0>>2),0),Atomics.store(l(),ie+(4>>2),0),Atomics.store(l(),ie+(8>>2),0),Atomics.store(l(),ie+(68>>2),w.detached),Atomics.store(l(),ie+(104>>2),R),Atomics.store(l(),ie+(48>>2),0),Atomics.store(l(),ie+(40>>2),le.threadInfoStruct),Atomics.store(l(),ie+(44>>2),42),Atomics.store(l(),ie+(108>>2),w.stackSize),Atomics.store(l(),ie+(84>>2),w.stackSize),Atomics.store(l(),ie+(80>>2),he),Atomics.store(l(),ie+(108+8>>2),he),Atomics.store(l(),ie+(108+12>>2),w.detached),Atomics.store(l(),ie+(108+20>>2),w.schedPolicy),Atomics.store(l(),ie+(108+24>>2),w.schedPrio);var xe=Xw(),tt=xe+40;Atomics.store(l(),ie+(176>>2),tt),S.pthread=le;var Mt={cmd:"run",start_routine:w.startRoutine,arg:w.arg,threadInfoStruct:w.pthread_ptr,selfThreadId:w.pthread_ptr,parentThreadId:w.parent_pthread_ptr,stackBase:w.stackBase,stackSize:w.stackSize};S.runPthread=function(){Mt.time=performance.now(),S.postMessage(Mt,w.transferList)},S.loaded&&(S.runPthread(),delete S.runPthread)}function Kg(w,S,R){if(!S&&!R)return Zu.EINVAL;if(!w)return j("pthread_getschedparam called with a null thread pointer!"),Zu.ESRCH;var U=o()[w+12>>2];if(U!==w)return j("pthread_getschedparam attempted on thread "+w+", which does not point to a valid thread, or does not exist anymore!"),Zu.ESRCH;var he=Atomics.load(l(),w+108+20>>2),le=Atomics.load(l(),w+108+24>>2);return S&&(o()[S>>2]=he),R&&(o()[R>>2]=le),0}function Ua(){return dd|0}u._pthread_self=Ua;function Xg(w,S,R,U){if(typeof SharedArrayBuffer=="undefined")return j("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!w)return j("pthread_create called with a null thread pointer!"),28;var he=[],le=0;if(x&&(he.length===0||le))return Qw(687865856,w,S,R,U);if(le)return le;var ie=0,xe=0,tt=0,Mt=0,rn=0;if(S){ie=o()[S>>2],ie+=81920,xe=o()[S+8>>2],tt=o()[S+12>>2]!==0;var Ro=o()[S+16>>2]===0;if(Ro){var oc=o()[S+20>>2],qn=o()[S+24>>2],Br=me.currentProxiedOperationCallerThread?me.currentProxiedOperationCallerThread:Ua();Kg(Br,S+20,S+24),Mt=o()[S+20>>2],rn=o()[S+24>>2],o()[S+20>>2]=oc,o()[S+24>>2]=qn}else Mt=o()[S+20>>2],rn=o()[S+24>>2]}else ie=2097152;var lc=xe==0;lc?xe=Yw(16,ie):(xe-=ie,ke(xe>0));for(var Mo=ac(232),ry=0;ry<232>>2;++ry)l()[(Mo>>2)+ry]=0;o()[w>>2]=Mo,o()[Mo+12>>2]=Mo;var a0=Mo+156;o()[a0>>2]=a0;var sy={stackBase:xe,stackSize:ie,allocatedOwnStack:lc,schedPolicy:Mt,schedPrio:rn,detached:tt,startRoutine:R,pthread_ptr:Mo,parent_pthread_ptr:Ua(),arg:U,transferList:he};return x?(sy.cmd="spawnThread",postMessage(sy,he)):vd(sy),0}function Yg(w){return w=+w,w>=0?+tg(w+.5):+So(w-.5)}function wd(w){if(x)return Or(6,1,w);switch(w){case 30:return 16384;case 85:var S=2147483648;return S/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return yg(28),-1}x?me.initWorker():me.initMainThreadBlock();var Lr;Be.init();var Zg=[null,bg,gd,yd,bd,xd,wd],Jg={e:fg,r:gg,w:xg,a:vg,l:wg,d:kg,c:Eo,h:Ss,g:Ig,x:Ng,q:Tg,B:Sg,t:Cg,A:Ag,u:Og,k:Lg,s:zg,v:Hg,m:yd,o:bd,i:xd,p:ug,memory:Q||u.wasmMemory,y:jg,z:qg,j:Xg,b:Ua,f:Yg,n:wd,table:oe},kd=og();u.asm=kd;var Id=u.___wasm_call_ctors=function(){return(Id=u.___wasm_call_ctors=u.asm.C).apply(null,arguments)},Nd=u._init=function(){return(Nd=u._init=u.asm.D).apply(null,arguments)},Qu=u._register_tensor=function(){return(Qu=u._register_tensor=u.asm.E).apply(null,arguments)},Td=u._dispose_data=function(){return(Td=u._dispose_data=u.asm.F).apply(null,arguments)},Es=u._dispose=function(){return(Es=u._dispose=u.asm.G).apply(null,arguments)},ec=u._Abs=function(){return(ec=u._Abs=u.asm.H).apply(null,arguments)},Qg=u._Add=function(){return(Qg=u._Add=u.asm.I).apply(null,arguments)},ey=u._AddN=function(){return(ey=u._AddN=u.asm.J).apply(null,arguments)},tc=u._ArgMax=function(){return(tc=u._ArgMax=u.asm.K).apply(null,arguments)},Sd=u._AvgPool=function(){return(Sd=u._AvgPool=u.asm.L).apply(null,arguments)},Cd=u._BatchMatMul=function(){return(Cd=u._BatchMatMul=u.asm.M).apply(null,arguments)},V=u._Ceil=function(){return(V=u._Ceil=u.asm.N).apply(null,arguments)},te=u._ClipByValue=function(){return(te=u._ClipByValue=u.asm.O).apply(null,arguments)},Ie=u._Conv2D=function(){return(Ie=u._Conv2D=u.asm.P).apply(null,arguments)},_e=u._Conv2DBackpropInput=function(){return(_e=u._Conv2DBackpropInput=u.asm.Q).apply(null,arguments)},at=u._Cos=function(){return(at=u._Cos=u.asm.R).apply(null,arguments)},_t=u._CropAndResize=function(){return(_t=u._CropAndResize=u.asm.S).apply(null,arguments)},Xe=u._Cumsum=function(){return(Xe=u._Cumsum=u.asm.T).apply(null,arguments)},je=u._DepthToSpace=function(){return(je=u._DepthToSpace=u.asm.U).apply(null,arguments)},Ut=u._DepthwiseConv2dNative=function(){return(Ut=u._DepthwiseConv2dNative=u.asm.V).apply(null,arguments)},fr=u._Equal=function(){return(fr=u._Equal=u.asm.W).apply(null,arguments)},gr=u._Exp=function(){return(gr=u._Exp=u.asm.X).apply(null,arguments)},_d=u._FlipLeftRight=function(){return(_d=u._FlipLeftRight=u.asm.Y).apply(null,arguments)},nc=u._Floor=function(){return(nc=u._Floor=u.asm.Z).apply(null,arguments)},jn=u._FloorDiv=function(){return(jn=u._FloorDiv=u.asm._).apply(null,arguments)},zr=u._FusedBatchNorm=function(){return(zr=u._FusedBatchNorm=u.asm.$).apply(null,arguments)},Ed=u._FusedConv2D=function(){return(Ed=u._FusedConv2D=u.asm.aa).apply(null,arguments)},h_=u._FusedDepthwiseConv2D=function(){return(h_=u._FusedDepthwiseConv2D=u.asm.ba).apply(null,arguments)},m_=u._Gather=function(){return(m_=u._Gather=u.asm.ca).apply(null,arguments)},f_=u._GatherNd=function(){return(f_=u._GatherNd=u.asm.da).apply(null,arguments)},g_=u._Greater=function(){return(g_=u._Greater=u.asm.ea).apply(null,arguments)},y_=u._GreaterEqual=function(){return(y_=u._GreaterEqual=u.asm.fa).apply(null,arguments)},b_=u._LeakyRelu=function(){return(b_=u._LeakyRelu=u.asm.ga).apply(null,arguments)},x_=u._Less=function(){return(x_=u._Less=u.asm.ha).apply(null,arguments)},v_=u._LessEqual=function(){return(v_=u._LessEqual=u.asm.ia).apply(null,arguments)},w_=u._Log=function(){return(w_=u._Log=u.asm.ja).apply(null,arguments)},k_=u._LogicalAnd=function(){return(k_=u._LogicalAnd=u.asm.ka).apply(null,arguments)},I_=u._Max=function(){return(I_=u._Max=u.asm.la).apply(null,arguments)},N_=u._MaxPool=function(){return(N_=u._MaxPool=u.asm.ma).apply(null,arguments)},T_=u._Maximum=function(){return(T_=u._Maximum=u.asm.na).apply(null,arguments)},S_=u._Mean=function(){return(S_=u._Mean=u.asm.oa).apply(null,arguments)},C_=u._Min=function(){return(C_=u._Min=u.asm.pa).apply(null,arguments)},__=u._Minimum=function(){return(__=u._Minimum=u.asm.qa).apply(null,arguments)},E_=u._Multiply=function(){return(E_=u._Multiply=u.asm.ra).apply(null,arguments)},A_=u._Neg=function(){return(A_=u._Neg=u.asm.sa).apply(null,arguments)},F_=u._NonMaxSuppressionV3=function(){return(F_=u._NonMaxSuppressionV3=u.asm.ta).apply(null,arguments)},$_=u._NonMaxSuppressionV4=function(){return($_=u._NonMaxSuppressionV4=u.asm.ua).apply(null,arguments)},D_=u._NonMaxSuppressionV5=function(){return(D_=u._NonMaxSuppressionV5=u.asm.va).apply(null,arguments)},R_=u._NotEqual=function(){return(R_=u._NotEqual=u.asm.wa).apply(null,arguments)},M_=u._OneHot=function(){return(M_=u._OneHot=u.asm.xa).apply(null,arguments)},P_=u._PadV2=function(){return(P_=u._PadV2=u.asm.ya).apply(null,arguments)},O_=u._Pow=function(){return(O_=u._Pow=u.asm.za).apply(null,arguments)},L_=u._Prelu=function(){return(L_=u._Prelu=u.asm.Aa).apply(null,arguments)},z_=u._Prod=function(){return(z_=u._Prod=u.asm.Ba).apply(null,arguments)},B_=u._RealDiv=function(){return(B_=u._RealDiv=u.asm.Ca).apply(null,arguments)},W_=u._Relu=function(){return(W_=u._Relu=u.asm.Da).apply(null,arguments)},V_=u._Relu6=function(){return(V_=u._Relu6=u.asm.Ea).apply(null,arguments)},U_=u._ResizeBilinear=function(){return(U_=u._ResizeBilinear=u.asm.Fa).apply(null,arguments)},G_=u._Reverse=function(){return(G_=u._Reverse=u.asm.Ga).apply(null,arguments)},H_=u._RotateWithOffset=function(){return(H_=u._RotateWithOffset=u.asm.Ha).apply(null,arguments)},j_=u._Round=function(){return(j_=u._Round=u.asm.Ia).apply(null,arguments)},q_=u._Rsqrt=function(){return(q_=u._Rsqrt=u.asm.Ja).apply(null,arguments)},K_=u._ScatterNd=function(){return(K_=u._ScatterNd=u.asm.Ka).apply(null,arguments)},X_=u._SelectV2=function(){return(X_=u._SelectV2=u.asm.La).apply(null,arguments)},Y_=u._Sigmoid=function(){return(Y_=u._Sigmoid=u.asm.Ma).apply(null,arguments)},Z_=u._Sin=function(){return(Z_=u._Sin=u.asm.Na).apply(null,arguments)},J_=u._Softmax=function(){return(J_=u._Softmax=u.asm.Oa).apply(null,arguments)},Q_=u._Sqrt=function(){return(Q_=u._Sqrt=u.asm.Pa).apply(null,arguments)},eE=u._Square=function(){return(eE=u._Square=u.asm.Qa).apply(null,arguments)},tE=u._SquaredDifference=function(){return(tE=u._SquaredDifference=u.asm.Ra).apply(null,arguments)},nE=u._Step=function(){return(nE=u._Step=u.asm.Sa).apply(null,arguments)},aE=u._StridedSlice=function(){return(aE=u._StridedSlice=u.asm.Ta).apply(null,arguments)},rE=u._Sub=function(){return(rE=u._Sub=u.asm.Ua).apply(null,arguments)},sE=u._Sum=function(){return(sE=u._Sum=u.asm.Va).apply(null,arguments)},iE=u._Tanh=function(){return(iE=u._Tanh=u.asm.Wa).apply(null,arguments)},oE=u._Tile=function(){return(oE=u._Tile=u.asm.Xa).apply(null,arguments)},lE=u._TopK=function(){return(lE=u._TopK=u.asm.Ya).apply(null,arguments)},uE=u._Transpose=function(){return(uE=u._Transpose=u.asm.Za).apply(null,arguments)},cE=u.__FusedMatMul=function(){return(cE=u.__FusedMatMul=u.asm._a).apply(null,arguments)},ac=u._malloc=function(){return(ac=u._malloc=u.asm.$a).apply(null,arguments)},rc=u._free=function(){return(rc=u._free=u.asm.ab).apply(null,arguments)},Kw=u.___errno_location=function(){return(Kw=u.___errno_location=u.asm.bb).apply(null,arguments)},Xw=u._emscripten_get_global_libc=function(){return(Xw=u._emscripten_get_global_libc=u.asm.cb).apply(null,arguments)},pE=u.___em_js__initPthreadsJS=function(){return(pE=u.___em_js__initPthreadsJS=u.asm.db).apply(null,arguments)},Yw=u._memalign=function(){return(Yw=u._memalign=u.asm.eb).apply(null,arguments)},Zw=u.___pthread_tsd_run_dtors=function(){return(Zw=u.___pthread_tsd_run_dtors=u.asm.fb).apply(null,arguments)},ty=u._emscripten_main_thread_process_queued_calls=function(){return(ty=u._emscripten_main_thread_process_queued_calls=u.asm.gb).apply(null,arguments)},dE=u._emscripten_current_thread_process_queued_calls=function(){return(dE=u._emscripten_current_thread_process_queued_calls=u.asm.hb).apply(null,arguments)},Jw=u._emscripten_register_main_browser_thread_id=function(){return(Jw=u._emscripten_register_main_browser_thread_id=u.asm.ib).apply(null,arguments)},hE=u._emscripten_main_browser_thread_id=function(){return(hE=u._emscripten_main_browser_thread_id=u.asm.jb).apply(null,arguments)},mE=u._emscripten_async_run_in_main_thread=function(){return(mE=u._emscripten_async_run_in_main_thread=u.asm.kb).apply(null,arguments)},fE=u._emscripten_sync_run_in_main_thread=function(){return(fE=u._emscripten_sync_run_in_main_thread=u.asm.lb).apply(null,arguments)},gE=u._emscripten_sync_run_in_main_thread_0=function(){return(gE=u._emscripten_sync_run_in_main_thread_0=u.asm.mb).apply(null,arguments)},yE=u._emscripten_sync_run_in_main_thread_1=function(){return(yE=u._emscripten_sync_run_in_main_thread_1=u.asm.nb).apply(null,arguments)},bE=u._emscripten_sync_run_in_main_thread_2=function(){return(bE=u._emscripten_sync_run_in_main_thread_2=u.asm.ob).apply(null,arguments)},xE=u._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(xE=u._emscripten_sync_run_in_main_thread_xprintf_varargs=u.asm.pb).apply(null,arguments)},vE=u._emscripten_sync_run_in_main_thread_3=function(){return(vE=u._emscripten_sync_run_in_main_thread_3=u.asm.qb).apply(null,arguments)},Qw=u._emscripten_sync_run_in_main_thread_4=function(){return(Qw=u._emscripten_sync_run_in_main_thread_4=u.asm.rb).apply(null,arguments)},wE=u._emscripten_sync_run_in_main_thread_5=function(){return(wE=u._emscripten_sync_run_in_main_thread_5=u.asm.sb).apply(null,arguments)},kE=u._emscripten_sync_run_in_main_thread_6=function(){return(kE=u._emscripten_sync_run_in_main_thread_6=u.asm.tb).apply(null,arguments)},IE=u._emscripten_sync_run_in_main_thread_7=function(){return(IE=u._emscripten_sync_run_in_main_thread_7=u.asm.ub).apply(null,arguments)},e0=u._emscripten_run_in_main_runtime_thread_js=function(){return(e0=u._emscripten_run_in_main_runtime_thread_js=u.asm.vb).apply(null,arguments)},ny=u._emscripten_async_queue_on_thread_=function(){return(ny=u._emscripten_async_queue_on_thread_=u.asm.wb).apply(null,arguments)},NE=u._emscripten_tls_init=function(){return(NE=u._emscripten_tls_init=u.asm.xb).apply(null,arguments)},sc=u.stackSave=function(){return(sc=u.stackSave=u.asm.yb).apply(null,arguments)},$o=u.stackAlloc=function(){return($o=u.stackAlloc=u.asm.zb).apply(null,arguments)},Do=u.stackRestore=function(){return(Do=u.stackRestore=u.asm.Ab).apply(null,arguments)},t0=u.dynCall_vi=function(){return(t0=u.dynCall_vi=u.asm.Bb).apply(null,arguments)},TE=u.dynCall_v=function(){return(TE=u.dynCall_v=u.asm.Cb).apply(null,arguments)},SE=u.dynCall_ii=function(){return(SE=u.dynCall_ii=u.asm.Db).apply(null,arguments)};u.asm=kd,u.cwrap=Re,u.PThread=me,u.PThread=me,u._pthread_self=Ua,u.wasmMemory=Q,u.ExitStatus=n0;var ic;u.then=function(w){if(ic)w(u);else{var S=u.onRuntimeInitialized;u.onRuntimeInitialized=function(){S&&S(),w(u)}}return u};function n0(w){this.name="ExitStatus",this.message="Program terminated with exit("+w+")",this.status=w}Ts=function w(){ic||ay(),ic||(Ts=w)};function ay(w){if(w=w||h,hr>0||(oa(),hr>0))return;function S(){ic||(ic=!0,u.calledRun=!0,!ge&&(ld(),Jf(),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Qf()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),S()},1)):S()}if(u.run=ay,u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return x||(se=!0),x||ay(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),tA=cn((e,t)=>{var n=function(){var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i={},o;for(o in s)s.hasOwnProperty(o)&&(i[o]=s[o]);var l=[],c="./this.program",u=function(V,te){throw te},p=!1,d=!1,h=!1,m=!1;p=typeof window=="object",d=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",m=!p&&!h&&!d;var f="";function g(V){return s.locateFile?s.locateFile(V,f):f+V}var y,b,v,x,N,T;h?(d?f=cc().dirname(f)+"/":f=__dirname+"/",y=function(V,te){return N||(N=require("fs")),T||(T=cc()),V=T.normalize(V),N.readFileSync(V,te?null:"utf8")},v=function(V){var te=y(V,!0);return te.buffer||(te=new Uint8Array(te)),j(te.buffer),te},process.argv.length>1&&(c=process.argv[1].replace(/\\/g,"/")),l=process.argv.slice(2),process.on("uncaughtException",function(V){if(!(V instanceof ec))throw V}),process.on("unhandledRejection",Is),u=function(V){process.exit(V)},s.inspect=function(){return"[Emscripten Module object]"}):m?(typeof read!="undefined"&&(y=function(V){return read(V)}),v=function(V){var te;return typeof readbuffer=="function"?new Uint8Array(readbuffer(V)):(te=read(V,"binary"),j(typeof te=="object"),te)},typeof scriptArgs!="undefined"?l=scriptArgs:typeof arguments!="undefined"&&(l=arguments),typeof quit=="function"&&(u=function(V){quit(V)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(p||d)&&(d?f=self.location.href:document.currentScript&&(f=document.currentScript.src),a&&(f=a),f.indexOf("blob:")!==0?f=f.substr(0,f.lastIndexOf("/")+1):f="",y=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.send(null),te.responseText},d&&(v=function(V){var te=new XMLHttpRequest;return te.open("GET",V,!1),te.responseType="arraybuffer",te.send(null),new Uint8Array(te.response)}),b=function(V,te,Ie){var _e=new XMLHttpRequest;_e.open("GET",V,!0),_e.responseType="arraybuffer",_e.onload=function(){if(_e.status==200||_e.status==0&&_e.response){te(_e.response);return}Ie()},_e.onerror=Ie,_e.send(null)},x=function(V){document.title=V});var C=s.print||console.log.bind(console),F=s.printErr||console.warn.bind(console);for(o in i)i.hasOwnProperty(o)&&(s[o]=i[o]);i=null,s.arguments&&(l=s.arguments),s.thisProgram&&(c=s.thisProgram),s.quit&&(u=s.quit);var $;s.wasmBinary&&($=s.wasmBinary);var P;s.noExitRuntime&&(P=s.noExitRuntime),typeof WebAssembly!="object"&&F("no native wasm support detected");var B,W=new WebAssembly.Table({initial:153,maximum:153+0,element:"anyfunc"}),G=!1,q=0;function j(V,te){V||Is("Assertion failed: "+te)}function X(V){var te=s["_"+V];return j(te,"Cannot call unknown function "+V+", make sure it is exported"),te}function K(V,te,Ie,_e,at){var _t={string:function(jn){var zr=0;if(jn!=null&&jn!==0){var Ed=(jn.length<<2)+1;zr=Qu(Ed),ae(jn,zr,Ed)}return zr},array:function(jn){var zr=Qu(jn.length);return pe(jn,zr),zr}};function Xe(jn){return te==="string"?Q(jn):te==="boolean"?Boolean(jn):jn}var je=X(V),Ut=[],fr=0;if(_e)for(var gr=0;gr<_e.length;gr++){var _d=_t[Ie[gr]];_d?(fr===0&&(fr=Nd()),Ut[gr]=_d(_e[gr])):Ut[gr]=_e[gr]}var nc=je.apply(null,Ut);return nc=Xe(nc),fr!==0&&Td(fr),nc}function ne(V,te,Ie,_e){Ie=Ie||[];var at=Ie.every(function(Xe){return Xe==="number"}),_t=te!=="string";return _t&&at&&!_e?X(V):function(){return K(V,te,Ie,arguments,_e)}}var J=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function se(V,te,Ie){for(var _e=te+Ie,at=te;V[at]&&!(at>=_e);)++at;if(at-te>16&&V.subarray&&J)return J.decode(V.subarray(te,at));for(var _t="";te>10,56320|fr&1023)}}return _t}function Q(V,te){return V?se(ye,V,te):""}function oe(V,te,Ie,_e){if(!(_e>0))return 0;for(var at=Ie,_t=Ie+_e-1,Xe=0;Xe=55296&&je<=57343){var Ut=V.charCodeAt(++Xe);je=65536+((je&1023)<<10)|Ut&1023}if(je<=127){if(Ie>=_t)break;te[Ie++]=je}else if(je<=2047){if(Ie+1>=_t)break;te[Ie++]=192|je>>6,te[Ie++]=128|je&63}else if(je<=65535){if(Ie+2>=_t)break;te[Ie++]=224|je>>12,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}else{if(Ie+3>=_t)break;te[Ie++]=240|je>>18,te[Ie++]=128|je>>12&63,te[Ie++]=128|je>>6&63,te[Ie++]=128|je&63}}return te[Ie]=0,Ie-at}function ae(V,te,Ie){return oe(V,ye,te,Ie)}function pe(V,te){ge.set(V,te)}var ue,ge,ye,ke,Se,Ce,Re,Ke,Ve;function st(V){ue=V,s.HEAP8=ge=new Int8Array(V),s.HEAP16=ke=new Int16Array(V),s.HEAP32=Ce=new Int32Array(V),s.HEAPU8=ye=new Uint8Array(V),s.HEAPU16=Se=new Uint16Array(V),s.HEAPU32=Re=new Uint32Array(V),s.HEAPF32=Ke=new Float32Array(V),s.HEAPF64=Ve=new Float64Array(V)}var lt=s.INITIAL_MEMORY||16777216;function He(V){for(;V.length>0;){var te=V.shift();if(typeof te=="function"){te(s);continue}var Ie=te.func;typeof Ie=="number"?te.arg===void 0?s.dynCall_v(Ie):s.dynCall_vi(Ie,te.arg):Ie(te.arg===void 0?null:te.arg)}}var ct=[],pt=[],Hn=[],Je=[],En=!1,en=!1;function An(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Va(s.preRun.shift());He(ct)}function ra(){En=!0,He(pt)}function vn(){He(Hn)}function un(){en=!0}function sa(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Fn(s.postRun.shift());He(Je)}function Va(V){ct.unshift(V)}function Fn(V){Je.unshift(V)}var Io=Math.ceil,Hu=Math.floor,Ia=0,ia=null,Na=null;function No(V){Ia++,s.monitorRunDependencies&&s.monitorRunDependencies(Ia)}function To(V){if(Ia--,s.monitorRunDependencies&&s.monitorRunDependencies(Ia),Ia==0&&(ia!==null&&(clearInterval(ia),ia=null),Na)){var te=Na;Na=null,te()}}s.preloadedImages={},s.preloadedAudios={};function Is(V){throw s.onAbort&&s.onAbort(V),V+="",C(V),F(V),G=!0,q=1,V="abort("+V+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(V)}function ju(V,te){return String.prototype.startsWith?V.startsWith(te):V.indexOf(te)===0}var Zf="data:application/octet-stream;base64,";function qu(V){return ju(V,Zf)}var od="file://";function Ku(V){return ju(V,od)}var oa="tfjs-backend-wasm.wasm";qu(oa)||(oa=g(oa));function ld(){try{if($)return new Uint8Array($);if(v)return v(oa);throw"both async and sync fetching of the wasm failed"}catch(V){Is(V)}}function Jf(){return!$&&(p||d)&&typeof fetch=="function"&&!Ku(oa)?fetch(oa,{credentials:"same-origin"}).then(function(V){if(!V.ok)throw"failed to load wasm binary file at '"+oa+"'";return V.arrayBuffer()}).catch(function(){return ld()}):new Promise(function(V,te){V(ld())})}function Qf(){var V={env:mr,wasi_snapshot_preview1:mr};function te(Xe,je){var Ut=Xe.exports;s.asm=Ut,B=Ut.memory,st(B.buffer),To("wasm-instantiate")}No("wasm-instantiate");function Ie(Xe){te(Xe.instance)}function _e(Xe){return Jf().then(function(je){return WebAssembly.instantiate(je,V)}).then(Xe,function(je){F("failed to asynchronously prepare wasm: "+je),Is(je)})}function at(){if(!$&&typeof WebAssembly.instantiateStreaming=="function"&&!qu(oa)&&!Ku(oa)&&typeof fetch=="function")fetch(oa,{credentials:"same-origin"}).then(function(Xe){var je=WebAssembly.instantiateStreaming(Xe,V);return je.then(Ie,function(Ut){F("wasm streaming compile failed: "+Ut),F("falling back to ArrayBuffer instantiation"),_e(Ie)})});else return _e(Ie)}if(s.instantiateWasm)try{var _t=s.instantiateWasm(V,te);return _t}catch(Xe){return F("Module.instantiateWasm callback failed with error: "+Xe),!1}return at(),{}}pt.push();function eg(V){st(B.buffer)}var Ns={splitPath:function(V){var te=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return te.exec(V).slice(1)},normalizeArray:function(V,te){for(var Ie=0,_e=V.length-1;_e>=0;_e--){var at=V[_e];at==="."?V.splice(_e,1):at===".."?(V.splice(_e,1),Ie++):Ie&&(V.splice(_e,1),Ie--)}if(te)for(;Ie;Ie--)V.unshift("..");return V},normalize:function(V){var te=V.charAt(0)==="/",Ie=V.substr(-1)==="/";return V=Ns.normalizeArray(V.split("/").filter(function(_e){return!!_e}),!te).join("/"),!V&&!te&&(V="."),V&&Ie&&(V+="/"),(te?"/":"")+V},dirname:function(V){var te=Ns.splitPath(V),Ie=te[0],_e=te[1];return!Ie&&!_e?".":(_e&&(_e=_e.substr(0,_e.length-1)),Ie+_e)},basename:function(V){if(V==="/")return"/";var te=V.lastIndexOf("/");return te===-1?V:V.substr(te+1)},extname:function(V){return Ns.splitPath(V)[3]},join:function(){var V=Array.prototype.slice.call(arguments,0);return Ns.normalize(V.join("/"))},join2:function(V,te){return Ns.normalize(V+"/"+te)}},So={mappings:{},buffers:[null,[],[]],printChar:function(V,te){var Ie=So.buffers[V];te===0||te===10?((V===1?C:F)(se(Ie,0)),Ie.length=0):Ie.push(te)},varargs:void 0,get:function(){So.varargs+=4;var V=Ce[So.varargs-4>>2];return V},getStr:function(V){var te=Q(V);return te},get64:function(V,te){return V}};function tg(V){return 0}function hr(V,te,Ie,_e,at){}function Xu(V,te,Ie,_e){for(var at=0,_t=0;_t>2],je=Ce[te+(_t*8+4)>>2],Ut=0;Ut>2]=at,0}function Ts(V){Sd(V)}function ng(V){Ts(V)}function ag(V){return V=+V,V>=0?+Hu(V+.5):+Io(V-.5)}var mr={emscripten_notify_memory_growth:eg,fd_close:tg,fd_seek:hr,fd_write:Xu,proc_exit:ng,roundf:ag},Yu=Qf();s.asm=Yu;var rg=s._init=function(){return(rg=s._init=s.asm.init).apply(null,arguments)},ud=s._register_tensor=function(){return(ud=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},sg=s._dispose_data=function(){return(sg=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},cd=s._dispose=function(){return(cd=s._dispose=s.asm.dispose).apply(null,arguments)},la=s._Abs=function(){return(la=s._Abs=s.asm.Abs).apply(null,arguments)},pd=s._Add=function(){return(pd=s._Add=s.asm.Add).apply(null,arguments)},ig=s._AddN=function(){return(ig=s._AddN=s.asm.AddN).apply(null,arguments)},og=s._ArgMax=function(){return(og=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},lg=s._AvgPool=function(){return(lg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},ug=s._BatchMatMul=function(){return(ug=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},dd=s._Ceil=function(){return(dd=s._Ceil=s.asm.Ceil).apply(null,arguments)},hd=s._ClipByValue=function(){return(hd=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},md=s._Conv2D=function(){return(md=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Co=s._Conv2DBackpropInput=function(){return(Co=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Zu=s._Cos=function(){return(Zu=s._Cos=s.asm.Cos).apply(null,arguments)},_o=s._CropAndResize=function(){return(_o=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Eo=s._Cumsum=function(){return(Eo=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},cg=s._DepthToSpace=function(){return(cg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},pg=s._DepthwiseConv2dNative=function(){return(pg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},dg=s._Equal=function(){return(dg=s._Equal=s.asm.Equal).apply(null,arguments)},me=s._Exp=function(){return(me=s._Exp=s.asm.Exp).apply(null,arguments)},hg=s._FlipLeftRight=function(){return(hg=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},mg=s._Floor=function(){return(mg=s._Floor=s.asm.Floor).apply(null,arguments)},fg=s._FloorDiv=function(){return(fg=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},gg=s._FusedBatchNorm=function(){return(gg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},Ss=s._FusedConv2D=function(){return(Ss=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},yg=s._FusedDepthwiseConv2D=function(){return(yg=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},bg=s._Gather=function(){return(bg=s._Gather=s.asm.Gather).apply(null,arguments)},xg=s._GatherNd=function(){return(xg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},vg=s._Greater=function(){return(vg=s._Greater=s.asm.Greater).apply(null,arguments)},wg=s._GreaterEqual=function(){return(wg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},kg=s._LeakyRelu=function(){return(kg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Ig=s._Less=function(){return(Ig=s._Less=s.asm.Less).apply(null,arguments)},Ng=s._LessEqual=function(){return(Ng=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Tg=s._Log=function(){return(Tg=s._Log=s.asm.Log).apply(null,arguments)},Sg=s._LogicalAnd=function(){return(Sg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Or=s._Max=function(){return(Or=s._Max=s.asm.Max).apply(null,arguments)},Cs=s._MaxPool=function(){return(Cs=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Ao=s._Maximum=function(){return(Ao=s._Maximum=s.asm.Maximum).apply(null,arguments)},Cg=s._Mean=function(){return(Cg=s._Mean=s.asm.Mean).apply(null,arguments)},_g=s._Min=function(){return(_g=s._Min=s.asm.Min).apply(null,arguments)},Eg=s._Minimum=function(){return(Eg=s._Minimum=s.asm.Minimum).apply(null,arguments)},Ag=s._Multiply=function(){return(Ag=s._Multiply=s.asm.Multiply).apply(null,arguments)},Pe=s._Neg=function(){return(Pe=s._Neg=s.asm.Neg).apply(null,arguments)},Fg=s._NonMaxSuppressionV3=function(){return(Fg=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},$g=s._NonMaxSuppressionV4=function(){return($g=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},Dg=s._NonMaxSuppressionV5=function(){return(Dg=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},Rg=s._NotEqual=function(){return(Rg=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},Mg=s._OneHot=function(){return(Mg=s._OneHot=s.asm.OneHot).apply(null,arguments)},Pg=s._PadV2=function(){return(Pg=s._PadV2=s.asm.PadV2).apply(null,arguments)},Ju=s._Pow=function(){return(Ju=s._Pow=s.asm.Pow).apply(null,arguments)},fd=s._Prelu=function(){return(fd=s._Prelu=s.asm.Prelu).apply(null,arguments)},gd=s._Prod=function(){return(gd=s._Prod=s.asm.Prod).apply(null,arguments)},Og=s._RealDiv=function(){return(Og=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Lg=s._Relu=function(){return(Lg=s._Relu=s.asm.Relu).apply(null,arguments)},zg=s._Relu6=function(){return(zg=s._Relu6=s.asm.Relu6).apply(null,arguments)},Bg=s._ResizeBilinear=function(){return(Bg=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Wg=s._Reverse=function(){return(Wg=s._Reverse=s.asm.Reverse).apply(null,arguments)},Vg=s._RotateWithOffset=function(){return(Vg=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Be=s._Round=function(){return(Be=s._Round=s.asm.Round).apply(null,arguments)},Ug=s._Rsqrt=function(){return(Ug=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Gg=s._ScatterNd=function(){return(Gg=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Hg=s._SelectV2=function(){return(Hg=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},_s=s._Sigmoid=function(){return(_s=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Fo=s._Sin=function(){return(Fo=s._Sin=s.asm.Sin).apply(null,arguments)},yd=s._Softmax=function(){return(yd=s._Softmax=s.asm.Softmax).apply(null,arguments)},bd=s._Sqrt=function(){return(bd=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},xd=s._Square=function(){return(xd=s._Square=s.asm.Square).apply(null,arguments)},jg=s._SquaredDifference=function(){return(jg=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},qg=s._Step=function(){return(qg=s._Step=s.asm.Step).apply(null,arguments)},vd=s._StridedSlice=function(){return(vd=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Kg=s._Sub=function(){return(Kg=s._Sub=s.asm.Sub).apply(null,arguments)},Ua=s._Sum=function(){return(Ua=s._Sum=s.asm.Sum).apply(null,arguments)},Xg=s._Tanh=function(){return(Xg=s._Tanh=s.asm.Tanh).apply(null,arguments)},Yg=s._Tile=function(){return(Yg=s._Tile=s.asm.Tile).apply(null,arguments)},wd=s._TopK=function(){return(wd=s._TopK=s.asm.TopK).apply(null,arguments)},Lr=s._Transpose=function(){return(Lr=s._Transpose=s.asm.Transpose).apply(null,arguments)},Zg=s.__FusedMatMul=function(){return(Zg=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Jg=s._malloc=function(){return(Jg=s._malloc=s.asm.malloc).apply(null,arguments)},kd=s._free=function(){return(kd=s._free=s.asm.free).apply(null,arguments)},Id=s.__start=function(){return(Id=s.__start=s.asm._start).apply(null,arguments)},Nd=s.stackSave=function(){return(Nd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Qu=s.stackAlloc=function(){return(Qu=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Td=s.stackRestore=function(){return(Td=s.stackRestore=s.asm.stackRestore).apply(null,arguments)};s.asm=Yu,s.cwrap=ne;var Es;s.then=function(V){if(Es)V(s);else{var te=s.onRuntimeInitialized;s.onRuntimeInitialized=function(){te&&te(),V(s)}}return s};function ec(V){this.name="ExitStatus",this.message="Program terminated with exit("+V+")",this.status=V}var Qg=!1;Na=function V(){Es||tc(),Es||(Na=V)};function ey(V){var te=s.__start;try{te();var Ie=0;Sd(Ie,!0)}catch(at){if(at instanceof ec)return;if(at=="unwind"){P=!0;return}else{var _e=at;at&&typeof at=="object"&&at.stack&&(_e=[at,at.stack]),F("exception thrown: "+_e),u(1,at)}}finally{Qg=!0}}function tc(V){if(V=V||l,Ia>0||(An(),Ia>0))return;function te(){Es||(Es=!0,s.calledRun=!0,!G&&(ra(),vn(),s.onRuntimeInitialized&&s.onRuntimeInitialized(),Cd&&ey(V),sa()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),te()},1)):te()}s.run=tc;function Sd(V,te){te&&P&&V===0||(P||(G=!0,q=V,un(),s.onExit&&s.onExit(V)),u(V,new ec(V)))}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();var Cd=!0;return s.noInitialRun&&(Cd=!1),P=!0,tc(),r}}();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),nA=1e-7,aA=1e-4,Rd=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},pc=class{refCount(e){return ua("refCount")}incRef(e){return ua("incRef")}timerAvailable(){return!0}time(e){return ua("time")}read(e){return ua("read")}readSync(e){return ua("readSync")}numDataIds(){return ua("numDataIds")}disposeData(e,t){return ua("disposeData")}write(e,t,n){return ua("write")}move(e,t,n,a,r){return ua("move")}memory(){return ua("memory")}floatPrecision(){return ua("floatPrecision")}epsilon(){return this.floatPrecision()===32?nA:aA}dispose(){return ua("dispose")}};function ua(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s0(e){let t=e.length,n=0,a=0;for(;t>0;)a=Math.random()*t|0,t--,n=e[t],e[t]=e[a],e[a]=n}function rA(e,t){if(e.length!==t.length)throw Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a,r,s=0;for(;n>0;)s=Math.random()*n|0,n--,a=e[n],r=t[n],e[n]=e[s],t[n]=t[s],e[s]=a,t[s]=r}function dc(e,t,n){return Math.max(e,Math.min(t,n))}function sA(e){return e%2==0?e:e+1}function iA(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function As(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Fs(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||on(e)&&!n)for(let a=0;a0,n){return new Promise((a,r)=>{let s=0,i=()=>{if(e()){a();return}s++;let o=t(s);if(n!=null&&s>=n){r();return}setTimeout(i,o)};i()})}function mA(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function ca(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>Gt(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function i0(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:ca(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function o0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function l0(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function u0(e,t){for(let n=0;nt+=n.length),t}function Wr(e){return typeof e=="string"||e instanceof String}function d0(e){return typeof e=="boolean"}function h0(e){return typeof e=="number"}function Md(e){return Array.isArray(e)?Md(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":h0(e)?"float32":Wr(e)?"string":d0(e)?"bool":"float32"}function Vr(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Pd(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function m0(e,t,n){let a=new Array;if(t.length===1){let r=t[0];for(let s=0;so*l);for(let o=0;oa*r);if(n===0)return[];if(n!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return m0(0,e,t)}function oy(e,t){let n=Od(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Lo(e,new Float32Array(n));if(t==="int32")return Lo(e,new Int32Array(n));if(t==="bool")return Lo(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function ly(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function yA(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=vA(n,a)})}};function xA(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(wA(t,a[0],a[1]),a.join("="))),t}function wA(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function vA(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function ee(){return cy}var cy=null;function kA(e){cy=e}var py;function y0(){if(py==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");py=e}return py}function IA(){let e=y0();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function dy(e,t){let n=IA();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var zo="Abs",Bo="Acos",Wo="Acosh",Ur="Add",$s="AddN",Ld="All",zd="Any",Ds="ArgMax",mc="ArgMin",Vo="Asin",Uo="Asinh",Go="Atan",Ho="Atanh",jo="Atan2",Rs="AvgPool",Bd="AvgPoolGrad",fc="AvgPool3D",Wd="AvgPool3DGrad",Ms="BatchMatMul",gc="BatchToSpaceND",Vd="Bincount",b0="BroadcastTo",Ps="Cast",Os="Ceil",Gr="ClipByValue",Ud="Complex",yc="ComplexAbs",qo="Concat",Ls="Conv2D",Gd="Conv2DBackpropFilter",zs="Conv2DBackpropInput",bc="Conv3D",Hd="Conv3DBackpropFilterV2",jd="Conv3DBackpropInputV2",Bs="Cos",Ko="Cosh",Ws="Cumsum",Xo="CropAndResize",qd="DenseBincount",Yo="DepthToSpace",Vs="DepthwiseConv2dNative",Kd="DepthwiseConv2dNativeBackpropFilter",Xd="DepthwiseConv2dNativeBackpropInput",Yd="Diag",xc="Dilation2D",Zd="Dilation2DBackpropInput",Jd="Dilation2DBackpropFilter",Us="RealDiv",Zo="Elu",Qd="EluGrad",Jo="Erf",Qo="Equal",Gs="Exp",el="ExpandDims",tl="Expm1",eh="FFT",vc="Fill",nl="FlipLeftRight",Hs="Floor",js="FloorDiv",qs="FusedBatchNorm",al="GatherV2",rl="GatherNd",sl="Greater",Ks="GreaterEqual",Xs="Identity",th="IFFT",nh="Imag",il="IsFinite",ol="IsInf",ll="IsNan",Ys="LeakyRelu",ul="Less",cl="LessEqual",ah="LinSpace",Zs="Log",pl="Log1p",dl="LogicalAnd",wc="LogicalNot",kc="LogicalOr",x0="LogSoftmax",Ic="LRN",rh="LRNGrad",Js="Max",Qs="Maximum",ei="MaxPool",sh="MaxPoolGrad",Nc="MaxPool3D",ih="MaxPool3DGrad",oh="MaxPoolWithArgmax",ti="Mean",ni="Min",ai="Minimum",Tc="MirrorPad",hl="Mod",lh="Multinomial",ri="Multiply",ml="Neg",fl="NotEqual",gl="NonMaxSuppressionV3",yl="NonMaxSuppressionV4",bl="NonMaxSuppressionV5",xl="OnesLike",si="OneHot",vl="Pack",ii="PadV2",NA="Pool",oi="Pow",li="Prelu",wl="Prod",Sc="Range",uh="Real",kl="Reciprocal",ui="Relu",Il="Reshape",Cc="ResizeNearestNeighbor",ch="ResizeNearestNeighborGrad",ci="ResizeBilinear",ph="ResizeBilinearGrad",pi="Relu6",di="Reverse",hi="Round",mi="Rsqrt",Nl="ScatterNd",Tl="Select",Sl="Selu",Cl="Slice",fi="Sin",_l="Sinh",El="Sign",gi="Sigmoid",Al="Softplus",yi="Sqrt",bi="Sum",_c="SpaceToBatchND",Fl="SplitV",xi="Softmax",vi="SquaredDifference",Ec="Square",wi="Sub",dh="SparseToDense",$l="StridedSlice",Dl="Tan",ki="Tanh",Hr="Tile",Rl="TopK",Ii="Transpose",hh="Unique",Ml="Unpack",Ac="UnsortedSegmentSum",Pl="ZerosLike",jr="Step",mh="FromPixels",Ol="RotateWithOffset",Ni="_FusedMatMul",Ti="FusedConv2D",Si="FusedDepthwiseConv2D",Ll=dy("kernelRegistry",()=>new Map),Fc=dy("gradRegistry",()=>new Map);function fh(e,t){let n=hy(e,t);return Ll.get(n)}function my(e){return Fc.get(e)}function gh(e){let t=Ll.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function $c(e){let{kernelName:t,backendName:n}=e,a=hy(t,n);Ll.has(a)&&console.warn(`The kernel '${t}' for backend '${n}' is already registered`),Ll.set(a,e)}function v0(e){let{kernelName:t}=e;Fc.has(t)&&ee().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`),Fc.set(t,e)}function TA(e,t){let n=hy(e,t);if(!Ll.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ll.delete(n)}function SA(e){if(!Fc.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Fc.delete(e)}function CA(e,t){gh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});$c(a)})}function hy(e,t){return`${t}_${e}`}var k={};Oe(k,{arraysEqual:()=>yr,assert:()=>A,assertNonNegativeIntegerDimensions:()=>ly,assertNonNull:()=>As,assertShapesMatch:()=>sn,bytesFromStringArray:()=>p0,bytesPerElement:()=>iy,checkConversionForErrors:()=>u0,clamp:()=>dc,computeStrides:()=>Oo,createScalarValue:()=>_A,createShuffledIndices:()=>dA,decodeString:()=>bh,distSquared:()=>lA,encodeString:()=>Rc,fetch:()=>EA,flatten:()=>Fs,getArrayFromDType:()=>l0,getTypedArrayFromDType:()=>o0,hasEncodingLoss:()=>fA,indexToLoc:()=>bA,inferDtype:()=>Md,inferFromImplicitShape:()=>mA,isBoolean:()=>d0,isFunction:()=>Vr,isInt:()=>Gt,isNumber:()=>h0,isPromise:()=>uy,isScalarShape:()=>uA,isString:()=>Wr,isTypedArray:()=>on,isValidDtype:()=>c0,locToIndex:()=>yA,makeOnesTypedArray:()=>oy,makeZerosNestedTypedArray:()=>gA,makeZerosTypedArray:()=>Od,nearestDivisor:()=>Pd,nearestLargerEven:()=>sA,now:()=>Dc,parseAxisParam:()=>ca,randUniform:()=>oA,repeatedTry:()=>hA,rightPad:()=>hc,shuffle:()=>s0,shuffleCombo:()=>rA,sizeFromShape:()=>Pt,sizeToSquarishShape:()=>pA,squeezeShape:()=>i0,sum:()=>iA,tanh:()=>cA,toNestedArray:()=>Lo,toTypedArray:()=>yh});function _A(e,t){return t==="string"?Rc(e):yh([e],t)}function AA(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function yh(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Fs(e)),ee().getBool("DEBUG")&&u0(e,t),AA(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Dc();if(this.backendTimer.timerAvailable()?s=this.backendTimer.time(r):(r(),a.map(o=>o.dataSync()),s=Promise.resolve({kernelMs:Dc()-i})),ee().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{FA(c,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function FA(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${u} %c${c} %c${p} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function RA(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[c.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let c=e[l],u=c.inputs;for(let p=0;p=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let c=e[l.id];c!=null?i.push(c):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let c=n(()=>o[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);let u=s.inputs[l];if(!yr(c.shape,u.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${u.shape}'`);if(e[u.id]==null)e[u.id]=c;else{let p=e[u.id];e[u.id]=a(p,c),p.dispose()}}}}var w0=20,Mc=3,fy=7;function OA(e,t,n,a){let r=Oo(t),s=PA(e,t,n,r),i=t.length,o=xh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(c=>" "+c).join(` `)),l.join(` -`)}function AA(e,t,n,a){let r=Pt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Oc(e):e;if(o>1)for(let c=0;cg0){let g=Mc*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-Mc)*i,o*i));return n==="complex64"&&(y=Oc(y),b=Oc(b)),["["+y.map((v,x)=>Pc(v,r[x],n)).join(", ")+", ..., "+b.map((v,x)=>Pc(v,r[o-Mc+x],n)).join(", ")+"]"]}let f=n==="complex64"?Oc(e):Array.from(e);return["["+f.map((g,y)=>Pc(g,r[y],n)).join(", ")+"]"]}let c=t.slice(1),u=a.slice(1),p=a[0]*i,d=[];if(o>g0){for(let f=0;f1)for(let c=0;cw0){let g=Mc*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-Mc)*i,o*i));return n==="complex64"&&(y=Oc(y),b=Oc(b)),["["+y.map((v,x)=>Pc(v,r[x],n)).join(", ")+", ..., "+b.map((v,x)=>Pc(v,r[o-Mc+x],n)).join(", ")+"]"]}let f=n==="complex64"?Oc(e):Array.from(e);return["["+f.map((g,y)=>Pc(g,r[y],n)).join(", ")+"]"]}let c=t.slice(1),u=a.slice(1),p=a[0]*i,d=[];if(o>w0){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||n0(t,this.size),this.strides=Mo(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;afh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Ga().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>fh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Ga().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ga().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return zl.print(this,e)}clone(){return this.throwIfDisposed(),zl.clone(this)}toString(e=!1){let t=this.dataSync();return FA(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),zl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ga().makeVariable(this,e,t,n)}};Object.defineProperty(Ae,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return ly("Tensor",()=>Ae)}Y();var jr=class extends Ae{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!gr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ga().disposeTensor(this),this.dataId=e.dataId,Ga().incRef(this,null)}dispose(){Ga().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(jr,Symbol.hasInstance,{value:e=>e instanceof Ae&&e.assign!=null&&e.assign instanceof Function});var Na={};Oe(Na,{assertTypesMatch:()=>b0,getTensorsInContainer:()=>hy,isTensorInList:()=>PA,makeTypesMatch:()=>Nt});var my;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(my||(my={}));var fy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(fy||(fy={}));var gy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(gy||(gy={}));var yy;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(yy||(yy={}));var by;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(by||(by={}));var OA={float32:yy,int32:fy,bool:gy,complex64:by};function ca(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return OA[e][t]}function yh(e){return ca(e,"int32")}function Nt(e,t){if(e.dtype===t.dtype)return[e,t];let n=ca(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function b0(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function PA(e,t){return t.some(n=>n.id===e.id)}function hy(e){let t=[],n=new Set;return x0(e,t,n),t}function x0(e,t,n){if(e==null)return;if(e instanceof Ae){t.push(e);return}if(!LA(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),x0(s,t,n))}}function LA(e){return Array.isArray(e)||typeof e=="object"}function xy(e){return e.kernelName!=null}var v0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Lc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new v0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){hh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof dc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Lc.nextTensorId++}nextVariableId(){return Lc.nextVariableId++}clone(e){let t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return M.runKernel(Ps,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(dh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=xy(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(xy(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=dh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let v=b.map(x=>{if(x.rank!=null)return x;let{dataId:N,shape:T,dtype:C}=x;return this.makeTensorFromDataId(N,T,C)});if(a){let x=this.getTensorsForGradient(h,m,v);n=this.saveTensorsForBackwardMode(x)}return v}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:c,attrs:u}=e,p=xy(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,c,t,p,n,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(h=>c[h]!=null?c[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=cy(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,c)=>s[c]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Br(e[0])&&(r=e.map(o=>Rc(o)));let s=a.write(r,t,n),i=new Ae(t,n,s,this.nextTensorId());if(this.incRef(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=i0(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Ae(t,n,e,this.nextTensorId());return this.incRef(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new jr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}incRef(e,t){let n=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,n===0){this.state.numDataBuffers++;let a=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(a=e.size*s0(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:a,refCount:0}),this.state.numBytes+=a}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof jr||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;let t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):(t.backend.decComplexRef(e.dataId),this.state.tensorInfo.get(e.dataId).refCount--)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=cy(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((c,u)=>{if(c==null){let p=n[u],d=Rd(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return c}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=hy(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Ae,()=>"The result y returned by f() must be a tensor.");let s=_A(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?zA(r.shape):n,EA(i,s,l=>this.tidy(l),BA);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(Wr(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Ae),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Ae,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(Wr(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),c=Array.isArray(l)?l:[l];A(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(c.every(p=>p instanceof Ae),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let u={};return c.forEach((p,d)=>{u[d]=()=>p}),u};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=py(),n=await this.backend.time(e);return n.wallMs=py()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new v0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Lc.nextTensorId=0;Lc.nextVariableId=0;function zA(e){let t=ay(Pt(e),"float32");return M.makeTensor(t,e,"float32")}function w0(){let e=d0();if(e._tfengine==null){let t=new p0(e);e._tfengine=new Lc(t)}return gA(e._tfengine.ENV),DA(()=>e._tfengine),e._tfengine}var M=w0();function BA(e,t){let n={a:e,b:t};return M.runKernel(Vr,n)}var bh={};Oe(bh,{isBrowser:()=>k0,isMobile:()=>WA});function VA(){return typeof navigator!="undefined"&&navigator!=null}function WA(){if(VA()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function k0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Ha=ee();Ha.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Ha.registerFlag("IS_BROWSER",()=>k0());Ha.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Ha.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Ha.registerFlag("PROD",()=>!1);Ha.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Ha.getBool("DEBUG"));Ha.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Ha.registerFlag("IS_TEST",()=>!1);Ha.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function ja(e,t){let n=e;if(on(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||on(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&ee().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&I0(e,a,[]),a}function I0(e,t,n){if(n=n||[],!Array.isArray(e)&&!on(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),N0(a,r,t,n),e==null||!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=ja(e,r);!on(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?mh(e,r):Fs(e,[],!0);return M.makeTensor(i,s,r)}function zc(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var T0="__op";function P(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+T0;let r=(...s)=>{M.startScope(n);try{let i=a(...s);return sy(i)&&console.error("Cannot return a Promise inside of tidy."),M.endScope(i),i}catch(i){throw M.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function UA(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return M.runKernel(Bd,r)}var qr=P({complex_:UA});function Kr(e,t,n,a){if(a==null&&(a=$d(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){ry(t);let r=Pt(t),s=Pt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!on(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?mh(e,a):Fs(e,[],!0),M.makeTensor(e,t,a)}function Kn(e,t,n){let a=ja(e,n);return Kr(e,t,a,n)}var vy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},xh=4;async function HA(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+xh*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var wy=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function C0(e){return wy?Buffer.byteLength(e):new Blob([e]).size}function qA(e){if(wy)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function _0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function Bc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:C0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:C0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function XA(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function YA(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function ZA(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function jA(){let e=XA(),t=YA(),n=ZA();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var Et=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Et.instance==null&&(Et.instance=new Et),Et.instance}static registerSaveRouter(e){Et.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Et.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Et.getHandlers(e,"save")}static getLoadHandlers(e,t){return Et.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Et.getInstance().loadRouters:Et.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},JA=e=>Et.registerSaveRouter(e),QA=e=>Et.registerLoadRouter(e),eF=e=>Et.getSaveHandlers(e),tF=(e,t)=>Et.getLoadHandlers(e,t),Iy="tensorflowjs",Ny=1,Ti="models_store",Xr="model_info_store";function E0(){if(!ee().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Ty(e){let t=e.result;t.createObjectStore(Ti,{keyPath:"modelPath"}),t.createObjectStore(Xr,{keyPath:"modelPath"})}var Si=class{constructor(e){if(this.indexedDB=E0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(Iy,Ny);r.onupgradeneeded=()=>Ty(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Ti,"readonly"),o=i.objectStore(Ti).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Bc(t),o=s.transaction(Xr,"readwrite"),l=o.objectStore(Xr),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),u;c.onsuccess=()=>{u=s.transaction(Ti,"readwrite");let p=u.objectStore(Ti).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Xr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},c.onerror=p=>(s.close(),a(c.error)),o.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};Si.URL_SCHEME="indexeddb://";var A0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Si.URL_SCHEME)?nF(e.slice(Si.URL_SCHEME.length)):null;Et.registerSaveRouter(A0);Et.registerLoadRouter(A0);function nF(e){return new Si(e)}function aF(e){return e.startsWith(Si.URL_SCHEME)?e.slice(Si.URL_SCHEME.length):e}var rF=class{constructor(){this.indexedDB=E0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Iy,Ny);n.onupgradeneeded=()=>Ty(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Xr,"readonly"),s=r.objectStore(Xr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=aF(e),new Promise((t,n)=>{let a=this.indexedDB.open(Iy,Ny);a.onupgradeneeded=()=>Ty(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Xr,"readwrite"),i=s.objectStore(Xr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),u=()=>{l=r.transaction(Ti,"readwrite");let p=l.objectStore(Ti).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};c.onsuccess=u,c.onerror=p=>(u(),r.close(),n(o.error))}},o.onerror=c=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},yr="/",Bl="tensorflowjs_models",F0="info",sF="model_topology",iF="weight_specs",oF="weight_data",lF="model_metadata";function $0(e){return{info:[Bl,e,F0].join(yr),topology:[Bl,e,sF].join(yr),weightSpecs:[Bl,e,iF].join(yr),weightData:[Bl,e,oF].join(yr),modelMetadata:[Bl,e,lF].join(yr)}}function uF(e){let t=e.split(yr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(yr)}function cF(e){return e.startsWith(Ci.URL_SCHEME)?e.slice(Ci.URL_SCHEME.length):e}var Ci=class{constructor(e){if(!ee().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=$0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Bc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,qA(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=KA(s),t}};Ci.URL_SCHEME="localstorage://";var D0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ci.URL_SCHEME)?pF(e.slice(Ci.URL_SCHEME.length)):null;Et.registerSaveRouter(D0);Et.registerLoadRouter(D0);function pF(e){return new Ci(e)}var dF=class{constructor(){A(ee().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Bl+yr,n=yr+F0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Wl)&&(e=e.slice(0,e.indexOf(Wl))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Xn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function vh(e){if(e.indexOf(Wl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Xn.getSchemes().join(",")}`);return{scheme:e.split(Wl)[0],path:e.split(Wl)[1]}}async function R0(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Et.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Et.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=vh(e).scheme,l=vh(e).path,c=o===vh(e).scheme,u=await r.load();n&&c&&await Xn.getManager(o).removeModel(l);let p=await i.save(u);return n&&!c&&await Xn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function hF(){let e=Xn.getSchemes(),t={};for(let n of e){let a=await Xn.getManager(n).listModels();for(let r in a){let s=n+Wl+r;t[s]=a[r]}}return t}async function mF(e){let t=vh(e);return Xn.getManager(t.scheme).removeModel(t.path)}async function fF(e,t){return R0(e,t,!1)}async function gF(e,t){return R0(e,t,!0)}var yF=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(ee().get("IS_BROWSER")){ee().setPlatform("browser",new yF);try{Xn.registerManager(Ci.URL_SCHEME,new dF)}catch(e){}try{Xn.registerManager(Si.URL_SCHEME,new rF)}catch(e){}}var bF={importFetch:()=>PE()},Sy,xF=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ee().global.fetch!=null?ee().global.fetch(e,t):(Sy==null&&(Sy=bF.importFetch()),Sy(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};ee().get("IS_NODE")&&ee().setPlatform("node",new xF);function Le(e,t="float32",n){return t=t||"float32",ry(e),new Ot(e,t,n)}function vF(e,t){let n=E(e,"x","cast");if(!r0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return M.runKernel(Ps,a,r)}var ce=P({cast_:vF});function wF(e){let t={x:E(e,"x","clone","string_or_numeric")};return M.runKernel(sl,t)}var Yr=P({clone_:wF});function M0(e,t=!1){console.log(e.toString(t))}w0();var kF={buffer:Le,cast:ce,clone:Yr,print:M0};RA(kF);var Ht={};Oe(Ht,{browserFiles:()=>IF,browserHTTPRequest:()=>TF,concatenateArrayBuffers:()=>ky,copyModel:()=>fF,decodeWeights:()=>S0,encodeWeights:()=>HA,fromMemory:()=>SF,getLoadHandlers:()=>tF,getModelArtifactsInfoForJSON:()=>Bc,getSaveHandlers:()=>eF,http:()=>_y,isHTTPScheme:()=>Cy,listModels:()=>hF,loadWeights:()=>NF,moveModel:()=>gF,registerLoadRouter:()=>QA,registerSaveRouter:()=>JA,removeModel:()=>mF,weightsLoaderFactory:()=>P0,withSaveHandler:()=>CF});var _F="model",EF=".json",AF=".weights.bin";function O0(e){return new Promise(t=>setTimeout(t)).then(e)}var Vl=class{constructor(e){if(!ee().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Vl.URL_SCHEME)&&(e=e.slice(Vl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=_F),this.modelTopologyFileName=e+EF,this.weightDataFileName=e+AF}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await O0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await O0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Bc(e)}}}};Vl.URL_SCHEME="downloads://";var FF=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let u=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),u.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let v={modelTopology:o,weightSpecs:u,weightData:ky(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(v.signature=i.signature),i.userDefinedMetadata!=null&&(v.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(v.modelInitializer=i.modelInitializer),n(v)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>_0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=_0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},DF=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Vl.URL_SCHEME)?$F(e.slice(Vl.URL_SCHEME.length)):null;Et.registerSaveRouter(DF);function $F(e="model"){return new Vl(e)}function IF(e){return new FF(e)}function L0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(c=>{let u=n+ ++r/e.length*(a-n);return t(u),c}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,c){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),A(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(s))}async function z0(e,t){t==null&&(t={});let n=t.fetchFunc==null?ee().platform.fetch:t.fetchFunc,a=e.map(c=>n(c,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await L0(a,t.onProgress,r,s)).map(c=>c.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await L0(i,t.onProgress,o,l)}async function NF(e,t="",n,a){return P0(r=>z0(r,{requestInit:a}))(e,t,n)}function P0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=vy[y]*Pt(g.shape),v=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((x,N)=>{x===g.name&&(v(),i[N]=!0)}):v(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),c=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;c.push(f)})});let u=await e(c),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let v=0;v{let x=g.slice(v.groupOffset,v.groupOffset+v.sizeBytes),N=S0(x,[v.manifestEntry]);for(let T in N)p[T]=N[T]}),d+=m}),p}}var RF="application/octet-stream",MF="application/json",Ey=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=ee().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:MF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:RF}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Bc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,u;a!=null&&([c,u]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:c,weightData:u,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=PF(t),r=this.weightPathPrefix||n,s=[];for(let c of e)s.push(...c.weights);let i=[],o=[];for(let c of e)for(let u of c.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(u)):i.push(r+u+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await z0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,ky(l)]}};Ey.URL_SCHEME_REGEX=/^https?:\/\//;function PF(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Cy(e){return e.match(Ey.URL_SCHEME_REGEX)!=null}var B0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Cy(a)):n=Cy(e),n)return _y(e,t)}return null};Et.registerSaveRouter(B0);Et.registerLoadRouter(B0);function _y(e,t){return new Ey(e,t)}function TF(e,t){return _y(e,t)}var Ay=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},OF=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function SF(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Ay(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Ay({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Ay({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function CF(e){return new OF(e)}var W0={};Oe(W0,{confusionMatrix:()=>LF});function zF(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Nt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return M.runKernel(Ms,i,o)}var ze=P({matMul_:zF});function BF(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:E(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return M.runKernel(ai,r,s)}var Ul=P({oneHot_:BF});function WF(e,t){let n=E(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{A(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return M.runKernel(wi,a,r)}var Ue=P({transpose_:WF});function VF(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Ul(ce(a,"int32"),n),i=Ul(ce(r,"int32"),n),o=Ue(s),l=ze(o,i);return ce(l,"int32")}var LF=P({confusionMatrix_:VF}),_i={};Oe(_i,{fromPixels:()=>GF,toPixels:()=>UF});function wh(e,t,n){if(As(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=ja(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Kr(e,t,a,n)}var Gl;function HF(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(dh(ph,M.backendName)!=null){let d={pixels:e},h={numChannels:t};return M.runKernel(ph,d,h)}let[l,c]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],u;i?u=e.getContext("2d").getImageData(0,0,l,c).data:a||n?u=e.data:(s||r||o)&&(Gl==null&&(Gl=document.createElement("canvas").getContext("2d")),Gl.canvas.width=l,Gl.canvas.height=c,Gl.drawImage(e,0,0,l,c),u=Gl.getImageData(0,0,l,c).data);let p;if(t===4)p=new Int32Array(u);else{let d=l*c;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(u[0]=h*o,u[1]=h*o,u[2]=h*o):u[d]=h*o}let p=c*4;l[p+0]=Math.round(u[0]),l[p+1]=Math.round(u[1]),l[p+2]=Math.round(u[2]),l[p+3]=Math.round(u[3])}if(t!=null){t.width=r,t.height=a;let c=t.getContext("2d"),u=new ImageData(l,r,a);c.putImageData(u,0,0)}return n!==e&&n.dispose(),l}var GF=P({fromPixels_:HF}),Fy={};Oe(Fy,{prepareAndValidate:()=>V0});function V0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Pt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/c),1].slice(0,s);return[l,i,c,u]}var $y={};Oe($y,{calculateShapes:()=>U0,validateInput:()=>Ry,validateUpdateShape:()=>Dy});function Dy(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pjF,computeFlatOffset:()=>KF,computeOutShape:()=>G0,getNormalizedAxes:()=>j0,isSliceContinous:()=>qF,maskToAxes:()=>kh,parseSliceParams:()=>J0,sliceInfo:()=>XF,startForAxis:()=>Y0,startIndicesWithElidedDims:()=>q0,stopForAxis:()=>Z0,stopIndicesWithElidedDims:()=>K0,stridesForAxis:()=>X0,stridesWithElidedDims:()=>H0});function jF(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function kh(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function G0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;u=q0(i,h,m,a,e),p=K0(o,h,m,r,e),d=H0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=Q0(t,n,o),c=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=Q0(t,n,o),c=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=hc(0,i,l-1),i}function Z0(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=hc(0,i,l):i=hc(-1,i,l-1),i}function qF(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function KF(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function XF(e,t,n,a,r,s,i,o,l){let c=t.slice(),u=n.slice(),p=a;a==null&&(p=new Array(c.length));let d=kh(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-c.length,m=kh(o),f=e.slice();m.forEach(T=>{c[T]=0,u[T]=1,f.splice(T,0,1)});let{begin:g,end:y,strides:b}=j0(f,d,h,c,u,p,r,s,i);c=g,u=y,p=b;let v=kh(l);v.forEach(T=>{u[T]=c[T]+1,p[T]=1});let x=G0(c,u,p),N=x.filter((T,C)=>v.indexOf(C)===-1);return{nonStrided:p.every(T=>T===1),$begin:c,$end:u,$strides:p,size:x,newShape:f,outShape:N}}var re={};Oe(re,{Serializable:()=>t1,SerializationMap:()=>Ei,registerClass:()=>Zr});var t1=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Ei=class{constructor(){this.classNameMap={}}static getMap(){return Ei.instance==null&&(Ei.instance=new Ei),Ei.instance}static register(e){Ei.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Zr(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Ei.register(e)}var n1={};Oe(n1,{TEST_EPSILON_FLOAT16:()=>a1,encodeStrings:()=>r1,expectArrayBuffersEqual:()=>t$,expectArraysClose:()=>YF,expectArraysEqual:()=>JF,expectNumbersClose:()=>QF,expectPromiseToFail:()=>ZF,expectValuesInRange:()=>e$,testEpsilon:()=>My});var n$=.001,a1=.1;function YF(e,t,n){return n==null&&(n=My()),Py(e,t,(a,r)=>Oy(a,r,n))}function My(){return M.backend.floatPrecision()===32?n$:a1}function Py(e,t,n){let a=!0;if((on(e)||on(t))&&(a=!1),on(e)&&on(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=ja(e),o=ja(t);if(!gr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=on(e)?e:Fs(e),s=on(t)?t:Fs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return d[d.length-1]=" "+d[d.length-1]+"]"+(s?"":m),d}function Oc(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||l0(t,this.size),this.strides=Oo(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;abh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Ga().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>bh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Ga().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Ga().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return zl.print(this,e)}clone(){return this.throwIfDisposed(),zl.clone(this)}toString(e=!1){let t=this.dataSync();return OA(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),zl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Ga().makeVariable(this,e,t,n)}};Object.defineProperty(Ae,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Y(){return dy("Tensor",()=>Ae)}Y();var qr=class extends Ae{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a);this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!yr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Ga().disposeTensor(this),this.dataId=e.dataId,Ga().incRef(this,null)}dispose(){Ga().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(qr,Symbol.hasInstance,{value:e=>e instanceof Ae&&e.assign!=null&&e.assign instanceof Function});var Ta={};Oe(Ta,{assertTypesMatch:()=>I0,getTensorsInContainer:()=>gy,isTensorInList:()=>VA,makeTypesMatch:()=>Nt});var yy;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(yy||(yy={}));var by;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(by||(by={}));var xy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(xy||(xy={}));var vy;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(vy||(vy={}));var wy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(wy||(wy={}));var UA={float32:vy,int32:by,bool:xy,complex64:wy};function pa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return UA[e][t]}function vh(e){return pa(e,"int32")}function Nt(e,t){if(e.dtype===t.dtype)return[e,t];let n=pa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function I0(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function VA(e,t){return t.some(n=>n.id===e.id)}function gy(e){let t=[],n=new Set;return N0(e,t,n),t}function N0(e,t,n){if(e==null)return;if(e instanceof Ae){t.push(e);return}if(!GA(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),N0(s,t,n))}}function GA(e){return Array.isArray(e)||typeof e=="object"}function ky(e){return e.kernelName!=null}var T0=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Lc=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new T0}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){gh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof pc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Lc.nextTensorId++}nextVariableId(){return Lc.nextVariableId++}clone(e){let t=M.runKernel(Xs,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return M.runKernel(Ps,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(fh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ky(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ky(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=fh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let v=b.map(x=>{if(x.rank!=null)return x;let{dataId:N,shape:T,dtype:C}=x;return this.makeTensorFromDataId(N,T,C)});if(a){let x=this.getTensorsForGradient(h,m,v);n=this.saveTensorsForBackwardMode(x)}return v}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:c,attrs:u}=e,p=ky(e)?null:e.backwardsFunc,d;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(d=this.profiler.profileKernel(l,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(d),t=d.outputs)}),a&&this.addTapeNode(l,c,t,p,n,u),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(h=>c[h]!=null?c[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:d.timeMs,extraInfo:d.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=my(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,c)=>s[c]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Wr(e[0])&&(r=e.map(o=>Rc(o)));let s=a.write(r,t,n),i=new Ae(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=p0(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r=new Ae(t,n,e,this.nextTensorId());return this.trackTensor(r,a),r}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new qr(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*iy(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof qr||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*iy(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=my(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((c,u)=>{if(c==null){let p=n[u],d=Od(p.size,p.dtype);return this.makeTensor(d,p.shape,p.dtype)}return c}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=gy(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Ae,()=>"The result y returned by f() must be a tensor.");let s=RA(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?HA(r.shape):n,MA(i,s,l=>this.tidy(l),jA);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(Vr(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Ae),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Ae,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(Vr(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),c=Array.isArray(l)?l:[l];A(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(c.every(p=>p instanceof Ae),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let u={};return c.forEach((p,d)=>{u[d]=()=>p}),u};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=Dc(),n=await this.backend.time(e);return n.wallMs=Dc()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new T0;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Lc.nextTensorId=0;Lc.nextVariableId=0;function HA(e){let t=oy(Pt(e),"float32");return M.makeTensor(t,e,"float32")}function S0(){let e=y0();if(e._tfengine==null){let t=new g0(e);e._tfengine=new Lc(t)}return kA(e._tfengine.ENV),zA(()=>e._tfengine),e._tfengine}var M=S0();function jA(e,t){let n={a:e,b:t};return M.runKernel(Ur,n)}var wh={};Oe(wh,{isBrowser:()=>C0,isMobile:()=>qA});function KA(){return typeof navigator!="undefined"&&navigator!=null}function qA(){if(KA()){let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function C0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Ha=ee();Ha.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Ha.registerFlag("IS_BROWSER",()=>C0());Ha.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Ha.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Ha.registerFlag("PROD",()=>!1);Ha.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Ha.getBool("DEBUG"));Ha.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Ha.registerFlag("IS_TEST",()=>!1);Ha.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function ja(e,t){let n=e;if(on(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||on(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&ee().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&_0(e,a,[]),a}function _0(e,t,n){if(n=n||[],!Array.isArray(e)&&!on(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),E0(a,r,t,n),e==null||!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=ja(e,r);!on(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?yh(e,r):Fs(e,[],!0);return M.makeTensor(i,s,r)}function zc(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var A0="__op";function O(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+A0;let r=(...s)=>{M.startScope(n);try{let i=a(...s);return uy(i)&&console.error("Cannot return a Promise inside of tidy."),M.endScope(i),i}catch(i){throw M.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function XA(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return M.runKernel(Ud,r)}var Kr=O({complex_:XA});function Xr(e,t,n,a){if(a==null&&(a=Md(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!on(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){ly(t);let r=Pt(t),s=Pt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!on(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?yh(e,a):Fs(e,[],!0),M.makeTensor(e,t,a)}function Kn(e,t,n){let a=ja(e,n);return Xr(e,t,a,n)}var Iy={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},kh=4;async function ZA(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let d=await l.bytes(),h=d.reduce((g,y)=>g+y.length,0)+kh*d.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var Ny=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function $0(e){return Ny?Buffer.byteLength(e):new Blob([e]).size}function QA(e){if(Ny)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function D0(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function Bc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:$0(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:$0(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function tF(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)==0;)r-=8388608,a<<=1;return a&=~8388608,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function nF(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function aF(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function JA(){let e=tF(),t=nF(),n=aF();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var Et=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Et.instance==null&&(Et.instance=new Et),Et.instance}static registerSaveRouter(e){Et.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Et.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Et.getHandlers(e,"save")}static getLoadHandlers(e,t){return Et.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?Et.getInstance().loadRouters:Et.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},rF=e=>Et.registerSaveRouter(e),sF=e=>Et.registerLoadRouter(e),iF=e=>Et.getSaveHandlers(e),oF=(e,t)=>Et.getLoadHandlers(e,t),Sy="tensorflowjs",Cy=1,Ci="models_store",Yr="model_info_store";function R0(){if(!ee().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function _y(e){let t=e.result;t.createObjectStore(Ci,{keyPath:"modelPath"}),t.createObjectStore(Yr,{keyPath:"modelPath"})}var _i=class{constructor(e){if(this.indexedDB=R0(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(Sy,Cy);r.onupgradeneeded=()=>_y(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Ci,"readonly"),o=i.objectStore(Ci).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Bc(t),o=s.transaction(Yr,"readwrite"),l=o.objectStore(Yr),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),u;c.onsuccess=()=>{u=s.transaction(Ci,"readwrite");let p=u.objectStore(Ci).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});p.onsuccess=()=>n({modelArtifactsInfo:i}),p.onerror=d=>{l=o.objectStore(Yr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(p.error)),h.onerror=m=>(s.close(),a(p.error))}},c.onerror=p=>(s.close(),a(c.error)),o.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};_i.URL_SCHEME="indexeddb://";var M0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(_i.URL_SCHEME)?lF(e.slice(_i.URL_SCHEME.length)):null;Et.registerSaveRouter(M0);Et.registerLoadRouter(M0);function lF(e){return new _i(e)}function uF(e){return e.startsWith(_i.URL_SCHEME)?e.slice(_i.URL_SCHEME.length):e}var cF=class{constructor(){this.indexedDB=R0()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Sy,Cy);n.onupgradeneeded=()=>_y(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Yr,"readonly"),s=r.objectStore(Yr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=uF(e),new Promise((t,n)=>{let a=this.indexedDB.open(Sy,Cy);a.onupgradeneeded=()=>_y(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Yr,"readwrite"),i=s.objectStore(Yr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),u=()=>{l=r.transaction(Ci,"readwrite");let p=l.objectStore(Ci).delete(e);p.onsuccess=()=>t(o.result.modelArtifactsInfo),p.onerror=d=>n(o.error)};c.onsuccess=u,c.onerror=p=>(u(),r.close(),n(o.error))}},o.onerror=c=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},br="/",Bl="tensorflowjs_models",P0="info",pF="model_topology",dF="weight_specs",hF="weight_data",mF="model_metadata";function O0(e){return{info:[Bl,e,P0].join(br),topology:[Bl,e,pF].join(br),weightSpecs:[Bl,e,dF].join(br),weightData:[Bl,e,hF].join(br),modelMetadata:[Bl,e,mF].join(br)}}function fF(e){let t=e.split(br);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(br)}function gF(e){return e.startsWith(Ei.URL_SCHEME)?e.slice(Ei.URL_SCHEME.length):e}var Ei=class{constructor(e){if(!ee().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=O0(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Bc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,QA(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(r.signature=e.signature),e.userDefinedMetadata!=null&&(r.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(r.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=eF(s),t}};Ei.URL_SCHEME="localstorage://";var L0=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Ei.URL_SCHEME)?yF(e.slice(Ei.URL_SCHEME.length)):null;Et.registerSaveRouter(L0);Et.registerLoadRouter(L0);function yF(e){return new Ei(e)}var bF=class{constructor(){A(ee().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Bl+br,n=br+P0;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Wl)&&(e=e.slice(0,e.indexOf(Wl))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Xn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function Ih(e){if(e.indexOf(Wl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Xn.getSchemes().join(",")}`);return{scheme:e.split(Wl)[0],path:e.split(Wl)[1]}}async function z0(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=Et.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=Et.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=Ih(e).scheme,l=Ih(e).path,c=o===Ih(e).scheme,u=await r.load();n&&c&&await Xn.getManager(o).removeModel(l);let p=await i.save(u);return n&&!c&&await Xn.getManager(o).removeModel(l),p.modelArtifactsInfo}async function xF(){let e=Xn.getSchemes(),t={};for(let n of e){let a=await Xn.getManager(n).listModels();for(let r in a){let s=n+Wl+r;t[s]=a[r]}}return t}async function vF(e){let t=Ih(e);return Xn.getManager(t.scheme).removeModel(t.path)}async function wF(e,t){return z0(e,t,!1)}async function kF(e,t){return z0(e,t,!0)}var IF=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(ee().get("IS_BROWSER")){ee().setPlatform("browser",new IF);try{Xn.registerManager(Ei.URL_SCHEME,new bF)}catch(e){}try{Xn.registerManager(_i.URL_SCHEME,new cF)}catch(e){}}var NF={importFetch:()=>VE()},Ey,TF=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return ee().global.fetch!=null?ee().global.fetch(e,t):(Ey==null&&(Ey=NF.importFetch()),Ey(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};ee().get("IS_NODE")&&ee().setPlatform("node",new TF);function Le(e,t="float32",n){return t=t||"float32",ly(e),new Ot(e,t,n)}function SF(e,t){let n=E(e,"x","cast");if(!c0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return M.runKernel(Ps,a,r)}var ce=O({cast_:SF});function CF(e){let t={x:E(e,"x","clone","string_or_numeric")};return M.runKernel(Xs,t)}var Zr=O({clone_:CF});function B0(e,t=!1){console.log(e.toString(t))}S0();var _F={buffer:Le,cast:ce,clone:Zr,print:B0};BA(_F);var Ht={};Oe(Ht,{browserFiles:()=>EF,browserHTTPRequest:()=>FF,concatenateArrayBuffers:()=>Ty,copyModel:()=>wF,decodeWeights:()=>F0,encodeWeights:()=>ZA,fromMemory:()=>$F,getLoadHandlers:()=>oF,getModelArtifactsInfoForJSON:()=>Bc,getSaveHandlers:()=>iF,http:()=>Fy,isHTTPScheme:()=>Ay,listModels:()=>xF,loadWeights:()=>AF,moveModel:()=>kF,registerLoadRouter:()=>sF,registerSaveRouter:()=>rF,removeModel:()=>vF,weightsLoaderFactory:()=>W0,withSaveHandler:()=>DF});var RF="model",MF=".json",PF=".weights.bin";function V0(e){return new Promise(t=>setTimeout(t)).then(e)}var Vl=class{constructor(e){if(!ee().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Vl.URL_SCHEME)&&(e=e.slice(Vl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=RF),this.modelTopologyFileName=e+MF,this.weightDataFileName=e+PF}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer);let r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(s.download=this.modelTopologyFileName,s.href=r,await V0(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await V0(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Bc(e)}}}};Vl.URL_SCHEME="downloads://";var OF=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=JSON.parse(s.target.result),o=i.modelTopology;if(o==null){a(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&n({modelTopology:o});let l=i.weightsManifest;if(l==null){a(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(h){a(h);return}let u=[],p=[],d=[];l.forEach(h=>{h.paths.forEach(m=>{p.push(m),d.push(null)}),u.push(...h.weights)}),l.forEach(h=>{h.paths.forEach(m=>{let f=new FileReader;f.onload=g=>{let y=g.target.result,b=p.indexOf(m);if(d[b]=y,d.indexOf(null)===-1){let v={modelTopology:o,weightSpecs:u,weightData:Ty(d),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(v.signature=i.signature),i.userDefinedMetadata!=null&&(v.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(v.modelInitializer=i.modelInitializer),n(v)}},f.onerror=g=>a(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},r.onerror=s=>a(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(e)})}checkManifestAndWeightFiles(e,t){let n=[],a=t.map(s=>D0(s.name)),r={};for(let s of e)s.paths.forEach(i=>{let o=D0(i);if(n.indexOf(o)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${o}'`);if(n.push(o),a.indexOf(o)===-1)throw new Error(`Weight file with basename '${o}' is not provided.`);r[i]=t[a.indexOf(o)]});if(n.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${n.length}) and the number of weight files provided (${t.length}).`);return r}},zF=e=>ee().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(Vl.URL_SCHEME)?LF(e.slice(Vl.URL_SCHEME.length)):null;Et.registerSaveRouter(zF);function LF(e="model"){return new Vl(e)}function EF(e){return new OF(e)}function U0(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(c=>{let u=n+ ++r/e.length*(a-n);return t(u),c}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,c){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),A(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(s))}async function G0(e,t){t==null&&(t={});let n=t.fetchFunc==null?ee().platform.fetch:t.fetchFunc,a=e.map(c=>n(c,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await U0(a,t.onProgress,r,s)).map(c=>c.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await U0(i,t.onProgress,o,l)}async function AF(e,t="",n,a){return W0(r=>G0(r,{requestInit:a}))(e,t,n)}function W0(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Iy[y]*Pt(g.shape),v=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((x,N)=>{x===g.name&&(v(),i[N]=!0)}):v(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),c=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;c.push(f)})});let u=await e(c),p={},d=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let v=0;v{let x=g.slice(v.groupOffset,v.groupOffset+v.sizeBytes),N=F0(x,[v.manifestEntry]);for(let T in N)p[T]=N[T]}),d+=m}),p}}var BF="application/octet-stream",WF="application/json",$y=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=ee().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:n};e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(a)],{type:WF}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:BF}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Bc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let m=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?m+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":m+=" Please make sure the server is serving valid JSON for this request.",new Error(m)}let n=t.modelTopology,a=t.weightsManifest,r=t.generatedBy,s=t.convertedBy,i=t.format,o=t.signature,l=t.userDefinedMetadata;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,u;a!=null&&([c,u]=await this.loadWeights(a));let p={modelTopology:n,weightSpecs:c,weightData:u,generatedBy:r,convertedBy:s,format:i};o!=null&&(p.signature=o),l!=null&&(p.userDefinedMetadata=l);let d=t.modelInitializer;return d&&(p.modelInitializer=d),p}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=VF(t),r=this.weightPathPrefix||n,s=[];for(let c of e)s.push(...c.weights);let i=[],o=[];for(let c of e)for(let u of c.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(u)):i.push(r+u+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await G0(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ty(l)]}};$y.URL_SCHEME_REGEX=/^https?:\/\//;function VF(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ay(e){return e.match($y.URL_SCHEME_REGEX)!=null}var H0=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ay(a)):n=Ay(e),n)return Fy(e,t)}return null};Et.registerSaveRouter(H0);Et.registerLoadRouter(H0);function Fy(e,t){return new $y(e,t)}function FF(e,t){return Fy(e,t)}var Dy=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},UF=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function $F(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new Dy(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Dy({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Dy({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function DF(e){return new UF(e)}var j0={};Oe(j0,{confusionMatrix:()=>GF});function HF(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Nt(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return M.runKernel(Ms,i,o)}var ze=O({matMul_:HF});function jF(e,t,n=1,a=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let r={indices:E(e,"indices","oneHot","int32")},s={depth:t,onValue:n,offValue:a};return M.runKernel(si,r,s)}var Ul=O({oneHot_:jF});function qF(e,t){let n=E(e,"x","transpose");if(t==null&&(t=n.shape.map((s,i)=>i).reverse()),A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(s=>{A(s>=0&&s`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let a={x:n},r={perm:t};return M.runKernel(Ii,a,r)}var Ue=O({transpose_:qF});function KF(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=Ul(ce(a,"int32"),n),i=Ul(ce(r,"int32"),n),o=Ue(s),l=ze(o,i);return ce(l,"int32")}var GF=O({confusionMatrix_:KF}),Ai={};Oe(Ai,{fromPixels:()=>YF,toPixels:()=>XF});function Nh(e,t,n){if(As(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=ja(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Xr(e,t,a,n)}var Gl;function ZF(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(r){let d=2;if(r&&e.readyState element.")}if(fh(mh,M.backendName)!=null){let d={pixels:e},h={numChannels:t};return M.runKernel(mh,d,h)}let[l,c]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],u;i?u=e.getContext("2d").getImageData(0,0,l,c).data:a||n?u=e.data:(s||r||o)&&(Gl==null&&(Gl=document.createElement("canvas").getContext("2d")),Gl.canvas.width=l,Gl.canvas.height=c,Gl.drawImage(e,0,0,l,c),u=Gl.getImageData(0,0,l,c).data);let p;if(t===4)p=new Int32Array(u);else{let d=l*c;p=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(u[0]=h*o,u[1]=h*o,u[2]=h*o):u[d]=h*o}let p=c*4;l[p+0]=Math.round(u[0]),l[p+1]=Math.round(u[1]),l[p+2]=Math.round(u[2]),l[p+3]=Math.round(u[3])}if(t!=null){t.width=r,t.height=a;let c=t.getContext("2d"),u=new ImageData(l,r,a);c.putImageData(u,0,0)}return n!==e&&n.dispose(),l}var YF=O({fromPixels_:ZF}),Ry={};Oe(Ry,{prepareAndValidate:()=>q0});function q0(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(Pt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let p=0;pp/c),1].slice(0,s);return[l,i,c,u]}var My={};Oe(My,{calculateShapes:()=>K0,validateInput:()=>Oy,validateUpdateShape:()=>Py});function Py(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let p=r;pJF,computeFlatOffset:()=>e$,computeOutShape:()=>X0,getNormalizedAxes:()=>Z0,isSliceContinous:()=>QF,maskToAxes:()=>Th,parseSliceParams:()=>a1,sliceInfo:()=>t$,startForAxis:()=>t1,startIndicesWithElidedDims:()=>J0,stopForAxis:()=>n1,stopIndicesWithElidedDims:()=>Q0,stridesForAxis:()=>e1,stridesWithElidedDims:()=>Y0});function JF(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function Th(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function X0(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;u=J0(i,h,m,a,e),p=Q0(o,h,m,r,e),d=Y0(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=r1(t,n,o),c=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=r1(t,n,o),c=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=dc(0,i,l-1),i}function n1(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=dc(0,i,l):i=dc(-1,i,l-1),i}function QF(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function e$(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function t$(e,t,n,a,r,s,i,o,l){let c=t.slice(),u=n.slice(),p=a;a==null&&(p=new Array(c.length));let d=Th(i);if(d.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(i!==0&&o!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(i!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let h=e.length-c.length,m=Th(o),f=e.slice();m.forEach(T=>{c[T]=0,u[T]=1,f.splice(T,0,1)});let{begin:g,end:y,strides:b}=Z0(f,d,h,c,u,p,r,s,i);c=g,u=y,p=b;let v=Th(l);v.forEach(T=>{u[T]=c[T]+1,p[T]=1});let x=X0(c,u,p),N=x.filter((T,C)=>v.indexOf(C)===-1);return{nonStrided:p.every(T=>T===1),$begin:c,$end:u,$strides:p,size:x,newShape:f,outShape:N}}var re={};Oe(re,{Serializable:()=>i1,SerializationMap:()=>Fi,registerClass:()=>Jr});var i1=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Fi=class{constructor(){this.classNameMap={}}static getMap(){return Fi.instance==null&&(Fi.instance=new Fi),Fi.instance}static register(e){Fi.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Jr(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Fi.register(e)}var o1={};Oe(o1,{TEST_EPSILON_FLOAT16:()=>l1,encodeStrings:()=>u1,expectArrayBuffersEqual:()=>o$,expectArraysClose:()=>n$,expectArraysEqual:()=>r$,expectNumbersClose:()=>s$,expectPromiseToFail:()=>a$,expectValuesInRange:()=>i$,testEpsilon:()=>Ly});var l$=.001,l1=.1;function n$(e,t,n){return n==null&&(n=Ly()),zy(e,t,(a,r)=>By(a,r,n))}function Ly(){return M.backend.floatPrecision()===32?l$:l1}function zy(e,t,n){let a=!0;if((on(e)||on(t))&&(a=!1),on(e)&&on(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=ja(e),o=ja(t);if(!yr(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=on(e)?e:Fs(e),s=on(t)?t:Fs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t())}function JF(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Br(e)||Br(e[0])||Br(t)||Br(t[0])?Py(e,n,(a,r)=>a==r):Py(e,t,(a,r)=>Oy(a,r,0))}function QF(e,t,n){if(n==null&&(n=My()),!Oy(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function Oy(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function e$(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function t$(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function r1(e){for(let t=0;tt.dispose())}function jt(e){return M.keep(e)}function l$(e){return M.time(e)}function u$(e){return M.setBackend(e)}function c$(){return M.ready()}function p$(){return M.backendName}function d$(e){M.removeBackend(e)}function h$(e){return M.findBackend(e)}function m$(e){return M.findBackendFactory(e)}function Nh(e,t,n=1){return M.registerBackend(e,t,n)}function i1(){return M.backend}function f$(e,t){ee().setPlatform(e,t)}function g$(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Vr,r)}var Z=P({add_:g$});function y$(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Hs,r)}var Th=P({floorDiv_:y$});function b$(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Nt(n,a),n.dtype==="int32"&&a.dtype==="int32")return Th(n,a);let r={a:n,b:a},s={};return M.runKernel(Vs,r,s)}var ve=P({div_:b$});function x$(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(ni,r)}var L=P({mul_:x$});function v$(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return M.runKernel(bc,n)}else{let n={x:t};return M.runKernel(Oo,n)}}var Lt=P({abs_:v$});function w$(e){let t={x:E(e,"x","acos")};return M.runKernel(Lo,t)}var zy=P({acos_:w$});function k$(e){let t={x:E(e,"x","acosh")};return M.runKernel(zo,t)}var By=P({acosh_:k$});function I$(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!gr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return M.runKernel($s,a)}var o1=P({addN_:I$});function N$(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return M.runKernel(Md,a,r)}var Sh=P({all_:N$});function T$(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return M.runKernel(Pd,a,r)}var Wc=P({any_:T$});function S$(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return M.runKernel(Ds,n,a)}var Vc=P({argMax_:S$});function C$(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return M.runKernel(fc,n,a)}var Wy=P({argMin_:C$});function _$(e){let t={x:E(e,"x","asin")};return M.runKernel(Bo,t)}var Vy=P({asin_:_$});function E$(e){let t={x:E(e,"x","asinh")};return M.runKernel(Wo,t)}var Uy=P({asinh_:E$});function A$(e){let t={x:E(e,"x","atan")};return M.runKernel(Vo,t)}var Gy=P({atan_:A$});function F$(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Go,r)}var Hy=P({atan2_:F$});function $$(e){let t={x:E(e,"x","atanh")};return M.runKernel(Uo,t)}var jy=P({atanh_:$$});function D$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=l1(r);return Uc(e,o,n,s,a,null,null,l)}function u1(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Ch(t),c;if(i==="channelsLast")c=[o,l,e[3],e[3]];else if(i==="channelsFirst")c=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Uc(e,c,n,a,r,s,!1,i)}function R$(e,t,n,a,r,s,i="NDHWC"){let[o,l,c]=qy(t),u,p;if(i==="NDHWC")p="channelsLast",u=[o,l,c,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",u=[o,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return c1(e,u,n,a,r,!1,p,s)}function Uc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,c,u,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,c,u,p]=e;else if(o==="channelsFirst")[l,p,c,u]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=Ch(n),[y,b]=Ch(a),v=Hl(d,y),x=Hl(h,b),{padInfo:N,outHeight:T,outWidth:C}=M$(r,c,u,f,g,v,x,s,o),$=i?m*p:m,F;return o==="channelsFirst"?F=[l,$,T,C]:o==="channelsLast"&&(F=[l,T,C,$]),{batchSize:l,dataFormat:o,inHeight:c,inWidth:u,inChannels:p,outHeight:T,outWidth:C,outChannels:$,padInfo:N,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:v,effectiveFilterWidth:x,dilationHeight:y,dilationWidth:b,inShape:e,outShape:F,filterShape:t}}function c1(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,c,u,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,u,p,d]=e;else if(i==="channelsFirst")[l,d,c,u,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,v]=qy(n),[x,N,T]=qy(a),C=Hl(h,x),$=Hl(m,N),F=Hl(f,T),{padInfo:O,outDepth:B,outHeight:W,outWidth:G}=P$(r,c,u,p,y,b,v,C,$,F,o),q=s?g*d:g,H;return i==="channelsFirst"?H=[l,q,B,W,G]:i==="channelsLast"&&(H=[l,B,W,G,q]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:u,inWidth:p,inChannels:d,outDepth:B,outHeight:W,outWidth:G,outChannels:q,padInfo:O,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:x,dilationHeight:N,dilationWidth:T,inShape:e,outShape:H,filterShape:t}}function O$(e,t,n,a,r){a==null&&(a=Ky(e,t,n));let s=e[0],i=e[1],o=Ai((s-t+2*a)/n+1,r),l=Ai((i-t+2*a)/n+1,r);return[o,l]}function L$(e,t,n,a,r,s){r==null&&(r=Ky(e,t,a));let i=e[0],o=e[1],l=e[2],c=Ai((i-t+2*r)/a+1,s),u=Ai((o-t+2*r)/a+1,s),p=Ai((l-t+2*r)/a+1,s);return[c,u,p,n]}function Ky(e,t,n,a=1){let r=Hl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Ch(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function qy(e){return typeof e=="number"?[e,e,e]:e}function Hl(e,t){return t<=1?e:e+(e-1)*(t-1)}function M$(e,t,n,a,r,s,i,o,l){let c,u,p;if(typeof e=="number"){c={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=O$([t,n],s,a,e,o);u=d[0],p=d[1]}else if(e==="same"){u=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(u-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];c={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},u=Ai((t-s+d+h)/a+1,o),p=Ai((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:u,outWidth:p}}function P$(e,t,n,a,r,s,i,o,l,c,u){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=L$([t,n,a,1],o,1,r,e,u);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+c-a,b=Math.floor(f/2),v=f-b,x=Math.floor(g/2),N=g-x,T=Math.floor(y/2),C=y-T;p={top:x,bottom:N,left:T,right:C,front:b,back:v,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-c+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function Ai(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Qr(e){let[t,n,a]=Ch(e);return t===1&&n===1&&a===1}function qa(e,t){return Qr(e)||Qr(t)}function l1(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function z$(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return M.runKernel(Il,n,a)}var j=P({reshape_:z$});function B$(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(qa(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=j(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&A(Gt(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Rs,c,u);return p=ce(p,s.dtype),l?j(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yn=P({avgPool_:B$});function W$(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(gc,c,u);return p=ce(p,o.dtype),l?j(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Xy=P({avgPool3d_:W$});function V$(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=zc(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return Yr(n[0]);let a=n,r={axis:t};return M.runKernel(jo,a,r)}var Qe=P({concat_:V$});function U$(e){let t={x:E(e,"x","sigmoid")};return M.runKernel(mi,t)}var pa=P({sigmoid_:U$});function G$(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return M.runKernel(Cl,r,s)}var We=P({slice_:G$});function H$(e){let t={x:E(e,"x","tanh")};return M.runKernel(vi,t)}var jl=P({tanh_:H$});function j$(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),c=E(a,"data","basicLSTMCell"),u=E(r,"c","basicLSTMCell"),p=E(s,"h","basicLSTMCell"),d=Qe([c,p],1),h=ze(d,o),m=Z(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=We(m,[0,0],y),v=We(m,[0,g],y),x=We(m,[0,g*2],y),N=We(m,[0,g*3],y),T=Z(L(pa(b),jl(v)),L(u,pa(Z(i,x)))),C=L(jl(T),pa(N));return[T,C]}var q$=P({basicLSTMCell_:j$});function K$(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return M.runKernel(yc,s,i)}var Gc=P({batchToSpaceND_:K$});function X$(e){let t;return e.rank===0||e.rank===1?t=j(e,[1,1,1,e.size]):e.rank===2?t=j(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=j(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function Y$(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;a!=null&&(u=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:X$(i),scale:c,offset:u,mean:o,variance:l},d={varianceEpsilon:s},h=M.runKernel(js,p,d);return j(h,i.shape)}var br=P({batchNorm_:Y$});function Z$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),br(i,o,l,u,c,s)}var p1=P({batchNorm2d_:Z$});function J$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),br(i,o,l,u,c,s)}var d1=P({batchNorm3d_:J$});function Q$(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),br(i,o,l,u,c,s)}var h1=P({batchNorm4d_:Q$});function eD(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return M.runKernel(zd,s,i)}var m1=P({bincount_:eD});function tD(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return Yr(n);let i={x:n},o={reps:s};return M.runKernel(Gr,i,o)}var Hc=P({broadcastTo_:tD});function nD(e){let t={x:E(e,"x","ceil")};return M.runKernel(Ho,t)}var Yy=P({ceil_:nD});function aD(e,t,n){let a=E(e,"x","clipByValue");A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return M.runKernel(Ur,r,s)}var qt=P({clipByValue_:aD});function rD(e){return Qe(e,0)}var f1=P({concat1d_:rD});function sD(e,t){return Qe(e,t)}var g1=P({concat2d_:sD});function iD(e,t){return Qe(e,t)}var y1=P({concat3d_:iD});function oD(e,t){return Qe(e,t)}var b1=P({concat4d_:oD});function lD(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d"),l=E(t,"filter","conv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=j(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?c.shape[3]:c.shape[1];A(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),A(qa(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:c,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=M.runKernel(Os,d,h);return u?j(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=P({conv2d_:lD});function uD(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),c=o,u=!1;o.rank===2&&(u=!0,c=j(o,[1,o.shape[0],o.shape[1]])),A(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(qa(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=j(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=j(c,[c.shape[0],1,c.shape[1],c.shape[2]]),h=At(d,p,[1,n],a,"NHWC",[1,s],i);return u?j(h,[h.shape[2],h.shape[3]]):j(h,[h.shape[0],h.shape[2],h.shape[3]])}var _h=P({conv1d_:uD});function cD(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,c=!1;t.rank===3&&(c=!0,l=j(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let u=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${u}) must match input depth for filter ${n.shape[2]}.`),A(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&A(Gt(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=M.runKernel(Ls,d,h);return c?j(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Zy=P({conv2DBackpropInput_:cD});function pD(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return Zy(n,i,o,a,r,"NHWC",s)}var Eh=P({conv2dTranspose_:pD});function dD(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,c=!1;i.rank===4&&(c=!0,l=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(qa(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let u={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=M.runKernel(xc,u,p);return c?j(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Jy=P({conv3d_:dD});function hD(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=j(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],c=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(c===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${n.shape[4]}.`);let u={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=M.runKernel(Ud,u,p);return o?j(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var x1=P({conv3DBackpropInput_:hD});function mD(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return x1(n,s,i,a,r)}var fD=P({conv3dTranspose_:mD});function gD(e){let t={x:E(e,"x","cos")};return M.runKernel(zs,t)}var jc=P({cos_:gD});function yD(e){let t={x:E(e,"x","cosh")};return M.runKernel(qo,t)}var Ah=P({cosh_:yD});function bD(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return M.runKernel(Bs,r,s)}var Fh=P({cumsum_:bD});function xD(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return M.runKernel(Gd,i,o)}var v1=P({denseBincount_:xD});function vD(e,t,n="NHWC"){let a=E(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}}function a$(e,t){e().then(()=>t.fail(),()=>t())}function r$(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Wr(e)||Wr(e[0])||Wr(t)||Wr(t[0])?zy(e,n,(a,r)=>a==r):zy(e,t,(a,r)=>By(a,r,0))}function s$(e,t,n){if(n==null&&(n=Ly()),!By(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function By(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function i$(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function o$(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}function u1(e){for(let t=0;tt.dispose())}function jt(e){return M.keep(e)}function m$(e){return M.time(e)}function f$(e){return M.setBackend(e)}function g$(){return M.ready()}function y$(){return M.backendName}function b$(e){M.removeBackend(e)}function x$(e){return M.findBackend(e)}function v$(e){return M.findBackendFactory(e)}function Ch(e,t,n=1){return M.registerBackend(e,t,n)}function p1(){return M.backend}function w$(e,t){ee().setPlatform(e,t)}function k$(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(Ur,r)}var Z=O({add_:k$});function I$(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(js,r)}var _h=O({floorDiv_:I$});function N$(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Nt(n,a),n.dtype==="int32"&&a.dtype==="int32")return _h(n,a);let r={a:n,b:a},s={};return M.runKernel(Us,r,s)}var ve=O({div_:N$});function T$(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(ri,r)}var L=O({mul_:T$});function S$(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return M.runKernel(yc,n)}else{let n={x:t};return M.runKernel(zo,n)}}var Lt=O({abs_:S$});function C$(e){let t={x:E(e,"x","acos")};return M.runKernel(Bo,t)}var Vy=O({acos_:C$});function _$(e){let t={x:E(e,"x","acosh")};return M.runKernel(Wo,t)}var Uy=O({acosh_:_$});function E$(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!yr(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return M.runKernel($s,a)}var d1=O({addN_:E$});function A$(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return M.runKernel(Ld,a,r)}var Eh=O({all_:A$});function F$(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return M.runKernel(zd,a,r)}var Wc=O({any_:F$});function $$(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return M.runKernel(Ds,n,a)}var Vc=O({argMax_:$$});function D$(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return M.runKernel(mc,n,a)}var Gy=O({argMin_:D$});function R$(e){let t={x:E(e,"x","asin")};return M.runKernel(Vo,t)}var Hy=O({asin_:R$});function M$(e){let t={x:E(e,"x","asinh")};return M.runKernel(Uo,t)}var jy=O({asinh_:M$});function P$(e){let t={x:E(e,"x","atan")};return M.runKernel(Go,t)}var qy=O({atan_:P$});function O$(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(jo,r)}var Ky=O({atan2_:O$});function L$(e){let t={x:E(e,"x","atanh")};return M.runKernel(Ho,t)}var Xy=O({atanh_:L$});function z$(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=h1(r);return Uc(e,o,n,s,a,null,null,l)}function m1(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Ah(t),c;if(i==="channelsLast")c=[o,l,e[3],e[3]];else if(i==="channelsFirst")c=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Uc(e,c,n,a,r,s,!1,i)}function B$(e,t,n,a,r,s,i="NDHWC"){let[o,l,c]=Yy(t),u,p;if(i==="NDHWC")p="channelsLast",u=[o,l,c,e[4],e[4]];else if(i==="NCDHW")p="channelsFirst",u=[o,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return f1(e,u,n,a,r,!1,p,s)}function Uc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,c,u,p]=[-1,-1,-1,-1];if(o==="channelsLast")[l,c,u,p]=e;else if(o==="channelsFirst")[l,p,c,u]=e;else throw new Error(`Unknown dataFormat ${o}`);let[d,h,,m]=t,[f,g]=Ah(n),[y,b]=Ah(a),v=Hl(d,y),x=Hl(h,b),{padInfo:N,outHeight:T,outWidth:C}=W$(r,c,u,f,g,v,x,s,o),F=i?m*p:m,$;return o==="channelsFirst"?$=[l,F,T,C]:o==="channelsLast"&&($=[l,T,C,F]),{batchSize:l,dataFormat:o,inHeight:c,inWidth:u,inChannels:p,outHeight:T,outWidth:C,outChannels:F,padInfo:N,strideHeight:f,strideWidth:g,filterHeight:d,filterWidth:h,effectiveFilterHeight:v,effectiveFilterWidth:x,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function f1(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,c,u,p,d]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,c,u,p,d]=e;else if(i==="channelsFirst")[l,d,c,u,p]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,v]=Yy(n),[x,N,T]=Yy(a),C=Hl(h,x),F=Hl(m,N),$=Hl(f,T),{padInfo:P,outDepth:B,outHeight:W,outWidth:G}=V$(r,c,u,p,y,b,v,C,F,$,o),q=s?g*d:g,j;return i==="channelsFirst"?j=[l,q,B,W,G]:i==="channelsLast"&&(j=[l,B,W,G,q]),{batchSize:l,dataFormat:i,inDepth:c,inHeight:u,inWidth:p,inChannels:d,outDepth:B,outHeight:W,outWidth:G,outChannels:q,padInfo:P,strideDepth:y,strideHeight:b,strideWidth:v,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:F,effectiveFilterWidth:$,dilationDepth:x,dilationHeight:N,dilationWidth:T,inShape:e,outShape:j,filterShape:t}}function U$(e,t,n,a,r){a==null&&(a=Zy(e,t,n));let s=e[0],i=e[1],o=$i((s-t+2*a)/n+1,r),l=$i((i-t+2*a)/n+1,r);return[o,l]}function G$(e,t,n,a,r,s){r==null&&(r=Zy(e,t,a));let i=e[0],o=e[1],l=e[2],c=$i((i-t+2*r)/a+1,s),u=$i((o-t+2*r)/a+1,s),p=$i((l-t+2*r)/a+1,s);return[c,u,p,n]}function Zy(e,t,n,a=1){let r=Hl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Ah(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Yy(e){return typeof e=="number"?[e,e,e]:e}function Hl(e,t){return t<=1?e:e+(e-1)*(t-1)}function W$(e,t,n,a,r,s,i,o,l){let c,u,p;if(typeof e=="number"){c={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let d=U$([t,n],s,a,e,o);u=d[0],p=d[1]}else if(e==="same"){u=Math.ceil(t/a),p=Math.ceil(n/r);let d=Math.max(0,(u-1)*a+s-t),h=Math.max(0,(p-1)*r+i-n),m=Math.floor(d/2),f=d-m,g=Math.floor(h/2),y=h-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-s+1)/a),p=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let d=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];c={top:d,bottom:h,left:m,right:f,type:d===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},u=$i((t-s+d+h)/a+1,o),p=$i((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:u,outWidth:p}}function V$(e,t,n,a,r,s,i,o,l,c,u){let p,d,h,m;if(typeof e=="number"){p={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=G$([t,n,a,1],o,1,r,e,u);d=f[0],h=f[1],m=f[2]}else if(e==="same"){d=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(d-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+c-a,b=Math.floor(f/2),v=f-b,x=Math.floor(g/2),N=g-x,T=Math.floor(y/2),C=y-T;p={top:x,bottom:N,left:T,right:C,front:b,back:v,type:"SAME"}}else if(e==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},d=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-c+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outDepth:d,outHeight:h,outWidth:m}}function $i(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Qr(e){let[t,n,a]=Ah(e);return t===1&&n===1&&a===1}function Ka(e,t){return Qr(e)||Qr(t)}function h1(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function H$(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return M.runKernel(Il,n,a)}var H=O({reshape_:H$});function j$(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(Ka(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),r!=null&&A(Gt(a),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Rs,c,u);return p=ce(p,s.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yn=O({avgPool_:j$});function q$(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(fc,c,u);return p=ce(p,o.dtype),l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Jy=O({avgPool3d_:q$});function K$(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=zc(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return Zr(n[0]);let a=n,r={axis:t};return M.runKernel(qo,a,r)}var Qe=O({concat_:K$});function X$(e){let t={x:E(e,"x","sigmoid")};return M.runKernel(gi,t)}var da=O({sigmoid_:X$});function Y$(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return M.runKernel(Cl,r,s)}var We=O({slice_:Y$});function Z$(e){let t={x:E(e,"x","tanh")};return M.runKernel(ki,t)}var jl=O({tanh_:Z$});function J$(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),c=E(a,"data","basicLSTMCell"),u=E(r,"c","basicLSTMCell"),p=E(s,"h","basicLSTMCell"),d=Qe([c,p],1),h=ze(d,o),m=Z(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=We(m,[0,0],y),v=We(m,[0,g],y),x=We(m,[0,g*2],y),N=We(m,[0,g*3],y),T=Z(L(da(b),jl(v)),L(u,da(Z(i,x)))),C=L(jl(T),da(N));return[T,C]}var Q$=O({basicLSTMCell_:J$});function eD(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r==0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return M.runKernel(gc,s,i)}var Gc=O({batchToSpaceND_:eD});function tD(e){let t;return e.rank===0||e.rank===1?t=H(e,[1,1,1,e.size]):e.rank===2?t=H(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function nD(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;a!=null&&(u=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(c==null||o.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let p={x:tD(i),scale:c,offset:u,mean:o,variance:l},d={varianceEpsilon:s},h=M.runKernel(qs,p,d);return H(h,i.shape)}var xr=O({batchNorm_:nD});function aD(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),xr(i,o,l,u,c,s)}var g1=O({batchNorm2d_:aD});function rD(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),xr(i,o,l,u,c,s)}var y1=O({batchNorm3d_:rD});function sD(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),c;r!=null&&(c=E(r,"scale","batchNorm"));let u;return a!=null&&(u=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&A(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),xr(i,o,l,u,c,s)}var b1=O({batchNorm4d_:sD});function iD(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return M.runKernel(Vd,s,i)}var x1=O({bincount_:iD});function oD(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return Zr(n);let i={x:n},o={reps:s};return M.runKernel(Hr,i,o)}var Hc=O({broadcastTo_:oD});function lD(e){let t={x:E(e,"x","ceil")};return M.runKernel(Os,t)}var Qy=O({ceil_:lD});function uD(e,t,n){let a=E(e,"x","clipByValue");A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`);let r={x:a},s={clipValueMin:t,clipValueMax:n};return M.runKernel(Gr,r,s)}var qt=O({clipByValue_:uD});function cD(e){return Qe(e,0)}var v1=O({concat1d_:cD});function pD(e,t){return Qe(e,t)}var w1=O({concat2d_:pD});function dD(e,t){return Qe(e,t)}var k1=O({concat3d_:dD});function hD(e,t){return Qe(e,t)}var I1=O({concat4d_:hD});function mD(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d"),l=E(t,"filter","conv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p=r==="NHWC"?c.shape[3]:c.shape[1];A(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),A(Ka(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let d={x:c,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=M.runKernel(Ls,d,h);return u?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=O({conv2d_:mD});function fD(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),c=o,u=!1;o.rank===2&&(u=!0,c=H(o,[1,o.shape[0],o.shape[1]])),A(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),i!=null&&A(Gt(a),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(Ka(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let p=H(l,[1,l.shape[0],l.shape[1],l.shape[2]]),d=H(c,[c.shape[0],1,c.shape[1],c.shape[2]]),h=At(d,p,[1,n],a,"NHWC",[1,s],i);return u?H(h,[h.shape[2],h.shape[3]]):H(h,[h.shape[0],h.shape[2],h.shape[3]])}var Fh=O({conv1d_:fD});function gD(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,c=!1;t.rank===3&&(c=!0,l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let u=s==="NHWC"?o[3]:o[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${u}) must match input depth for filter ${n.shape[2]}.`),A(p===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${n.shape[3]}.`),i!=null&&A(Gt(r),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let d={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=M.runKernel(zs,d,h);return c?H(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var eb=O({conv2DBackpropInput_:gD});function yD(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return eb(n,i,o,a,r,"NHWC",s)}var $h=O({conv2dTranspose_:yD});function bD(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,c=!1;i.rank===4&&(c=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(Ka(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let u={x:l,filter:o},p={strides:n,pad:a,dataFormat:r,dilations:s},d=M.runKernel(bc,u,p);return c?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var tb=O({conv3d_:bD});function xD(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],c=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(c===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${n.shape[4]}.`);let u={dy:i,filter:n},p={pad:r,strides:a,inputShape:s},d=M.runKernel(jd,u,p);return o?H(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var N1=O({conv3DBackpropInput_:xD});function vD(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return N1(n,s,i,a,r)}var wD=O({conv3dTranspose_:vD});function kD(e){let t={x:E(e,"x","cos")};return M.runKernel(Bs,t)}var jc=O({cos_:kD});function ID(e){let t={x:E(e,"x","cosh")};return M.runKernel(Ko,t)}var Dh=O({cosh_:ID});function ND(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return M.runKernel(Ws,r,s)}var Rh=O({cumsum_:ND});function TD(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return M.runKernel(qd,i,o)}var T1=O({denseBincount_:TD});function SD(e,t,n="NHWC"){let a=E(e,"x","depthToSpace"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),A(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return M.runKernel(Xo,o,l)}var Qy=P({depthToSpace_:vD});function wD(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d"),l=E(t,"filter","depthwiseConv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=j(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&A(Gt(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:c,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=M.runKernel(Ws,p,d);return u?j(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var es=P({depthwiseConv2d_:wD});function kD(e){let t={x:E(e,"x","diag")};return M.runKernel(qd,t)}var ID=P({diag_:kD});function ND(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,c=!1;i.rank===3&&(l=j(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0);let u={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=M.runKernel(vc,u,p);return c?j(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var eb=P({dilation2d_:ND});function TD(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function zt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function xt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&sn(s.shape,l.shape,"Error in where: ");let c={condition:s,t:o,e:l};return M.runKernel(Tl,c)}var wn=P({where_:CD});function _D(e){let t={x:E(e,"x","zerosLike")};return M.runKernel(Pl,t)}var Ge=P({zerosLike_:_D});function ED(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Nt(n,a);let r=ve(n,a),s=Ge(r),i=ts(a,s);return wn(i,s,r)}var tb=P({divNoNan_:ED});function AD(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=j(n,[1,-1]),o=j(a,[-1,1]),l=ze(i,o);return j(l,[])}else if(n.rank===1&&a.rank===2){let i=j(n,[1,-1]),o=j(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return j(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=j(a,[-1,1]),o=ze(n,i);return j(o,[o.size])}else{let i=j(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var w1=P({dot_:AD});function FD(e){let t={x:E(e,"x","elu")};return M.runKernel(Yo,t)}var ql=P({elu_:FD});function $D(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ce(t,"float32"));let n={x:t};return M.runKernel(Zo,n)}var nb=P({erf_:$D});function DD(e){let t={x:E(e,"x","exp")};return M.runKernel(Us,t)}var dn=P({exp_:DD});function RD(e,t=0){let n=E(e,"x","expandDims","string_or_numeric");A(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return M.runKernel(Qo,a,r)}var Fn=P({expandDims_:RD});function MD(e){let t={x:E(e,"x","expm1")};return M.runKernel(el,t)}var ab=P({expm1_:MD});function PD(e,t){let n=E(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return M.runKernel(Gr,a,r)}var Ka=P({tile_:PD});function OD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),A(Gt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=j(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},c={depthRadius:t,bias:n,alpha:a,beta:r},u=M.runKernel(Nc,l,c);return o?j(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var sb=P({localResponseNormalization_:XD});function YD(e){let t={x:E(e,"x","log")};return M.runKernel(Xs,t)}var $n=P({log_:YD});function ZD(e){let t={x:E(e,"x","log1p")};return M.runKernel(pl,t)}var Rh=P({log1p_:ZD});function JD(e){return A(Wr(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(a),[a],r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Mh(i),i[0]})}}function QD(e){return A(Wr(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=zc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(...a),a,r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Mh(i),i})}}function eR(e){return A(Wr(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ae,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=M.gradients(()=>e(t),[t],n);return Mh(a),{grad:a[0],value:r}}}function tR(e){return A(Wr(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ae),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=M.gradients(()=>e(...t),t,n);return n!=null&&sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Mh(a.grads),a}}function S1(e,t){A(Wr(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(c=>c instanceof jr),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let c in M.registeredVariables)t.push(M.registeredVariables[c])}let a=n?t.filter(c=>!c.trainable):null,r=t.length;t=t.filter(c=>c.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=M.gradients(e,t,null,s);A(o.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((c,u)=>{o[u]!=null&&(l[c.name]=o[u])}),a!=null&&a.forEach(c=>l[c.name]=null),{value:i,grads:l}}function Xa(e){return M.customGrad(e)}function Mh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function nR(e){let t={x:E(e,"x","neg")};return M.runKernel(ml,t)}var Tt=P({neg_:nR});function aR(e){let t={x:E(e,"x","softplus")};return M.runKernel(Al,t)}var Xl=P({softplus_:aR});function rR(e){let t=E(e,"x","logSigmoid");return Xa(n=>({value:Tt(Xl(Tt(n))),gradFunc:a=>L(a,pa(Tt(n)))}))(t)}var C1=P({logSigmoid_:rR});function sR(e,t=null,n=!1){let a={x:E(e,"x","max")},r={reductionIndices:t,keepDims:n};return M.runKernel(Ys,a,r)}var Zn=P({max_:sR});function iR(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(xi,r)}var fe=P({sub_:iR});function oR(e,t=null,n=!1){let a=E(e,"x","sum");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(gi,r,s)}var Te=P({sum_:oR});function lR(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Xa((a,r)=>{let s=!0,i=Zn(a,t,!0),o=fe(a,i),l=fe(ce(o,"float32"),$n(Te(dn(o),t,s)));return r([l]),{value:l,gradFunc:(c,u)=>{let[p]=u,d=!0,h=dn(p);return fe(c,L(Te(c,t,d),h))}}})(n)}var Ph=P({logSoftmax_:lR});function ib(e,t){for(let n=0;ne[s]);return[n,r]}function Di(e,t){let n=t.map(a=>1);return _1(e,n,t)}function uR(e,t,n){A(ib(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function A1(e,t){if(ib(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function ob(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function cR(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(qa(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&A(Gt(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(Js,c,u);return l?j(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ft=P({maxPool_:gR});function yR(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(Tc,c,u);return l?j(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var ub=P({maxPool3d_:yR});function bR(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=M.runKernel(rh,s,i);return{result:o[0],indexes:o[1]}}var $1=P({maxPoolWithArgmax_:bR});function xR(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Zs,r)}var Ya=P({maximum_:xR});function vR(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return M.runKernel(Qs,a,r)}var St=P({mean_:vR});function wR(e,t=null,n=!1){let a={x:E(e,"x","min")},r={axis:t,keepDims:n};return M.runKernel(ei,a,r)}var Yl=P({min_:wR});function kR(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(ti,r)}var Zl=P({minimum_:kR});function IR(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return M.runKernel(Sc,i,s)}var cb=P({mirrorPad_:IR});function NR(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(hl,r)}var pb=P({mod_:NR});function TR(e){let t=E(e,"x","square"),n={};return M.runKernel("Square",{x:t},n)}var ut=P({square_:TR});function SR(e,t=null,n=!1){e=E(e,"x","moments");let a=ua(t,e.shape),r=St(e,a,n),s=r.shape;n||(s=Di(r.shape,a));let i=ut(fe(ce(e,"float32"),j(r,s))),o=St(i,a,n);return{mean:r,variance:o}}var Lh=P({moments_:SR});function CR(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=zc(n,"c","multiRNNCell"),i=zc(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?j(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},c=M.runKernel(sh,o,l);return i===1?j(c,[c.size]):c}var D1=P({multinomial_:ER});function AR(e,t){let n=E(e,"a","notEqual"),a=E(t,"b","notEqual");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(fl,r)}var Ri=P({notEqual_:AR});function vt(e,t="float32"){if(t==="complex64"){let a=vt(e,"float32"),r=vt(e,"float32");return qr(a,r)}let n=Rd(Pt(e),t);return M.makeTensor(n,e,t)}function Za(e,t="float32"){if(t==="complex64"){let a=Za(e,"float32"),r=vt(e,"float32");return qr(a,r)}let n=ay(Pt(e),t);return M.makeTensor(n,e,t)}function FR(e){let t={x:E(e,"x","onesLike")};return M.runKernel(xl,t)}var Dn=P({onesLike_:FR});function $R(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=j(n,[-1,1]),s=j(a,[1,-1]);return ze(r,s)}var DR=P({outerProduct_:$R});function RR(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return M.runKernel(ri,s,r)}var Jn=P({pad_:RR});function MR(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Jn(e,[t],n)}var PR=P({pad1d_:MR});function OR(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Jn(e,t,n)}var LR=P({pad2d_:OR});function zR(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Jn(e,t,n)}var BR=P({pad3d_:zR});function WR(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Jn(e,t,n)}var VR=P({pad4d_:WR});function UR(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return M.runKernel(Ec,r,s)}var Xc=P({spaceToBatchND_:UR});function jR(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=E(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2]])),A(qa(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let c=u1(o.shape,t,s,r,a),u=[c.dilationHeight,c.dilationWidth],p;a==="same"?p=HR([c.filterHeight,c.filterWidth],u):p=[[0,0],[0,0]];let d=u[0]===1&&u[1]===1,[h,m]=GR([c.inHeight,c.inWidth],u,p),f=d?a:"valid",g=d?o:Xc(o,u,h),y=(n==="avg"?()=>Yn(g,t,s,f):()=>Ft(g,t,s,f))(),b=d?y:Gc(y,u,m);return l?j(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function GR(e,t,n){let a=n.map(u=>u[0]),r=n.map(u=>u[1]),s=e.concat(a,r),i=t.map((u,p)=>(u-s[p]%u)%u),o=r.map((u,p)=>u+i[p]),l=t.map((u,p)=>[a[p],o[p]]),c=t.map((u,p)=>[0,i[p]]);return[l,c]}function HR(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var R1=P({pool_:jR});function qR(e,t){let n=E(e,"base","pow"),a=E(t,"exp","pow");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(si,r)}var xr=P({pow_:qR});function KR(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return M.runKernel(ii,r)}var Yc=P({prelu_:KR});function XR(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(wl,r,s)}var zh=P({prod_:XR});function YR(e,t,n){let a=Pt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},JR=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=db.alea(r.toString()),this.randn=new hb(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=db.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function eM(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new JR(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Rn(t,0)}var cM=P({reverse1d_:uM});function pM(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Rn(n,t)}var dM=P({reverse2d_:pM});function hM(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Rn(n,t)}var mM=P({reverse3d_:hM});function fM(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Rn(n,t)}var gM=P({reverse4d_:fM});function yM(e){let t={x:E(e,"x","round")};return M.runKernel(pi,t)}var fb=P({round_:yM});function bM(e){let t={x:E(e,"x","rsqrt")};return M.runKernel(di,t)}var Vh=P({rsqrt_:bM});function de(e,t){if((on(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&on(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Kr(e,[],[],t)}function xM(e){let t={x:E(e,"x","selu")};return M.runKernel(Sl,t)}var Uh=P({selu_:xM});function vM(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),c=E(n,"pointwiseFilter","separableConv2d"),u=o,p=!1;if(o.rank===3&&(p=!0,u=j(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(u.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),A(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);let d=l.shape[2],h=l.shape[3];A(c.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${c.shape[2]}.`);let m=es(u,l,a,r,i,s),f=At(m,c,1,"valid",i);return p?j(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Mi=P({separableConv2d_:vM});async function wM(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let u=0;u`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),We(a,[t],[n])}var jh=P({slice1d_:TM});function SM(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var yb=P({slice2d_:SM});function CM(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Ql=P({slice3d_:CM});function _M(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Jc=P({slice4d_:_M});function EM(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return M.runKernel(yi,a,r)}var Ta=P({softmax_:EM});function AM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Zd,t)}var Qc=P({fft_:AM});function FM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(Jd,t)}var eu=P({ifft_:FM});function $M(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=j(e,[n,t]);a=eu(r)}else{let r=[n,2*(t-1)],s=j(Zc(e),[n,t]),i=j($h(e),[n,t]),o=Rn(We(s,[0,1],[n,t-2]),1),l=L(Rn(We(i,[0,1],[n,t-2]),1),de(-1)),c=Qe([s,o],1),u=Qe([i,l],1),p=j(qr(c,u),[r[0],r[1]]);a=eu(p)}if(a=Zc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=j(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var qh=P({irfft_:$M});function DM(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return M.runKernel(Fl,a,r)}var Mn=P({split_:DM});function RM(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=We(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Qe([e,vt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=j(qr(r,s),[a,n]),o=Qc(i),l=Math.floor(n/2)+1,c=Zc(o),u=$h(o),p=Mn(c,[l,n-l],c.shape.length-1),d=Mn(u,[l,n-l],u.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,j(qr(p[0],d[0]),h)}var ep=P({rfft_:RM});function MM(e){let t={x:E(e,"x","sqrt")};return M.runKernel(fi,t)}var tn=P({sqrt_:MM});function PM(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a},s={};return M.runKernel(bi,r,s)}var Kh=P({squaredDifference_:PM});function OM(e,t){let n=E(e,"x","squeeze");return j(n,e0(n.shape,t).newShape)}var as=P({squeeze_:OM});function LM(e,t=0){let n=zc(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return M.runKernel(vl,a,r)}var $t=P({stack_:LM});function zM(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return M.runKernel(Hr,n,a)}var tu=P({step_:zM});function BM(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let c={x:E(e,"x","stridedSlice")},u={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return M.runKernel($l,c,u)}var bb=P({stridedSlice_:BM});function WM(e){let t={x:E(e,"x","tan")};return M.runKernel(Dl,t)}var xb=P({tan_:WM});function nt(e,t){As(e);let n=ja(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Kr(e,null,n,t)}function Sa(e,t,n){if(As(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=ja(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Kr(e,t,a,n)}function Ca(e,t,n){if(As(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=ja(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Kr(e,t,a,n)}function VM(e,t,n){if(As(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=ja(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Kr(e,t,a,n)}function UM(e,t,n){if(As(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=ja(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Kr(e,t,a,n)}function GM(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=M.runKernel(Rl,s,i);return{values:o,indices:l}}var vb=P({topk_:GM});function HM(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new hb(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=M.runKernel(ch,a,r);return{values:s,indices:i}}var Yh=P({unique_:jM});function qM(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(Gt(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return M.runKernel(Fc,s,i)}var wb=P({unsortedSegmentSum_:qM});function KM(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return M.runKernel(Ml,a,r)}var dt=P({unstack_:KM});function O1(e,t=!0,n,a){return M.makeVariable(e,t,n,a)}function L1(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=de(1),c=fe(l,o),u=L(fe(i,s),c);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let p=E(a,"step","movingAverage");u=ve(u,fe(l,xr(o,p)))}return Z(s,u)}var eP=P({movingAverage_:QM});function tP(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");Ry(r,a,n);let s={indices:a,updates:r},i={shape:n};return M.runKernel(Nl,s,i)}var B1=P({scatterND_:tP});function nP(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function aP(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense"),i=E(a,"defaultValue","sparseToDense",s.dtype);nP(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return M.runKernel(uh,o,l)}var Ib=P({sparseToDense_:aP});function rP(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND"),indices:n};return M.runKernel(al,a)}var W1=P({gatherND_:rP});function sP(e,t){if(t==null)return e.shape.slice();if(gr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ae?r.clone():r;let s=sP(r,n),i=1-t,o=ve(Kl(Z(Jl(s,0,1,"float32",a),i)),i);return L(r,o)}var V1=P({dropout_:iP});function U1(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Nb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,c]=[i.length/s,s],u=t0("bool",l);for(let p=0;pg.value-f.value),u[p]=0;for(let f=0;fuP,depthwiseConv2d:()=>cP,matMul:()=>pP});function dP(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=j(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=j(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let c=s==="NHWC"?o.shape[3]:o.shape[1],u=s==="NHWC"?l.shape[3]:l.shape[1];A(c===n[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${n[2]}.`),A(u===n[3],()=>`Error in conv2dDerFilter: depth of dy (${u}) must match output depth for filter (${n[3]}).`),i!=null&&A(Gt(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return M.runKernel(Wd,p,d)}var Tb=P({conv2DBackpropFilter_:dP});function Jh(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return L(e,tu(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function Qh(e,t){let n=t,a=zt(e.shape,t.shape);return a.length>0&&(n=Te(n,a)),j(n,e.shape)}function em(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ye(e);if(t==="elu")return ql(e);if(t==="relu6")return Wh(e);if(t==="prelu")return Yc(e,n);if(t==="leakyrelu")return qc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var tm=(e,t)=>!(e>0)||t==="linear";function hP({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(l=l||"linear",tm(M.state.gradientDepth,l)===!1){let N=At(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),em(N,l,c,u)}let p=E(e,"x","conv2d"),d=E(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=j(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&A(Gt(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),A(qa(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Uc(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused conv2d"));let b=(N,T)=>{let[C,$,F,O]=T,B=Jh(N,F,l);A(Qr(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=Zy($.shape,B,C,n,a),G=Tb($,B,C.shape,n,a),q=[W,G];if(O!=null){let H=Qh(O,B);q.push(H)}return q},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Xa((N,T,C)=>{let $=M.runKernel(Ii,v,x);return C([T,N,$]),m&&($=j($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d):Xa((N,T,C,$)=>{let F=M.runKernel(Ii,v,x);return $([T,N,F,C]),m&&(F=j(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var uP=P({fusedConv2d_:hP});function mP(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=j(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=j(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={x:o,dy:l},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return M.runKernel(Hd,c,u)}var G1=P({depthwiseConv2dNativeBackpropFilter_:mP});function fP(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=j(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={dy:o,filter:n},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=M.runKernel(jd,c,u);return l?j(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var H1=P({depthwiseConv2dNativeBackpropInput_:fP});function gP({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(tm(M.state.gradientDepth,l)===!1){let N=es(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),em(N,l,c,u)}let p=E(e,"x","depthwiseConv2d"),d=E(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=j(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),A(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),A(qa(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&A(Gt(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Uc(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused depthwiseConv2d"));let b=(N,T)=>{A(Qr(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,$,F,O]=T,B=Jh(N,F,l),W=H1($.shape,B,C,n,a,s,i),G=G1($,B,C.shape,n,a,s,i);if(O!=null){let q=Qh(g,B);return[W,G,q]}return[W,G]},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Xa((N,T,C)=>{let $=M.runKernel(Ni,v,x);return C([T,N,$]),m&&($=j($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d):Xa((N,T,C,$)=>{let F=M.runKernel(Ni,v,x);return $([T,N,F,C]),m&&(F=j(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d,g)}var cP=P({fusedDepthwiseConv2d_:gP});function yP({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(tm(M.state.gradientDepth,s)===!1){let O=ze(e,t,n,a);return r!=null&&(O=Z(O,r)),em(O,s,i,o)}let l=E(e,"a","fused matMul"),c=E(t,"b","fused matMul");[l,c]=Nt(l,c);let u=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?c.shape[c.rank-1]:c.shape[c.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?c.shape[c.rank-2]:c.shape[c.rank-1],m=l.shape.slice(0,-2),f=c.shape.slice(0,-2),g=Pt(m),y=Pt(f);A(l.rank>=2&&c.rank>=2&&l.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${c.rank}.`),A(gr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${c.shape} must match.`),A(u===p,()=>`Error in fused matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),v=n?j(l,[g,u,d]):j(l,[g,d,u]),x=a?j(c,[y,h,p]):j(c,[y,p,h]),N;r!=null&&(N=E(r,"bias","fused matMul"),[N]=Nt(N,l),xt(b,N.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let C=(O,B)=>{let[W,G,q,H]=B,K=Jh(j(O,q.shape),q,s),X,ne;if(!n&&!a?(X=ze(K,G,!1,!0),ne=ze(W,K,!0,!1)):!n&&a?(X=ze(K,G,!1,!1),ne=ze(K,W,!0,!1)):n&&!a?(X=ze(G,K,!1,!0),ne=ze(W,K,!1,!1)):(X=ze(G,K,!0,!0),ne=ze(K,W,!0,!0)),r!=null){let J=Qh(H,K);return[X,ne,J]}else return[X,ne]},$={a:v,b:x,bias:N,preluActivationWeights:T},F={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?Xa((O,B,W)=>{let G=M.runKernel(ki,$,F);return W([O,B,G]),{value:j(G,b),gradFunc:C}})(v,x):Xa((O,B,W,G)=>{let q=M.runKernel(ki,$,F);return G([O,B,q,W]),{value:j(q,b),gradFunc:C}})(v,x,N)}var pP=P({fusedMatMul_:yP});function bP(e){return Nb(e,.54,.46)}var xP=P({hammingWindow_:bP});function vP(e){return Nb(e,.5,.5)}var j1=P({hannWindow_:vP});function wP(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let u={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return M.runKernel(Ko,u,p)}var TP=P({cropAndResize_:NP});function SP(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return M.runKernel(tl,n,{})}var CP=P({flipLeftRight_:SP});function _P(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return M.runKernel(Ol,s,i)}var EP=P({rotateWithOffset_:_P});function nu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function AP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression"),i=E(t,"scores","nonMaxSuppression"),o=nu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return M.runKernel(gl,{boxes:s,scores:i},l)}var FP=P({nonMaxSuppression_:AP});function DP(e,t,n){let a=$P(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function $P(e,t,n){return MP(e,t,n||RP)}function RP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function K1(e,t,n,a,r){return Sb(e,t,n,a,r,0)}function X1(e,t,n,a,r,s){return Sb(e,t,n,a,r,0,!1,s,!0)}function Y1(e,t,n,a,r,s){return Sb(e,t,n,a,r,s,!0)}function Sb(e,t,n,a,r,s,i=!1,o=!1,l=!1){let c=[];for(let g=0;gr&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(Z1);let u=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=c.pop(),{score:y,boxIndex:b,suppressBeginIndex:v}=g;if(y=v;--N){let T=PP(e,b,p[N]);if(T>=a){x=!0;break}if(g.score=g.score*OP(a,u,T),g.score<=r)break}g.suppressBeginIndex=p.length,x||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&DP(c,g,Z1))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function PP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),c=Math.min(r[0],r[2]),u=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-c)*(d-u);if(h<=0||m<=0)return 0;let f=Math.max(s,c),g=Math.max(i,u),y=Math.min(o,p),b=Math.min(l,d),v=Math.max(y-f,0)*Math.max(b-g,0);return v/(h+m-v)}function OP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Z1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function LP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=nu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),c=l[0],u=l[1],{selectedIndices:p}=K1(c,u,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),nt(p,"int32")}var zP=LP;function BP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=nu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c={boxes:i,scores:o},u={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=M.runKernel(bl,c,u);return{selectedIndices:p[0],selectedScores:p[1]}}var WP=P({nonMaxSuppressionWithScore_:BP});async function VP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=nu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c=await Promise.all([i.data(),o.data()]),u=c[0],p=c[1],{selectedIndices:d,selectedScores:h}=Y1(u,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:nt(d,"int32"),selectedScores:nt(h)}}var UP=VP;function GP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=nu(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:c,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:s},m=M.runKernel(yl,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var HP=P({nonMaxSuppressionPadded_:GP});async function jP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=nu(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=X1(d,h,c,u,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:nt(m,"int32"),validOutputs:de(f,"int32")}}var qP=jP;function KP(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=j(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(li,o,l);return i?j(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var J1=P({resizeBilinear_:KP});function XP(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=j(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(_c,o,l);return i?j(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Q1=P({resizeNearestNeighbor_:XP});function YP(e,t,n){A(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=j(Bh(0,s,1,"int32"),[-1,1]),l=Bh(0,i,1,"int32"),c=fe(o,l),u=ha($i(c,de(+t,"int32")),ns(c,de(-n,"int32"))),p=vt([s,i],a.dtype);return j($t(dt(j(a,[-1,s,i])).map(d=>wn(u,d,p))),r)}var ZP=P({bandPart_:YP});function JP(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=Mn(e,e.shape[0],0).map(r=>as(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return ek(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),a=dt(j(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[c,u]=ek(l,t);r.push(c),s.push(u)});let i=j($t(r,0),e.shape),o=j($t(s,0),e.shape);return[i,o]}}function ek(e,t=!1){return M.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=rb(n),s=Yr(e),i=Sa([[1]],[1,1]),o=Yr(i),l=n>=a?a:n;for(let c=0;c{let h=We(s,[c,c],[n-c,1]),m=Zh(h),f=We(s,[c,c],[1,1]),g=wn(da(f,0),Sa([[-1]]),Sa([[1]])),y=fe(f,L(g,m)),b=ve(h,y);b.shape[0]===1?o=Yr(i):o=Qe([i,We(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let v=Tt(ve(ze(g,y),m)),x=We(s,[c,0],[n-c,a]),N=L(v,o),T=Ue(o);if(c===0)s=fe(x,ze(N,ze(T,x)));else{let F=fe(x,ze(N,ze(T,x)));s=Qe([We(s,[0,0],[c,a]),F],0)}let C=Ue(N),$=We(r,[0,c],[n,r.shape[1]-c]);if(c===0)r=fe($,ze(ze($,o),C));else{let F=fe($,ze(ze($,o),C));r=Qe([We(r,[0,0],[n,c]),F],1)}return[o,s,r]}),Fe([u,p,d])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var tO=P({qr_:eO}),hn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(hn||(hn={}));function nO(e,t,n=hn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:L(a,r);if(n===hn.NONE)return s;if(n===hn.SUM)return Te(s);if(n===hn.MEAN){if(r==null)return St(s);{let i=a.size/r.size,o=ve(Te(s),Te(r));return i>1?ve(o,de(i)):o}}if(n===hn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return ve(Te(s),de(a.size));{let i=L(r,Za(a.shape)),o=ce(Te(Ri(i,de(0))),"float32");return ve(Te(s),o)}}throw Error(`Unknown reduction: ${n}`)}var vr=P({computeWeightedLoss_:nO});function aO(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(fe(r,s));return vr(o,i,a)}var rO=P({absoluteDifference_:aO});function sO(e,t,n,a,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),sn(s.shape,i.shape,"Error in cosineDistance: ");let l=de(1),c=fe(l,Te(L(s,i),n,!0));return vr(c,o,r)}var iO=P({cosineDistance_:sO});function oO(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),sn(r.shape,s.shape,"Error in hingeLoss: ");let o=de(1);r=fe(L(de(2),r),o);let l=Ye(fe(o,L(r,s)));return vr(l,i,a)}var lO=P({hingeLoss_:oO});function uO(e,t,n,a=1,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),sn(s.shape,i.shape,"Error in huberLoss: ");let l=de(a),c=Lt(fe(i,s)),u=Zl(c,l),p=fe(c,u),d=Z(L(de(.5),ut(u)),L(l,p));return vr(d,o,r)}var cO=P({huberLoss_:uO});function pO(e,t,n,a=1e-7,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),sn(s.shape,i.shape,"Error in logLoss: ");let l=de(1),c=de(a),u=Tt(L(s,$n(Z(i,c)))),p=L(fe(l,s),$n(Z(fe(l,i),c))),d=fe(u,p);return vr(d,o,r)}var dO=P({logLoss_:pO});function hO(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Kh(r,s);return vr(o,i,a)}var mO=P({meanSquaredError_:hO});function fO(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ye(a),s=L(a,n),i=Rh(dn(Tt(Lt(a))));return Z(fe(r,s),i)}function gO(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(.5);s=Z(L(s,fe(u,c)),L(p,c))}let l=fO(s,i);return vr(l,o,r)}var yO=P({sigmoidCrossEntropy_:gO});function bO(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Xa((a,r,s)=>{let i=lb(r,[n],!0),o=fe(ce(r,"float32"),i);s([a,o]);let l=Tt(L(o,a));return{value:Te(l,[n]),gradFunc:(c,u)=>{let[p,d]=u,h=Di(c.shape,[n]);return[L(j(c,h),fe(ce(p,"float32"),dn(d))),L(j(c,h),fe(dn(d),ce(p,"float32")))]}}})(e,t)}function xO(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(s.shape[1]);s=Z(L(s,fe(u,c)),ve(c,p))}let l=bO(s,i);return vr(l,o,r)}var vO=P({softmaxCrossEntropy_:xO}),wO={fft:Qc,ifft:eu,rfft:ep,irfft:qh},kO={hammingWindow:xP,hannWindow:j1,frame:q1,stft:IP},Ja={flipLeftRight:CP,resizeNearestNeighbor:Q1,resizeBilinear:J1,rotateWithOffset:EP,cropAndResize:TP,nonMaxSuppression:FP,nonMaxSuppressionAsync:zP,nonMaxSuppressionWithScore:WP,nonMaxSuppressionWithScoreAsync:UP,nonMaxSuppressionPadded:HP,nonMaxSuppressionPaddedAsync:qP},tk={bandPart:ZP,gramSchmidt:QP,qr:tO},IO={absoluteDifference:rO,computeWeightedLoss:vr,cosineDistance:iO,hingeLoss:lO,huberLoss:cO,logLoss:dO,meanSquaredError:mO,sigmoidCrossEntropy:yO,softmaxCrossEntropy:vO},wr=class extends t1{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Fe(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return S1(e,t)}dispose(){this.iterations_!=null&&Fe(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:de(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(wr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var nm=class extends wr{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;D(()=>{let l=Z(L(i,this.rho),L(ut(s),1-this.rho)),c=L(ve(tn(Z(o,this.epsilon)),tn(Z(i,this.epsilon))),s),u=Z(L(o,this.rho),L(ut(c),1-this.rho));i.assign(l),o.assign(u);let p=Z(L(c,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Fe(this.accumulatedGrads.map(e=>e.variable)),Fe(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};nm.className="Adadelta";Zr(nm);var am=class extends wr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:D(()=>kn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;D(()=>{let i=Z(s,ut(r));s.assign(i);let o=Z(L(ve(r,tn(Z(i,M.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Fe(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};am.className="Adagrad";Zr(am);var rm=class extends wr{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],D(()=>{this.accBeta1=de(t).variable(),this.accBeta2=de(n).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=fe(1,this.accBeta2);t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:D(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:D(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedSecondMoment[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=Z(L(u,this.beta2),L(ut(l),1-this.beta2)),h=ve(p,n),m=ve(d,a);c.assign(p),u.assign(d);let f=Z(L(ve(h,Z(tn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(L(this.accBeta1,this.beta1)),this.accBeta2.assign(L(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Fe(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),D(()=>{this.accBeta1.assign(xr(this.beta1,this.iterations_+1)),this.accBeta2.assign(xr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};rm.className="Adam";Zr(rm);var sm=class extends wr{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],D(()=>{this.iteration=de(0).variable(),this.accBeta1=de(t).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=ve(-this.learningRate,Z(L(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedWeightedInfNorm[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=L(u,this.beta2),h=Lt(l),m=Ya(d,h);c.assign(p),u.assign(m);let f=Z(L(ve(a,n),ve(p,Z(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Z(this.iteration,1)),this.accBeta1.assign(L(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Fe(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};sm.className="Adamax";Zr(sm);var tp=class extends wr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=M.registeredVariables[t];D(()=>{let s=Z(L(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=jt(de(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};tp.className="SGD";Zr(tp);var im=class extends tp{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=de(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&D(()=>{let i,o=Z(L(this.m,r),s);this.useNesterov?i=Z(L(this.c,Z(s,L(o,this.m))),a):i=Z(L(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Fe(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};im.className="Momentum";Zr(im);var om=class extends wr{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=M.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;D(()=>{let l=Z(L(i,this.decay),L(ut(s),1-this.decay));if(this.centered){let c=this.accumulatedMeanGrads[n].variable,u=Z(L(c,this.decay),L(s,1-this.decay)),p=ve(L(s,this.learningRate),tn(fe(l,Z(ut(u),this.epsilon)))),d=Z(L(o,this.momentum),p);i.assign(l),c.assign(u),o.assign(d);let h=fe(a,d);a.assign(h)}else{let c=Z(L(i,this.decay),L(ut(s),1-this.decay)),u=Z(L(o,this.momentum),ve(L(s,this.learningRate),tn(Z(c,this.epsilon))));i.assign(c),o.assign(u);let p=fe(a,u);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Fe(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Fe(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Fe(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};om.className="RMSProp";Zr(om);var Pi=class{static sgd(e){return new tp(e)}static momentum(e,t,n=!1){return new im(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new om(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new rm(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new nm(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new sm(e,t,n,a,r)}static adagrad(e,t=.1){return new am(e,t)}},Oi={sgd:Pi.sgd,momentum:Pi.momentum,adadelta:Pi.adadelta,adagrad:Pi.adagrad,rmsprop:Pi.rmsprop,adamax:Pi.adamax,adam:Pi.adam},NO=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function lm(){return new Promise(e=>NO(()=>e()))}var _={};Oe(_,{ERF_A1:()=>MO,ERF_A2:()=>PO,ERF_A3:()=>OO,ERF_A4:()=>LO,ERF_A5:()=>zO,ERF_P:()=>RO,PARALLELIZE_THRESHOLD:()=>Cb,SELU_SCALE:()=>ak,SELU_SCALEALPHA:()=>nk,applyActivation:()=>em,assertAndGetBroadcastShape:()=>xt,assertAxesAreInnerMostDims:()=>uR,assertParamsConsistent:()=>TO,assignToTypedArray:()=>qO,axesAreInnerMostDims:()=>ib,calculateShapes:()=>U0,combineLocations:()=>_1,complexWithEvenIndex:()=>GO,complexWithOddIndex:()=>HO,computeConv2DInfo:()=>Uc,computeConv3DInfo:()=>c1,computeDefaultPad:()=>Ky,computeDilation2DInfo:()=>D$,computeOptimalWindowSize:()=>CO,computeOutAndReduceShapes:()=>E1,computeOutShape:()=>SO,computePool2DInfo:()=>u1,computePool3DInfo:()=>R$,convertConv2DDataFormat:()=>l1,eitherStridesOrDilationsAreOne:()=>qa,expandShapeToKeepDim:()=>Di,exponent:()=>XO,exponents:()=>KO,fromStringArrayToUint8:()=>JO,fromUint8ToStringArray:()=>ZO,getAxesPermutation:()=>A1,getBroadcastDims:()=>TD,getComplexWithIndex:()=>jO,getFusedBiasGradient:()=>Qh,getFusedDyActivation:()=>Jh,getImageCenter:()=>_O,getInnerMostAxes:()=>cR,getPermuted:()=>AO,getReductionAxes:()=>zt,getReshaped:()=>EO,getReshapedPermuted:()=>FO,getSliceBeginCoords:()=>$O,getSliceSize:()=>DO,getUndoAxesPermutation:()=>ob,log:()=>WO,mergeRealAndImagArrays:()=>VO,prepareAndValidate:()=>V0,prepareSplitSize:()=>YO,segment_util:()=>rk,shouldFuse:()=>tm,slice_util:()=>pn,splitRealAndImagArrays:()=>UO,tupleValuesAreOne:()=>Qr,upcastType:()=>ca,validateInput:()=>Ry,validateUpdateShape:()=>Dy,warn:()=>BO});function TO(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function SO(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function FO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var rk={};Oe(rk,{collectGatherOpShapeInfo:()=>tL,computeOutShape:()=>eL,segOpComputeOptimalWindowSize:()=>QO});function QO(e,t){let n=!1,a;for(e<=Cb?(a=e,n=!0):a=Dd(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Dd(e,a+1);return a}function eL(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nfh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function JO(e){return e.map(t=>Rc(t))}var Qa={};Oe(Qa,{nonMaxSuppressionV3Impl:()=>K1,nonMaxSuppressionV4Impl:()=>X1,nonMaxSuppressionV5Impl:()=>Y1,whereImpl:()=>L1});var sk={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,tu(ce(n,"float32"),-1))}}},nL={kernelName:Lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ut(ce(n,"float32")),r=tn(fe(de(1),a));return Tt(ve(e,r))}}}},aL={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=tn(fe(ut(ce(n,"float32")),1));return ve(e,a)}}}},rL={kernelName:Vr,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),j(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),j(s,a.shape)}}}},sL={kernelName:$s,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},iL={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},oL={kernelName:fc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},lL={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,tn(fe(de(1),ut(ce(n,"float32")))))}}},uL={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=tn(Z(de(1),ut(ce(n,"float32"))));return ve(e,a)}}}},cL={kernelName:Go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=Z(ut(n),ut(a)),i=L(e,ve(a,s)),o=zt(n.shape,r);return o.length>0&&(i=Te(i,o)),j(i,n.shape)},b:()=>{let s=Z(ut(n),ut(a)),i=Tt(L(e,ve(n,s))),o=zt(a.shape,r);return o.length>0&&(i=Te(i,o)),j(i,a.shape)}}}},pL={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(ut(ce(n,"float32")),1))}}},dL={kernelName:Uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,fe(de(1),ut(ce(n,"float32"))))}}};function hL(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,c=o,u=!1;o.rank===4&&(u=!0,l=j(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=j(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),s!=null&&A(Gt(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:c},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=M.runKernel(Ld,p,d);return u?j(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var mL=P({avgPool3dGrad_:hL}),fL={kernelName:gc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>mL(e,a,r,s,i,o)}}};function gL(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,c=!1;i.rank===3&&(c=!0,o=j(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=j(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let u={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=M.runKernel(Od,u,p);return c?j(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var yL=P({avgPoolGrad_:gL}),bL={kernelName:Rs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>yL(e,a,r,s,i)}}},xL={kernelName:Ms,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},vL={kernelName:yc,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Xc(e,a,r)}}},wL={kernelName:h0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Te(e,o,!0)}}},kL={kernelName:Ps,gradFunc:e=>({x:()=>e.clone()})},IL={kernelName:Ho,gradFunc:e=>({x:()=>Ge(e)})},NL={kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>wn(ha(ns(a,r),$i(a,s)),e,Ge(e))}}},TL={kernelName:bc,inputsToSave:["x"],gradFunc:sk.gradFunc},SL={kernelName:jo,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=ua(r,t[0].shape)[0],i=a.map(o=>o[s]);return Mn(e,i,s).map(o=>()=>o)}},CL={kernelName:Os,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(Qr(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Zy(a.shape,e,r,i,o,l),filter:()=>Tb(a,e,r.shape,i,o,l)}}},_L={kernelName:Ls,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>Tb(e,a,r.shape,s,i,o,l)}}};function EL(e,t,n,a,r){let s=e;e.rank===4&&(s=j(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=j(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return M.runKernel(Vd,o,l)}var AL=P({conv3DBackpropFilter_:EL}),FL={kernelName:xc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(Qr(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>x1(i.shape,e,o,r,s),filter:()=>AL(i,e,o.shape,r,s)}}},$L={kernelName:zs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Tt(Gh(ce(n,"float32"))),e)}}},DL={kernelName:qo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Hh(ce(n,"float32")),e)}}},RL={kernelName:Bs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=A1([r],a.rank),l=Fh(e,r,s,!i);return o!=null&&(l=Ue(l,o)),l}}}},ML={kernelName:Ws,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(Qr(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,c]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),A(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),A(qa(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&A(Gt(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>H1(l.shape,e,c,r,s,a,i),filter:()=>G1(l,e,c.shape,r,s,a,i)}}},PL={kernelName:vc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>M.runKernel(Kd,s,n),filter:()=>M.runKernel(Xd,i,n)}}},OL={kernelName:Yo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>M.runKernel(Yd,a)}}},LL={kernelName:Zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(dn(Tt(ut(n))),2/Math.sqrt(Math.PI));return{x:()=>L(e,a)}}},zL={kernelName:Us,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,n)}}},BL={kernelName:Qo,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>j(e,n.shape)}}},WL={kernelName:el,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,dn(n))}}},VL={kernelName:Gs,gradFunc:e=>({x:()=>Ge(e)})},UL={kernelName:Hs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?j(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=j(Te(s,i),a.shape));let o=ut(a);return Tt(ve(s,ce(o,"float32")))}}}},GL={kernelName:js,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?de(1):o,c=zt(s.shape,r.shape),u=[];if(s.rank===1){for(let f=0;fs.rank===1?j(L(L(e,Ka(j(h,[1,1,1,s.shape[0]]),u)),l),r.shape):j(L(L(e,h),l),r.shape),mean:()=>{let f=L(L(h,de(-1)),d);return s.rank===1&&(f=Te(f,c)),j(f,s.shape)},variance:()=>{let f=L(L(m,p),d);return s.rank===1&&(f=Te(f,c)),j(f,s.shape)},scale:()=>{let f=L(p,h),g=L(e,f);return s.rank===1&&(g=Te(g,c)),j(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Te(f,c)),j(f,s.shape)}}}},HL={kernelName:nl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=ua(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,c=o.slice(0,i),u=c.length,p=o.slice(s,o.length).slice(1),d=p.length,h=ik(0,u),m=ik(u+1,u+1+d),f=ok([c,[l],p]),g=j(e,f),y=j(r,[l]),b=ok([[u],h,m]),v=Ue(g,b),x=wb(v,y,a.shape[i]),N=ob(b);return x=Ue(x,N),x},indices:()=>r}}};function ik(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},qL={kernelName:sl,gradFunc:e=>({x:()=>ce(e,"float32")})},KL={kernelName:il,gradFunc:e=>({x:()=>Ge(e)})},XL={kernelName:ol,gradFunc:e=>({x:()=>Ge(e)})},YL={kernelName:ll,gradFunc:e=>({x:()=>Ge(e)})},ZL={kernelName:Ks,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=da(a,0);return{x:()=>wn(s,e,L(e,r))}}},JL={kernelName:pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(n,1))}}},QL={kernelName:Xs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,ce(n,"float32"))}}},e3={kernelName:m0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=dn(a);return fe(e,L(Te(e,r,s),i))}}}};function t3(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return M.runKernel(th,o,l)}var n3=P({localResponseNormalizationBackprop_:t3}),a3={kernelName:Nc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>n3(a,r,e,s,i,o,l)}}};function lk(e,t,n,a){return t.rankL(e,ce(ts(n,t),e.dtype))}}var uk={kernelName:Ys,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=ua(r,s.shape),l=lk(e,i,s,o);return{x:()=>l.x()}}},r3={kernelName:Zs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(ns(n,a),"float32")),b:()=>L(e,ce(Dh(n,a),"float32"))}}};function s3(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),c=E(n,"output","maxPool3dGrad"),u=o,p=l,d=c,h=!1;l.rank===4&&(h=!0,u=j(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=j(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=j(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),A(u.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:u,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=M.runKernel(ah,m,f);return h?j(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var i3=P({maxPool3dGrad_:s3}),o3={kernelName:Tc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>i3(e,a,r,s,i,o,l)}}};function l3(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),c=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let u={dy:o,input:l,output:c},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return M.runKernel(nh,u,p)}var u3=P({maxPoolGrad_:l3}),c3={kernelName:Js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>u3(e,a,r,s,i,o)}}},p3={kernelName:Qs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=ua(r,a.shape),i=E1(a.shape,s)[1],o=Pt(i);return{x:()=>{let l=a.shape.slice();s.forEach(u=>{l[u]=1});let c=j(e,l);return ve(L(c,Za(a.shape,"float32")),o)}}}},d3={kernelName:ei,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=ua(r,s.shape),l=lk(e,i,s,o);return{x:()=>l.x()}}},h3={kernelName:ti,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce($i(n,a),"float32")),b:()=>L(e,ce(da(n,a),"float32"))}}},m3={kernelName:Sc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},f3={kernelName:hl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=zt(n.shape,r);return s.length>0?j(Te(e,s),n.shape):e},b:()=>{let s=L(e,Tt(Kl(ve(n,a)))),i=zt(a.shape,r);return i.length>0?j(Te(s,i),a.shape):s}}}},g3={kernelName:ni,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=L(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?j(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);return i.length>0?j(Te(s,i),a.shape):s}}}},y3={kernelName:ml,gradFunc:e=>({x:()=>Tt(e)})},b3={kernelName:ai,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>vt(n.shape,"float32")}}},x3={kernelName:xl,gradFunc:e=>({x:()=>Ge(e)})},v3={kernelName:vl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},ck={kernelName:ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},w3={kernelName:si,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=xt(s.shape,i.shape);return{a:()=>{let l=ce(i,"float32"),c=L(e,L(l,xr(s,fe(l,de(1))))),u=zt(s.shape,o);return u.length>0&&(c=Te(c,u)),j(c,s.shape)},b:()=>{let l=da(s,0),c=wn(l,$n(s),Ge(s)),u=L(e,L(r,c)),p=zt(i.shape,o);return p.length>0&&(u=Te(u,p)),j(u,i.shape)}}}},k3={kernelName:ii,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=da(n,0);return{x:()=>wn(r,e,L(e,a)),alpha:()=>{let s=wn(r,Ge(e),L(e,n)),i=zt(a.shape,e.shape);return i.length>0&&(s=Te(s,i)),j(s,a.shape)}}}},I3={kernelName:Vs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?j(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=j(Te(s,i),a.shape));let o=ut(a);return Tt(ve(s,ce(o,"float32")))}}}},N3={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Tt(ut(n)))}}},T3={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L($i(n,6),tu(n));return{x:()=>L(e,ce(a,"float32"))}}},S3={kernelName:oi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ce(tu(n),"float32"))}}},C3={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>j(e,n.shape)}}},_3={kernelName:li,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(lh,r,n)}}},E3={kernelName:_c,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(oh,r,n)}}},A3={kernelName:ci,gradFunc:(e,t,n)=>{let{dims:a}=n,r=ua(a,e.shape);return{x:()=>Rn(e,r)}}},F3={kernelName:pi,gradFunc:e=>({x:()=>Ge(e)})},$3={kernelName:di,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Tt(ve(e,L(xr(n,1.5),2)))}}},D3={kernelName:Tl,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ce(Ge(n),"float32"),t:()=>L(e,ce(n,e.dtype)),e:()=>L(e,ce(Kc(n),e.dtype))}}},R3={kernelName:Sl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=da(n,de(0)),r=de(nk),s=de(ak),i=L(e,s),o=L(L(e,r),dn(ce(n,"float32")));return wn(a,i,o)}}}},M3={kernelName:mi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(n,fe(de(1),n)))}}},P3={kernelName:El,gradFunc:e=>({x:()=>Ge(e)})},O3={kernelName:hi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(jc(ce(n,"float32")),e)}}},L3={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Ah(ce(n,"float32")),e)}}},z3={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=J0(a,r,s),c=[];for(let u=0;uJn(e,c)}}},B3={kernelName:yi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=L(e,a);return{logits:()=>fe(i,L(Te(i,[r],s),a))}}},W3={kernelName:Al,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,pa(n))}}},pk={kernelName:Ec,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Gc(e,a,r)}}},dk={kernelName:Fl,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},V3={kernelName:fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,L(tn(ce(n,"float32")),2))}}},U3={kernelName:Ac,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(ce(n,"float32"),2))}}},G3={kernelName:bi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=de(2);return{a:()=>L(e,L(r,fe(n,a))),b:()=>L(e,L(r,fe(a,n)))}}},H3={kernelName:Hr,gradFunc:e=>({x:()=>Ge(e)})},j3={kernelName:xi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),j(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),j(Tt(s),a.shape)}}}},q3={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;ua(s,a.shape).forEach(l=>{r[l]=1});let i=j(e,r),o=L(i,Za(a.shape,"float32"));return{x:()=>o}}},K3={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,ut(jc(n)))}}},X3={kernelName:vi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(fe(de(1),ut(n)),e)}}},Y3={kernelName:Gr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=ob(r);return{x:()=>Ue(e,s)}}},J3={kernelName:Ml,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},ez={kernelName:Fc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Q3(e,n)}}};function Q3(e,t){let n=Ya(t,Ge(t)),a=Fi(e,n),r=ns(t,de(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},nz=[sk,nL,aL,rL,sL,iL,oL,lL,uL,cL,pL,dL,fL,bL,xL,vL,wL,kL,IL,NL,TL,SL,_L,CL,FL,$L,DL,RL,ML,PL,I3,OL,LL,zL,BL,WL,UL,VL,GL,HL,jL,qL,KL,XL,YL,ZL,JL,QL,e3,a3,uk,uk,r3,o3,c3,p3,d3,h3,m3,f3,g3,y3,b3,x3,v3,ck,ck,w3,k3,N3,T3,S3,C3,_3,E3,A3,F3,$3,D3,R3,M3,P3,O3,L3,z3,B3,W3,pk,pk,dk,dk,V3,G3,U3,H3,j3,q3,K3,X3,Y3,Z3,J3,ez,tz];for(let e of nz)f0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),zy(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),By(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),Z(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),Sh(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),Wc(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Vc(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),Wy(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),j(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),j(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),j(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),j(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),j(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),j(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),Vy(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),Uy(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),Gy(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Hy(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),jy(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Yn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Gc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),br(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Hc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),Yy(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),qt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ae&&(e=[e]),Qe([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),_h(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Eh(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),jc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),Ah(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Fh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),Qy(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),es(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),eb(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),tb(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),ve(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),w1(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),ql(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),ts(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),nb(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),dn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),Fn(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),ab(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),Qc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),j(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Kl(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),Th(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),Fi(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),ns(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),da(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),eu(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),qh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),k1(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),I1(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),N1(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),qc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),$i(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),Dh(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),sb(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),C1(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Ph(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),lb(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),$n(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),Rh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),ha(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Kc(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),Oh(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),F1(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Ft(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),Zn(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),Ya(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),St(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),Yl(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Zl(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),cb(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),pb(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),L(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),Tt(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Zh(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),Ri(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Ul(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),Dn(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),Jn(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),R1(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),xr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),Yc(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),zh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),mb(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),Ye(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),Wh(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),j(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),j(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),J1(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),Q1(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Rn(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),ep(this)};Y().prototype.round=function(){return this.throwIfDisposed(),fb(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),Vh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),Uh(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Mi(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),pa(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),gb(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),Gh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),Hh(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Ta(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),Xl(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Xc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),Mn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),tn(this)};Y().prototype.square=function(){return this.throwIfDisposed(),ut(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Kh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),as(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ae?[this,e]:[this,...e];return $t(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),tu(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),bb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),fe(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Te(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),xb(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),jl(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),Ka(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ce(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ce(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ce(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),vb(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ue(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Yh(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),wb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),wn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var hk={};Oe(hk,{maxNorm:()=>az,minMaxNorm:()=>iz,nonNeg:()=>sz,unitNorm:()=>rz});var _b;function Bt(){return _b==null&&(_b=i1().epsilon()),_b}function _a(){return"channelsLast"}var kr=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,kr.prototype)}},Ea=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ea.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},mk=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,mk.prototype)}},oz=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,oz.prototype)}};function Li(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var ma={};function Eb(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Ab(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Ab(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Ab(a))}}}function np(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ma)i=ma[s];else if(i=t[s],i==null)throw new z(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${a.shape}`),A(i%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return M.runKernel(Yo,o,l)}var nb=O({depthToSpace_:SD});function CD(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d"),l=E(t,"filter","depthwiseConv2d"),c=o,u=!1;o.rank===3&&(u=!0,c=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),i!=null&&A(Gt(a),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`);let p={x:c,filter:l},d={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},h=M.runKernel(Vs,p,d);return u?H(h,[h.shape[1],h.shape[2],h.shape[3]]):h}var es=O({depthwiseConv2d_:CD});function _D(e){let t={x:E(e,"x","diag")};return M.runKernel(Yd,t)}var ED=O({diag_:_D});function AD(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,c=!1;i.rank===3&&(l=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),c=!0);let u={x:l,filter:o},p={strides:n,pad:a,dilations:r},d=M.runKernel(xc,u,p);return c?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ab=O({dilation2d_:AD});function FD(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function zt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function xt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;r"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&sn(s.shape,l.shape,"Error in where: ");let c={condition:s,t:o,e:l};return M.runKernel(Tl,c)}var wn=O({where_:DD});function RD(e){let t={x:E(e,"x","zerosLike")};return M.runKernel(Pl,t)}var Ge=O({zerosLike_:RD});function MD(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Nt(n,a);let r=ve(n,a),s=Ge(r),i=ts(a,s);return wn(i,s,r)}var rb=O({divNoNan_:MD});function PD(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=H(n,[1,-1]),o=H(a,[-1,1]),l=ze(i,o);return H(l,[])}else if(n.rank===1&&a.rank===2){let i=H(n,[1,-1]),o=H(a,[a.shape[0],a.shape[1]]),l=ze(i,o);return H(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=H(a,[-1,1]),o=ze(n,i);return H(o,[o.size])}else{let i=H(a,[a.shape[0],a.shape[1]]);return ze(n,i)}}var S1=O({dot_:PD});function OD(e){let t={x:E(e,"x","elu")};return M.runKernel(Zo,t)}var ql=O({elu_:OD});function LD(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=ce(t,"float32"));let n={x:t};return M.runKernel(Jo,n)}var sb=O({erf_:LD});function zD(e){let t={x:E(e,"x","exp")};return M.runKernel(Gs,t)}var dn=O({exp_:zD});function BD(e,t=0){let n=E(e,"x","expandDims","string_or_numeric");A(t<=n.rank,()=>"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return M.runKernel(el,a,r)}var $n=O({expandDims_:BD});function WD(e){let t={x:E(e,"x","expm1")};return M.runKernel(tl,t)}var ib=O({expm1_:WD});function VD(e,t){let n=E(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return M.runKernel(Hr,a,r)}var Xa=O({tile_:VD});function UD(e,t,n,a="float32"){t==null&&(t=e);let r=Le([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),A(Gt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=H(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},c={depthRadius:t,bias:n,alpha:a,beta:r},u=M.runKernel(Ic,l,c);return o?H(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var lb=O({localResponseNormalization_:tR});function nR(e){let t={x:E(e,"x","log")};return M.runKernel(Zs,t)}var Dn=O({log_:nR});function aR(e){let t={x:E(e,"x","log1p")};return M.runKernel(pl,t)}var Oh=O({log1p_:aR});function rR(e){return A(Vr(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(a),[a],r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Lh(i),i[0]})}}function sR(e){return A(Vr(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=zc(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return M.tidy(()=>{let{value:s,grads:i}=M.gradients(()=>e(...a),a,r);return r!=null&&sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lh(i),i})}}function iR(e){return A(Vr(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Ae,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=M.gradients(()=>e(t),[t],n);return Lh(a),{grad:a[0],value:r}}}function oR(e){return A(Vr(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Ae),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Ae,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=M.gradients(()=>e(...t),t,n);return n!=null&&sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lh(a.grads),a}}function F1(e,t){A(Vr(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(c=>c instanceof qr),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let c in M.registeredVariables)t.push(M.registeredVariables[c])}let a=n?t.filter(c=>!c.trainable):null,r=t.length;t=t.filter(c=>c.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=M.gradients(e,t,null,s);A(o.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((c,u)=>{o[u]!=null&&(l[c.name]=o[u])}),a!=null&&a.forEach(c=>l[c.name]=null),{value:i,grads:l}}function Ya(e){return M.customGrad(e)}function Lh(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function lR(e){let t={x:E(e,"x","neg")};return M.runKernel(ml,t)}var Tt=O({neg_:lR});function uR(e){let t={x:E(e,"x","softplus")};return M.runKernel(Al,t)}var Xl=O({softplus_:uR});function cR(e){let t=E(e,"x","logSigmoid");return Ya(n=>({value:Tt(Xl(Tt(n))),gradFunc:a=>L(a,da(Tt(n)))}))(t)}var $1=O({logSigmoid_:cR});function pR(e,t=null,n=!1){let a={x:E(e,"x","max")},r={reductionIndices:t,keepDims:n};return M.runKernel(Js,a,r)}var Zn=O({max_:pR});function dR(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(wi,r)}var fe=O({sub_:dR});function hR(e,t=null,n=!1){let a=E(e,"x","sum");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(bi,r,s)}var Te=O({sum_:hR});function mR(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return Ya((a,r)=>{let s=!0,i=Zn(a,t,!0),o=fe(a,i),l=fe(ce(o,"float32"),Dn(Te(dn(o),t,s)));return r([l]),{value:l,gradFunc:(c,u)=>{let[p]=u,d=!0,h=dn(p);return fe(c,L(Te(c,t,d),h))}}})(n)}var zh=O({logSoftmax_:mR});function ub(e,t){for(let n=0;ne[s]);return[n,r]}function Mi(e,t){let n=t.map(a=>1);return D1(e,n,t)}function fR(e,t,n){A(ub(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function M1(e,t){if(ub(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function cb(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function gR(e,t){let n=[];for(let a=t-e;a`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(Ka(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),r!=null&&A(Gt(a),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r},p=M.runKernel(ei,c,u);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ft=O({maxPool_:kR});function IR(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),r!=null&&A(Gt(a),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${r} but got pad ${a}.`);let c={x:o},u={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},p=M.runKernel(Nc,c,u);return l?H(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var db=O({maxPool3d_:IR});function NR(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=M.runKernel(oh,s,i);return{result:o[0],indexes:o[1]}}var O1=O({maxPoolWithArgmax_:NR});function TR(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(Qs,r)}var Za=O({maximum_:TR});function SR(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return M.runKernel(ti,a,r)}var St=O({mean_:SR});function CR(e,t=null,n=!1){let a={x:E(e,"x","min")},r={axis:t,keepDims:n};return M.runKernel(ni,a,r)}var Yl=O({min_:CR});function _R(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Nt(n,a),n.dtype==="bool"&&(n=ce(n,"int32"),a=ce(a,"int32")),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(ai,r)}var Zl=O({minimum_:_R});function ER(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return M.runKernel(Tc,i,s)}var hb=O({mirrorPad_:ER});function AR(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(hl,r)}var mb=O({mod_:AR});function FR(e){let t=E(e,"x","square"),n={};return M.runKernel("Square",{x:t},n)}var ut=O({square_:FR});function $R(e,t=null,n=!1){e=E(e,"x","moments");let a=ca(t,e.shape),r=St(e,a,n),s=r.shape;n||(s=Mi(r.shape,a));let i=ut(fe(ce(e,"float32"),H(r,s))),o=St(i,a,n);return{mean:r,variance:o}}var Wh=O({moments_:$R});function DR(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=zc(n,"c","multiRNNCell"),i=zc(a,"h","multiRNNCell"),o=r,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?H(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},c=M.runKernel(lh,o,l);return i===1?H(c,[c.size]):c}var L1=O({multinomial_:MR});function PR(e,t){let n=E(e,"a","notEqual"),a=E(t,"b","notEqual");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a};return M.runKernel(fl,r)}var Pi=O({notEqual_:PR});function vt(e,t="float32"){if(t==="complex64"){let a=vt(e,"float32"),r=vt(e,"float32");return Kr(a,r)}let n=Od(Pt(e),t);return M.makeTensor(n,e,t)}function Ja(e,t="float32"){if(t==="complex64"){let a=Ja(e,"float32"),r=vt(e,"float32");return Kr(a,r)}let n=oy(Pt(e),t);return M.makeTensor(n,e,t)}function OR(e){let t={x:E(e,"x","onesLike")};return M.runKernel(xl,t)}var Rn=O({onesLike_:OR});function LR(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=H(n,[-1,1]),s=H(a,[1,-1]);return ze(r,s)}var zR=O({outerProduct_:LR});function BR(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return M.runKernel(ii,s,r)}var Jn=O({pad_:BR});function WR(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Jn(e,[t],n)}var VR=O({pad1d_:WR});function UR(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Jn(e,t,n)}var GR=O({pad2d_:UR});function HR(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Jn(e,t,n)}var jR=O({pad3d_:HR});function qR(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Jn(e,t,n)}var KR=O({pad4d_:qR});function XR(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]==0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return M.runKernel(_c,r,s)}var Xc=O({spaceToBatchND_:XR});function JR(e,t,n,a,r,s){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let i=E(e,"x","maxPool"),o=i,l=!1;i.rank===3&&(l=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]])),A(Ka(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let c=m1(o.shape,t,s,r,a),u=[c.dilationHeight,c.dilationWidth],p;a==="same"?p=ZR([c.filterHeight,c.filterWidth],u):p=[[0,0],[0,0]];let d=u[0]===1&&u[1]===1,[h,m]=YR([c.inHeight,c.inWidth],u,p),f=d?a:"valid",g=d?o:Xc(o,u,h),y=(n==="avg"?()=>Yn(g,t,s,f):()=>Ft(g,t,s,f))(),b=d?y:Gc(y,u,m);return l?H(b,[b.shape[1],b.shape[2],b.shape[3]]):b}function YR(e,t,n){let a=n.map(u=>u[0]),r=n.map(u=>u[1]),s=e.concat(a,r),i=t.map((u,p)=>(u-s[p]%u)%u),o=r.map((u,p)=>u+i[p]),l=t.map((u,p)=>[a[p],o[p]]),c=t.map((u,p)=>[0,i[p]]);return[l,c]}function ZR(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var z1=O({pool_:JR});function QR(e,t){let n=E(e,"base","pow"),a=E(t,"exp","pow");[n,a]=Nt(n,a);let r={a:n,b:a};return M.runKernel(oi,r)}var vr=O({pow_:QR});function eM(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return M.runKernel(li,r)}var Yc=O({prelu_:eM});function tM(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=ce(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return M.runKernel(wl,r,s)}var Vh=O({prod_:tM});function nM(e,t,n){let a=Pt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},rM=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=fb.alea(r.toString()),this.randn=new gb(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=fb.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function iM(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new rM(t,n,a,r),i=Le(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Mn(t,0)}var gM=O({reverse1d_:fM});function yM(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),Mn(n,t)}var bM=O({reverse2d_:yM});function xM(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),Mn(n,t)}var vM=O({reverse3d_:xM});function wM(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),Mn(n,t)}var kM=O({reverse4d_:wM});function IM(e){let t={x:E(e,"x","round")};return M.runKernel(hi,t)}var bb=O({round_:IM});function NM(e){let t={x:E(e,"x","rsqrt")};return M.runKernel(mi,t)}var Hh=O({rsqrt_:NM});function de(e,t){if((on(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&on(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Xr(e,[],[],t)}function TM(e){let t={x:E(e,"x","selu")};return M.runKernel(Sl,t)}var jh=O({selu_:TM});function SM(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),c=E(n,"pointwiseFilter","separableConv2d"),u=o,p=!1;if(o.rank===3&&(p=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(u.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),A(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);let d=l.shape[2],h=l.shape[3];A(c.shape[2]===d*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${d*h}, but got ${c.shape[2]}.`);let m=es(u,l,a,r,i,s),f=At(m,c,1,"valid",i);return p?H(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Oi=O({separableConv2d_:SM});async function CM(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let u=0;u`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),We(a,[t],[n])}var Xh=O({slice1d_:FM});function $M(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var vb=O({slice2d_:$M});function DM(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Ql=O({slice3d_:DM});function RM(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),We(a,t,n)}var Jc=O({slice4d_:RM});function MM(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return M.runKernel(xi,a,r)}var Sa=O({softmax_:MM});function PM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(eh,t)}var Qc=O({fft_:PM});function OM(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return M.runKernel(th,t)}var eu=O({ifft_:OM});function LM(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=H(e,[n,t]);a=eu(r)}else{let r=[n,2*(t-1)],s=H(Zc(e),[n,t]),i=H(Mh(e),[n,t]),o=Mn(We(s,[0,1],[n,t-2]),1),l=L(Mn(We(i,[0,1],[n,t-2]),1),de(-1)),c=Qe([s,o],1),u=Qe([i,l],1),p=H(Kr(c,u),[r[0],r[1]]);a=eu(p)}if(a=Zc(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=H(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Yh=O({irfft_:LM});function zM(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return M.runKernel(Fl,a,r)}var Pn=O({split_:zM});function BM(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=We(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Qe([e,vt(m)],e.shape.length-1),n=t}else r=e;let s=Ge(r),i=H(Kr(r,s),[a,n]),o=Qc(i),l=Math.floor(n/2)+1,c=Zc(o),u=Mh(o),p=Pn(c,[l,n-l],c.shape.length-1),d=Pn(u,[l,n-l],u.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,H(Kr(p[0],d[0]),h)}var ep=O({rfft_:BM});function WM(e){let t={x:E(e,"x","sqrt")};return M.runKernel(yi,t)}var tn=O({sqrt_:WM});function VM(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Nt(n,a),xt(n.shape,a.shape);let r={a:n,b:a},s={};return M.runKernel(vi,r,s)}var Zh=O({squaredDifference_:VM});function UM(e,t){let n=E(e,"x","squeeze");return H(n,i0(n.shape,t).newShape)}var as=O({squeeze_:UM});function GM(e,t=0){let n=zc(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return M.runKernel(vl,a,r)}var $t=O({stack_:GM});function HM(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return M.runKernel(jr,n,a)}var tu=O({step_:HM});function jM(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let c={x:E(e,"x","stridedSlice")},u={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return M.runKernel($l,c,u)}var wb=O({stridedSlice_:jM});function qM(e){let t={x:E(e,"x","tan")};return M.runKernel(Dl,t)}var kb=O({tan_:qM});function nt(e,t){As(e);let n=ja(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Xr(e,null,n,t)}function Ca(e,t,n){if(As(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=ja(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Xr(e,t,a,n)}function _a(e,t,n){if(As(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=ja(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Xr(e,t,a,n)}function KM(e,t,n){if(As(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=ja(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Xr(e,t,a,n)}function XM(e,t,n){if(As(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=ja(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Xr(e,t,a,n)}function YM(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=M.runKernel(Rl,s,i);return{values:o,indices:l}}var Ib=O({topk_:YM});function ZM(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new gb(t,n,a,!0,r),i=Le(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=M.runKernel(hh,a,r);return{values:s,indices:i}}var Qh=O({unique_:JM});function QM(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(Gt(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return M.runKernel(Ac,s,i)}var Nb=O({unsortedSegmentSum_:QM});function eP(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return M.runKernel(Ml,a,r)}var dt=O({unstack_:eP});function V1(e,t=!0,n,a){return M.makeVariable(e,t,n,a)}function U1(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=de(1),c=fe(l,o),u=L(fe(i,s),c);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let p=E(a,"step","movingAverage");u=ve(u,fe(l,vr(o,p)))}return Z(s,u)}var iP=O({movingAverage_:sP});function oP(e,t,n){let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");Oy(r,a,n);let s={indices:a,updates:r},i={shape:n};return M.runKernel(Nl,s,i)}var H1=O({scatterND_:oP});function lP(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function uP(e,t,n,a=0){let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense"),i=E(a,"defaultValue","sparseToDense",s.dtype);lP(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return M.runKernel(dh,o,l)}var Sb=O({sparseToDense_:uP});function cP(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND"),indices:n};return M.runKernel(rl,a)}var j1=O({gatherND_:cP});function pP(e,t){if(t==null)return e.shape.slice();if(yr(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Ae?r.clone():r;let s=pP(r,n),i=1-t,o=ve(Kl(Z(Jl(s,0,1,"float32",a),i)),i);return L(r,o)}var q1=O({dropout_:dP});function K1(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Cb(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,c]=[i.length/s,s],u=o0("bool",l);for(let p=0;pg.value-f.value),u[p]=0;for(let f=0;ffP,depthwiseConv2d:()=>gP,matMul:()=>yP});function bP(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let c=s==="NHWC"?o.shape[3]:o.shape[1],u=s==="NHWC"?l.shape[3]:l.shape[1];A(c===n[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${n[2]}.`),A(u===n[3],()=>`Error in conv2dDerFilter: depth of dy (${u}) must match output depth for filter (${n[3]}).`),i!=null&&A(Gt(r),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${i} but got pad ${r}.`);let p={x:o,dy:l},d={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return M.runKernel(Gd,p,d)}var _b=O({conv2DBackpropFilter_:bP});function tm(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return L(e,tu(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function nm(e,t){let n=t,a=zt(e.shape,t.shape);return a.length>0&&(n=Te(n,a)),H(n,e.shape)}function am(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Ye(e);if(t==="elu")return ql(e);if(t==="relu6")return Gh(e);if(t==="prelu")return Yc(e,n);if(t==="leakyrelu")return qc(e,a);throw new Error(`Unknown fused activation ${t}.`)}var rm=(e,t)=>!(e>0)||t==="linear";function xP({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(l=l||"linear",rm(M.state.gradientDepth,l)===!1){let N=At(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),am(N,l,c,u)}let p=E(e,"x","conv2d"),d=E(t,"filter","conv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${d.rank}.`),i!=null&&A(Gt(a),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${a}.`),A(h.shape[3]===d.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${d.shape[2]}.`),A(Ka(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NHWC",()=>`Error in conv2d: got dataFormat of ${r} but only NHWC is currently supported.`);let f=Uc(h.shape,d.shape,n,s,a,i),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused conv2d"));let b=(N,T)=>{let[C,F,$,P]=T,B=tm(N,$,l);A(Qr(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=eb(F.shape,B,C,n,a),G=_b(F,B,C.shape,n,a),q=[W,G];if(P!=null){let j=nm(P,B);q.push(j)}return q},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Ya((N,T,C)=>{let F=M.runKernel(Ti,v,x);return C([T,N,F]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d):Ya((N,T,C,F)=>{let $=M.runKernel(Ti,v,x);return F([T,N,$,C]),m&&($=H($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var fP=O({fusedConv2d_:xP});function vP(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=H(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={x:o,dy:l},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return M.runKernel(Kd,c,u)}var X1=O({depthwiseConv2dNativeBackpropFilter_:vP});function wP(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=H(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let c={dy:o,filter:n},u={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},p=M.runKernel(Xd,c,u);return l?H(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Y1=O({depthwiseConv2dNativeBackpropInput_:wP});function kP({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:c,leakyreluAlpha:u}){if(rm(M.state.gradientDepth,l)===!1){let N=es(e,t,n,a,r,s,i);return o!=null&&(N=Z(N,o)),am(N,l,c,u)}let p=E(e,"x","depthwiseConv2d"),d=E(t,"filter","depthwiseConv2d"),h=p,m=!1;p.rank===3&&(m=!0,h=H(p,[1,p.shape[0],p.shape[1],p.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(d.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${d.rank}.`),A(h.shape[3]===d.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${d.shape[2]}.`),s==null&&(s=[1,1]),A(Ka(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),i!=null&&A(Gt(a),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${i} but got pad ${a}.`);let f=Uc(h.shape,d.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Nt(g,p),xt(f.outShape,g.shape));let y;c!=null&&(y=E(c,"prelu weights","fused depthwiseConv2d"));let b=(N,T)=>{A(Qr(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,F,$,P]=T,B=tm(N,$,l),W=Y1(F.shape,B,C,n,a,s,i),G=X1(F,B,C.shape,n,a,s,i);if(P!=null){let q=nm(g,B);return[W,G,q]}return[W,G]},v={x:h,filter:d,bias:g,preluActivationWeights:y},x={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:u};return o==null?Ya((N,T,C)=>{let F=M.runKernel(Si,v,x);return C([T,N,F]),m&&(F=H(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(h,d):Ya((N,T,C,F)=>{let $=M.runKernel(Si,v,x);return F([T,N,$,C]),m&&($=H($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,d,g)}var gP=O({fusedDepthwiseConv2d_:kP});function IP({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o}){if(rm(M.state.gradientDepth,s)===!1){let P=ze(e,t,n,a);return r!=null&&(P=Z(P,r)),am(P,s,i,o)}let l=E(e,"a","fused matMul"),c=E(t,"b","fused matMul");[l,c]=Nt(l,c);let u=n?l.shape[l.rank-2]:l.shape[l.rank-1],p=a?c.shape[c.rank-1]:c.shape[c.rank-2],d=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?c.shape[c.rank-2]:c.shape[c.rank-1],m=l.shape.slice(0,-2),f=c.shape.slice(0,-2),g=Pt(m),y=Pt(f);A(l.rank>=2&&c.rank>=2&&l.rank===c.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${c.rank}.`),A(yr(m,f),()=>`Error in fused matMul: outer dimensions (${m}) and (${f}) of Tensors with shapes ${l.shape} and ${c.shape} must match.`),A(u===p,()=>`Error in fused matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${l.shape} and ${c.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=l.shape.slice(0,-2).concat([d,h]),v=n?H(l,[g,u,d]):H(l,[g,d,u]),x=a?H(c,[y,h,p]):H(c,[y,p,h]),N;r!=null&&(N=E(r,"bias","fused matMul"),[N]=Nt(N,l),xt(b,N.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let C=(P,B)=>{let[W,G,q,j]=B,X=tm(H(P,q.shape),q,s),K,ne;if(!n&&!a?(K=ze(X,G,!1,!0),ne=ze(W,X,!0,!1)):!n&&a?(K=ze(X,G,!1,!1),ne=ze(X,W,!0,!1)):n&&!a?(K=ze(G,X,!1,!0),ne=ze(W,X,!1,!1)):(K=ze(G,X,!0,!0),ne=ze(X,W,!0,!0)),r!=null){let J=nm(j,X);return[K,ne,J]}else return[K,ne]},F={a:v,b:x,bias:N,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?Ya((P,B,W)=>{let G=M.runKernel(Ni,F,$);return W([P,B,G]),{value:H(G,b),gradFunc:C}})(v,x):Ya((P,B,W,G)=>{let q=M.runKernel(Ni,F,$);return G([P,B,q,W]),{value:H(q,b),gradFunc:C}})(v,x,N)}var yP=O({fusedMatMul_:IP});function NP(e){return Cb(e,.54,.46)}var TP=O({hammingWindow_:NP});function SP(e){return Cb(e,.5,.5)}var Z1=O({hannWindow_:SP});function CP(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(We(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let u={image:i,boxes:o,boxInd:l},p={method:r,extrapolationValue:s,cropSize:a};return M.runKernel(Xo,u,p)}var FP=O({cropAndResize_:AP});function $P(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return M.runKernel(nl,n,{})}var DP=O({flipLeftRight_:$P});function RP(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return M.runKernel(Ol,s,i)}var MP=O({rotateWithOffset_:RP});function nu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function PP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression"),i=E(t,"scores","nonMaxSuppression"),o=nu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return M.runKernel(gl,{boxes:s,scores:i},l)}var OP=O({nonMaxSuppression_:PP});function zP(e,t,n){let a=LP(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function LP(e,t,n){return WP(e,t,n||BP)}function BP(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function Q1(e,t,n,a,r){return Eb(e,t,n,a,r,0)}function ek(e,t,n,a,r,s){return Eb(e,t,n,a,r,0,!1,s,!0)}function tk(e,t,n,a,r,s){return Eb(e,t,n,a,r,s,!0)}function Eb(e,t,n,a,r,s,i=!1,o=!1,l=!1){let c=[];for(let g=0;gr&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(nk);let u=s>0?-.5/s:0,p=[],d=[];for(;p.length0;){let g=c.pop(),{score:y,boxIndex:b,suppressBeginIndex:v}=g;if(y=v;--N){let T=VP(e,b,p[N]);if(T>=a){x=!0;break}if(g.score=g.score*UP(a,u,T),g.score<=r)break}g.suppressBeginIndex=p.length,x||(g.score===y?(p.push(b),d.push(g.score)):g.score>r&&zP(c,g,nk))}let h=p.length,m=n-h;o&&m>0&&(p.push(...new Array(m).fill(0)),d.push(...new Array(m).fill(0)));let f={selectedIndices:p};return i&&(f.selectedScores=d),l&&(f.validOutputs=h),f}function VP(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),c=Math.min(r[0],r[2]),u=Math.min(r[1],r[3]),p=Math.max(r[0],r[2]),d=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(p-c)*(d-u);if(h<=0||m<=0)return 0;let f=Math.max(s,c),g=Math.max(i,u),y=Math.min(o,p),b=Math.min(l,d),v=Math.max(y-f,0)*Math.max(b-g,0);return v/(h+m-v)}function UP(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function nk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function GP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=nu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),c=l[0],u=l[1],{selectedIndices:p}=Q1(c,u,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),nt(p,"int32")}var HP=GP;function jP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=nu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c={boxes:i,scores:o},u={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},p=M.runKernel(bl,c,u);return{selectedIndices:p[0],selectedScores:p[1]}}var qP=O({nonMaxSuppressionWithScore_:jP});async function KP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=nu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let c=await Promise.all([i.data(),o.data()]),u=c[0],p=c[1],{selectedIndices:d,selectedScores:h}=tk(u,p,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:nt(d,"int32"),selectedScores:nt(h)}}var XP=KP;function YP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=nu(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,d={boxes:i,scores:o},h={maxOutputSize:c,iouThreshold:u,scoreThreshold:p,padToMaxOutputSize:s},m=M.runKernel(yl,d,h);return{selectedIndices:m[0],validOutputs:m[1]}}var ZP=O({nonMaxSuppressionPadded_:YP});async function JP(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=nu(i,o,n,a,r,null),c=l.maxOutputSize,u=l.iouThreshold,p=l.scoreThreshold,[d,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=ek(d,h,c,u,p,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:nt(m,"int32"),validOutputs:de(f,"int32")}}var QP=JP;function eO(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(ci,o,l);return i?H(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var ak=O({resizeBilinear_:eO});function tO(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=H(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},c=M.runKernel(Cc,o,l);return i?H(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var rk=O({resizeNearestNeighbor_:tO});function nO(e,t,n){A(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1==0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=H(Uh(0,s,1,"int32"),[-1,1]),l=Uh(0,i,1,"int32"),c=fe(o,l),u=ma(Ri(c,de(+t,"int32")),ns(c,de(-n,"int32"))),p=vt([s,i],a.dtype);return H($t(dt(H(a,[-1,s,i])).map(d=>wn(u,d,p))),r)}var aO=O({bandPart_:nO});function rO(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=Pn(e,e.shape[0],0).map(r=>as(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return sk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),a=dt(H(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[c,u]=sk(l,t);r.push(c),s.push(u)});let i=H($t(r,0),e.shape),o=H($t(s,0),e.shape);return[i,o]}}function sk(e,t=!1){return M.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=ob(n),s=Zr(e),i=Ca([[1]],[1,1]),o=Zr(i),l=n>=a?a:n;for(let c=0;c{let h=We(s,[c,c],[n-c,1]),m=em(h),f=We(s,[c,c],[1,1]),g=wn(ha(f,0),Ca([[-1]]),Ca([[1]])),y=fe(f,L(g,m)),b=ve(h,y);b.shape[0]===1?o=Zr(i):o=Qe([i,We(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let v=Tt(ve(ze(g,y),m)),x=We(s,[c,0],[n-c,a]),N=L(v,o),T=Ue(o);if(c===0)s=fe(x,ze(N,ze(T,x)));else{let $=fe(x,ze(N,ze(T,x)));s=Qe([We(s,[0,0],[c,a]),$],0)}let C=Ue(N),F=We(r,[0,c],[n,r.shape[1]-c]);if(c===0)r=fe(F,ze(ze(F,o),C));else{let $=fe(F,ze(ze(F,o),C));r=Qe([We(r,[0,0],[n,c]),$],1)}return[o,s,r]}),Fe([u,p,d])}return!t&&n>a&&(r=We(r,[0,0],[n,a]),s=We(s,[0,0],[a,a])),[r,s]})}var oO=O({qr_:iO}),hn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(hn||(hn={}));function lO(e,t,n=hn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:L(a,r);if(n===hn.NONE)return s;if(n===hn.SUM)return Te(s);if(n===hn.MEAN){if(r==null)return St(s);{let i=a.size/r.size,o=ve(Te(s),Te(r));return i>1?ve(o,de(i)):o}}if(n===hn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return ve(Te(s),de(a.size));{let i=L(r,Ja(a.shape)),o=ce(Te(Pi(i,de(0))),"float32");return ve(Te(s),o)}}throw Error(`Unknown reduction: ${n}`)}var wr=O({computeWeightedLoss_:lO});function uO(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(fe(r,s));return wr(o,i,a)}var cO=O({absoluteDifference_:uO});function pO(e,t,n,a,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),sn(s.shape,i.shape,"Error in cosineDistance: ");let l=de(1),c=fe(l,Te(L(s,i),n,!0));return wr(c,o,r)}var dO=O({cosineDistance_:pO});function hO(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),sn(r.shape,s.shape,"Error in hingeLoss: ");let o=de(1);r=fe(L(de(2),r),o);let l=Ye(fe(o,L(r,s)));return wr(l,i,a)}var mO=O({hingeLoss_:hO});function fO(e,t,n,a=1,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),sn(s.shape,i.shape,"Error in huberLoss: ");let l=de(a),c=Lt(fe(i,s)),u=Zl(c,l),p=fe(c,u),d=Z(L(de(.5),ut(u)),L(l,p));return wr(d,o,r)}var gO=O({huberLoss_:fO});function yO(e,t,n,a=1e-7,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),sn(s.shape,i.shape,"Error in logLoss: ");let l=de(1),c=de(a),u=Tt(L(s,Dn(Z(i,c)))),p=L(fe(l,s),Dn(Z(fe(l,i),c))),d=fe(u,p);return wr(d,o,r)}var bO=O({logLoss_:yO});function xO(e,t,n,a=hn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Zh(r,s);return wr(o,i,a)}var vO=O({meanSquaredError_:xO});function wO(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Ye(a),s=L(a,n),i=Oh(dn(Tt(Lt(a))));return Z(fe(r,s),i)}function kO(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(.5);s=Z(L(s,fe(u,c)),L(p,c))}let l=wO(s,i);return wr(l,o,r)}var IO=O({sigmoidCrossEntropy_:kO});function NO(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return Ya((a,r,s)=>{let i=pb(r,[n],!0),o=fe(ce(r,"float32"),i);s([a,o]);let l=Tt(L(o,a));return{value:Te(l,[n]),gradFunc:(c,u)=>{let[p,d]=u,h=Mi(c.shape,[n]);return[L(H(c,h),fe(ce(p,"float32"),dn(d))),L(H(c,h),fe(dn(d),ce(p,"float32")))]}}})(e,t)}function TO(e,t,n,a=0,r=hn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let c=de(a),u=de(1),p=de(s.shape[1]);s=Z(L(s,fe(u,c)),ve(c,p))}let l=NO(s,i);return wr(l,o,r)}var SO=O({softmaxCrossEntropy_:TO}),CO={fft:Qc,ifft:eu,rfft:ep,irfft:Yh},_O={hammingWindow:TP,hannWindow:Z1,frame:J1,stft:EP},Qa={flipLeftRight:DP,resizeNearestNeighbor:rk,resizeBilinear:ak,rotateWithOffset:MP,cropAndResize:FP,nonMaxSuppression:OP,nonMaxSuppressionAsync:HP,nonMaxSuppressionWithScore:qP,nonMaxSuppressionWithScoreAsync:XP,nonMaxSuppressionPadded:ZP,nonMaxSuppressionPaddedAsync:QP},ik={bandPart:aO,gramSchmidt:sO,qr:oO},EO={absoluteDifference:cO,computeWeightedLoss:wr,cosineDistance:dO,hingeLoss:mO,huberLoss:gO,logLoss:bO,meanSquaredError:vO,sigmoidCrossEntropy:IO,softmaxCrossEntropy:SO},kr=class extends i1{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Fe(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return F1(e,t)}dispose(){this.iterations_!=null&&Fe(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:de(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(kr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var sm=class extends kr{constructor(e,t,n=null){super();this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;D(()=>{let l=Z(L(i,this.rho),L(ut(s),1-this.rho)),c=L(ve(tn(Z(o,this.epsilon)),tn(Z(i,this.epsilon))),s),u=Z(L(o,this.rho),L(ut(c),1-this.rho));i.assign(l),o.assign(u);let p=Z(L(c,-this.learningRate),a);a.assign(p)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Fe(this.accumulatedGrads.map(e=>e.variable)),Fe(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};sm.className="Adadelta";Jr(sm);var im=class extends kr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulatedGrads[n]==null){let i=!1;this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:D(()=>kn(a.shape,this.initialAccumulatorValue).variable(i))}}let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;D(()=>{let i=Z(s,ut(r));s.assign(i);let o=Z(L(ve(r,tn(Z(i,M.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Fe(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};im.className="Adagrad";Jr(im);var om=class extends kr{constructor(e,t,n,a=null){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],D(()=>{this.accBeta1=de(t).variable(),this.accBeta2=de(n).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=fe(1,this.accBeta2);t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:D(()=>Ge(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:D(()=>Ge(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedSecondMoment[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=Z(L(u,this.beta2),L(ut(l),1-this.beta2)),h=ve(p,n),m=ve(d,a);c.assign(p),u.assign(d);let f=Z(L(ve(h,Z(tn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(L(this.accBeta1,this.beta1)),this.accBeta2.assign(L(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Fe(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),D(()=>{this.accBeta1.assign(vr(this.beta1,this.iterations_+1)),this.accBeta2.assign(vr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};om.className="Adam";Jr(om);var lm=class extends kr{constructor(e,t,n,a=null,r=0){super();this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],D(()=>{this.iteration=de(0).variable(),this.accBeta1=de(t).variable()}),a==null&&(this.epsilon=M.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);D(()=>{let n=fe(1,this.accBeta1),a=ve(-this.learningRate,Z(L(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=M.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:Ge(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:Ge(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let c=this.accumulatedFirstMoment[s].variable,u=this.accumulatedWeightedInfNorm[s].variable,p=Z(L(c,this.beta1),L(l,1-this.beta1)),d=L(u,this.beta2),h=Lt(l),m=Za(d,h);c.assign(p),u.assign(m);let f=Z(L(ve(a,n),ve(p,Z(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Z(this.iteration,1)),this.accBeta1.assign(L(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Fe(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Fe(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};lm.className="Adamax";Jr(lm);var tp=class extends kr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=M.registeredVariables[t];D(()=>{let s=Z(L(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=jt(de(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};tp.className="SGD";Jr(tp);var um=class extends tp{constructor(e,t,n=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=de(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t];if(this.accumulations[n]==null){let i=!1;this.accumulations[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(i))}}let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&D(()=>{let i,o=Z(L(this.m,r),s);this.useNesterov?i=Z(L(this.c,Z(s,L(o,this.m))),a):i=Z(L(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Fe(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};um.className="Momentum";Jr(um);var cm=class extends kr{constructor(e,t=.9,n=0,a=null,r=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=M.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=M.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:D(()=>Ge(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:D(()=>Ge(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;D(()=>{let l=Z(L(i,this.decay),L(ut(s),1-this.decay));if(this.centered){let c=this.accumulatedMeanGrads[n].variable,u=Z(L(c,this.decay),L(s,1-this.decay)),p=ve(L(s,this.learningRate),tn(fe(l,Z(ut(u),this.epsilon)))),d=Z(L(o,this.momentum),p);i.assign(l),c.assign(u),o.assign(d);let h=fe(a,d);a.assign(h)}else{let c=Z(L(i,this.decay),L(ut(s),1-this.decay)),u=Z(L(o,this.momentum),ve(L(s,this.learningRate),tn(Z(c,this.epsilon))));i.assign(c),o.assign(u);let p=fe(a,u);a.assign(p)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Fe(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Fe(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Fe(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};cm.className="RMSProp";Jr(cm);var Li=class{static sgd(e){return new tp(e)}static momentum(e,t,n=!1){return new um(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new cm(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new om(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new sm(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new lm(e,t,n,a,r)}static adagrad(e,t=.1){return new im(e,t)}},zi={sgd:Li.sgd,momentum:Li.momentum,adadelta:Li.adadelta,adagrad:Li.adagrad,rmsprop:Li.rmsprop,adamax:Li.adamax,adam:Li.adam},AO=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function pm(){return new Promise(e=>AO(()=>e()))}var _={};Oe(_,{ERF_A1:()=>WO,ERF_A2:()=>VO,ERF_A3:()=>UO,ERF_A4:()=>GO,ERF_A5:()=>HO,ERF_P:()=>BO,PARALLELIZE_THRESHOLD:()=>Ab,SELU_SCALE:()=>lk,SELU_SCALEALPHA:()=>ok,applyActivation:()=>am,assertAndGetBroadcastShape:()=>xt,assertAxesAreInnerMostDims:()=>fR,assertParamsConsistent:()=>FO,assignToTypedArray:()=>QO,axesAreInnerMostDims:()=>ub,calculateShapes:()=>K0,combineLocations:()=>D1,complexWithEvenIndex:()=>YO,complexWithOddIndex:()=>ZO,computeConv2DInfo:()=>Uc,computeConv3DInfo:()=>f1,computeDefaultPad:()=>Zy,computeDilation2DInfo:()=>z$,computeOptimalWindowSize:()=>DO,computeOutAndReduceShapes:()=>R1,computeOutShape:()=>$O,computePool2DInfo:()=>m1,computePool3DInfo:()=>B$,convertConv2DDataFormat:()=>h1,eitherStridesOrDilationsAreOne:()=>Ka,expandShapeToKeepDim:()=>Mi,exponent:()=>tL,exponents:()=>eL,fromStringArrayToUint8:()=>rL,fromUint8ToStringArray:()=>aL,getAxesPermutation:()=>M1,getBroadcastDims:()=>FD,getComplexWithIndex:()=>JO,getFusedBiasGradient:()=>nm,getFusedDyActivation:()=>tm,getImageCenter:()=>RO,getInnerMostAxes:()=>gR,getPermuted:()=>PO,getReductionAxes:()=>zt,getReshaped:()=>MO,getReshapedPermuted:()=>OO,getSliceBeginCoords:()=>LO,getSliceSize:()=>zO,getUndoAxesPermutation:()=>cb,log:()=>qO,mergeRealAndImagArrays:()=>KO,prepareAndValidate:()=>q0,prepareSplitSize:()=>nL,segment_util:()=>uk,shouldFuse:()=>rm,slice_util:()=>pn,splitRealAndImagArrays:()=>XO,tupleValuesAreOne:()=>Qr,upcastType:()=>pa,validateInput:()=>Oy,validateUpdateShape:()=>Py,warn:()=>jO});function FO(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function $O(e,t){let n=e[0].slice();for(let a=1;a=t*2+1||i%2==1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function OO(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}var uk={};Oe(uk,{collectGatherOpShapeInfo:()=>oL,computeOutShape:()=>iL,segOpComputeOptimalWindowSize:()=>sL});function sL(e,t){let n=!1,a;for(e<=Ab?(a=e,n=!0):a=Pd(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Pd(e,a+1);return a}function iL(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(nbh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function rL(e){return e.map(t=>Rc(t))}var er={};Oe(er,{nonMaxSuppressionV3Impl:()=>Q1,nonMaxSuppressionV4Impl:()=>ek,nonMaxSuppressionV5Impl:()=>tk,whereImpl:()=>U1});var ck={kernelName:zo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,tu(ce(n,"float32"),-1))}}},lL={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ut(ce(n,"float32")),r=tn(fe(de(1),a));return Tt(ve(e,r))}}}},uL={kernelName:Wo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=tn(fe(ut(ce(n,"float32")),1));return ve(e,a)}}}},cL={kernelName:Ur,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),H(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),H(s,a.shape)}}}},pL={kernelName:$s,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},dL={kernelName:Ds,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},hL={kernelName:mc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Ge(n)}}},mL={kernelName:Vo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,tn(fe(de(1),ut(ce(n,"float32")))))}}},fL={kernelName:Uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=tn(Z(de(1),ut(ce(n,"float32"))));return ve(e,a)}}}},gL={kernelName:jo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=Z(ut(n),ut(a)),i=L(e,ve(a,s)),o=zt(n.shape,r);return o.length>0&&(i=Te(i,o)),H(i,n.shape)},b:()=>{let s=Z(ut(n),ut(a)),i=Tt(L(e,ve(n,s))),o=zt(a.shape,r);return o.length>0&&(i=Te(i,o)),H(i,a.shape)}}}},yL={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(ut(ce(n,"float32")),1))}}},bL={kernelName:Ho,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,fe(de(1),ut(ce(n,"float32"))))}}};function xL(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,c=o,u=!1;o.rank===4&&(u=!0,l=H(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),c=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(c.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${c.rank}.`),s!=null&&A(Gt(r),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${r}.`);let p={dy:l,input:c},d={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=M.runKernel(Wd,p,d);return u?H(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var vL=O({avgPool3dGrad_:xL}),wL={kernelName:fc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>vL(e,a,r,s,i,o)}}};function kL(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,c=!1;i.rank===3&&(c=!0,o=H(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=H(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let u={dy:l,input:o},p={filterSize:n,strides:a,pad:r},d=M.runKernel(Bd,u,p);return c?H(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var IL=O({avgPoolGrad_:kL}),NL={kernelName:Rs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>IL(e,a,r,s,i)}}},TL={kernelName:Ms,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>ze(e,r,!1,!0),b:()=>ze(a,e,!0,!1)}:!s&&i?{a:()=>ze(e,r,!1,!1),b:()=>ze(e,a,!0,!1)}:s&&!i?{a:()=>ze(r,e,!1,!0),b:()=>ze(a,e,!1,!1)}:{a:()=>ze(r,e,!0,!0),b:()=>ze(e,a,!0,!0)}}},SL={kernelName:gc,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Xc(e,a,r)}}},CL={kernelName:b0,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>Te(e,o,!0)}}},_L={kernelName:Ps,gradFunc:e=>({x:()=>e.clone()})},EL={kernelName:Os,gradFunc:e=>({x:()=>Ge(e)})},AL={kernelName:Gr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>wn(ma(ns(a,r),Ri(a,s)),e,Ge(e))}}},FL={kernelName:yc,inputsToSave:["x"],gradFunc:ck.gradFunc},$L={kernelName:qo,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=ca(r,t[0].shape)[0],i=a.map(o=>o[s]);return Pn(e,i,s).map(o=>()=>o)}},DL={kernelName:Ls,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(Qr(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>eb(a.shape,e,r,i,o,l),filter:()=>_b(a,e,r.shape,i,o,l)}}},RL={kernelName:zs,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>_b(e,a,r.shape,s,i,o,l)}}};function ML(e,t,n,a,r){let s=e;e.rank===4&&(s=H(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=H(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return M.runKernel(Hd,o,l)}var PL=O({conv3DBackpropFilter_:ML}),OL={kernelName:bc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(Qr(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>N1(i.shape,e,o,r,s),filter:()=>PL(i,e,o.shape,r,s)}}},LL={kernelName:Bs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Tt(qh(ce(n,"float32"))),e)}}},zL={kernelName:Ko,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Kh(ce(n,"float32")),e)}}},BL={kernelName:Ws,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=M1([r],a.rank),l=Rh(e,r,s,!i);return o!=null&&(l=Ue(l,o)),l}}}},WL={kernelName:Vs,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(Qr(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,c]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),A(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),A(Ka(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),i!=null&&A(Gt(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`),{x:()=>Y1(l.shape,e,c,r,s,a,i),filter:()=>X1(l,e,c.shape,r,s,a,i)}}},VL={kernelName:xc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>M.runKernel(Zd,s,n),filter:()=>M.runKernel(Jd,i,n)}}},UL={kernelName:Zo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>M.runKernel(Qd,a)}}},GL={kernelName:Jo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(dn(Tt(ut(n))),2/Math.sqrt(Math.PI));return{x:()=>L(e,a)}}},HL={kernelName:Gs,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,n)}}},jL={kernelName:el,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>H(e,n.shape)}}},qL={kernelName:tl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,dn(n))}}},KL={kernelName:Hs,gradFunc:e=>({x:()=>Ge(e)})},XL={kernelName:js,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?H(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=H(Te(s,i),a.shape));let o=ut(a);return Tt(ve(s,ce(o,"float32")))}}}},YL={kernelName:qs,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?de(1):o,c=zt(s.shape,r.shape),u=[];if(s.rank===1){for(let f=0;fs.rank===1?H(L(L(e,Xa(H(h,[1,1,1,s.shape[0]]),u)),l),r.shape):H(L(L(e,h),l),r.shape),mean:()=>{let f=L(L(h,de(-1)),d);return s.rank===1&&(f=Te(f,c)),H(f,s.shape)},variance:()=>{let f=L(L(m,p),d);return s.rank===1&&(f=Te(f,c)),H(f,s.shape)},scale:()=>{let f=L(p,h),g=L(e,f);return s.rank===1&&(g=Te(g,c)),H(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=Te(f,c)),H(f,s.shape)}}}},ZL={kernelName:al,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=ca(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,c=o.slice(0,i),u=c.length,p=o.slice(s,o.length).slice(1),d=p.length,h=pk(0,u),m=pk(u+1,u+1+d),f=dk([c,[l],p]),g=H(e,f),y=H(r,[l]),b=dk([[u],h,m]),v=Ue(g,b),x=Nb(v,y,a.shape[i]),N=cb(b);return x=Ue(x,N),x},indices:()=>r}}};function pk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>Ge(n),b:()=>Ge(a)}}},QL={kernelName:Xs,gradFunc:e=>({x:()=>ce(e,"float32")})},e3={kernelName:il,gradFunc:e=>({x:()=>Ge(e)})},t3={kernelName:ol,gradFunc:e=>({x:()=>Ge(e)})},n3={kernelName:ll,gradFunc:e=>({x:()=>Ge(e)})},a3={kernelName:Ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=ha(a,0);return{x:()=>wn(s,e,L(e,r))}}},r3={kernelName:pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Z(n,1))}}},s3={kernelName:Zs,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,ce(n,"float32"))}}},i3={kernelName:x0,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=!0,i=dn(a);return fe(e,L(Te(e,r,s),i))}}}};function o3(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return M.runKernel(rh,o,l)}var l3=O({localResponseNormalizationBackprop_:o3}),u3={kernelName:Ic,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>l3(a,r,e,s,i,o,l)}}};function hk(e,t,n,a){return t.rankL(e,ce(ts(n,t),e.dtype))}}var mk={kernelName:Js,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=ca(r,s.shape),l=hk(e,i,s,o);return{x:()=>l.x()}}},c3={kernelName:Qs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(ns(n,a),"float32")),b:()=>L(e,ce(Ph(n,a),"float32"))}}};function p3(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),c=E(n,"output","maxPool3dGrad"),u=o,p=l,d=c,h=!1;l.rank===4&&(h=!0,u=H(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),p=H(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),d=H(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]])),A(u.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),A(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${d.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let m={dy:u,input:p,output:d},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=M.runKernel(ih,m,f);return h?H(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var d3=O({maxPool3dGrad_:p3}),h3={kernelName:Nc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>d3(e,a,r,s,i,o,l)}}};function m3(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),c=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),i!=null&&A(Gt(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${i} but got pad ${s}.`);let u={dy:o,input:l,output:c},p={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return M.runKernel(sh,u,p)}var f3=O({maxPoolGrad_:m3}),g3={kernelName:ei,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>f3(e,a,r,s,i,o)}}},y3={kernelName:ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=ca(r,a.shape),i=R1(a.shape,s)[1],o=Pt(i);return{x:()=>{let l=a.shape.slice();s.forEach(u=>{l[u]=1});let c=H(e,l);return ve(L(c,Ja(a.shape,"float32")),o)}}}},b3={kernelName:ni,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=ca(r,s.shape),l=hk(e,i,s,o);return{x:()=>l.x()}}},x3={kernelName:ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>L(e,ce(Ri(n,a),"float32")),b:()=>L(e,ce(ha(n,a),"float32"))}}},v3={kernelName:Tc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},w3={kernelName:hl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=zt(n.shape,r);return s.length>0?H(Te(e,s),n.shape):e},b:()=>{let s=L(e,Tt(Kl(ve(n,a)))),i=zt(a.shape,r);return i.length>0?H(Te(s,i),a.shape):s}}}},k3={kernelName:ri,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=L(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?H(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);return i.length>0?H(Te(s,i),a.shape):s}}}},I3={kernelName:ml,gradFunc:e=>({x:()=>Tt(e)})},N3={kernelName:si,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>vt(n.shape,"float32")}}},T3={kernelName:xl,gradFunc:e=>({x:()=>Ge(e)})},S3={kernelName:vl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return dt(e,a).map(r=>()=>r)}},fk={kernelName:ii,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>We(e,s,a.shape)}}},C3={kernelName:oi,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=xt(s.shape,i.shape);return{a:()=>{let l=ce(i,"float32"),c=L(e,L(l,vr(s,fe(l,de(1))))),u=zt(s.shape,o);return u.length>0&&(c=Te(c,u)),H(c,s.shape)},b:()=>{let l=ha(s,0),c=wn(l,Dn(s),Ge(s)),u=L(e,L(r,c)),p=zt(i.shape,o);return p.length>0&&(u=Te(u,p)),H(u,i.shape)}}}},_3={kernelName:li,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=ha(n,0);return{x:()=>wn(r,e,L(e,a)),alpha:()=>{let s=wn(r,Ge(e),L(e,n)),i=zt(a.shape,e.shape);return i.length>0&&(s=Te(s,i)),H(s,a.shape)}}}},E3={kernelName:Us,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=ve(e,ce(a,"float32")),i=zt(n.shape,r);return i.length>0?H(Te(s,i),n.shape):s},b:()=>{let s=L(e,ce(n,"float32")),i=zt(a.shape,r);i.length>0&&(s=H(Te(s,i),a.shape));let o=ut(a);return Tt(ve(s,ce(o,"float32")))}}}},A3={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,Tt(ut(n)))}}},F3={kernelName:pi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=L(Ri(n,6),tu(n));return{x:()=>L(e,ce(a,"float32"))}}},$3={kernelName:ui,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,ce(tu(n),"float32"))}}},D3={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>H(e,n.shape)}}},R3={kernelName:ci,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(ph,r,n)}}},M3={kernelName:Cc,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>M.runKernel(ch,r,n)}}},P3={kernelName:di,gradFunc:(e,t,n)=>{let{dims:a}=n,r=ca(a,e.shape);return{x:()=>Mn(e,r)}}},O3={kernelName:hi,gradFunc:e=>({x:()=>Ge(e)})},L3={kernelName:mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>Tt(ve(e,L(vr(n,1.5),2)))}}},z3={kernelName:Tl,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>ce(Ge(n),"float32"),t:()=>L(e,ce(n,e.dtype)),e:()=>L(e,ce(Kc(n),e.dtype))}}},B3={kernelName:Sl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ha(n,de(0)),r=de(ok),s=de(lk),i=L(e,s),o=L(L(e,r),dn(ce(n,"float32")));return wn(a,i,o)}}}},W3={kernelName:gi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(n,fe(de(1),n)))}}},V3={kernelName:El,gradFunc:e=>({x:()=>Ge(e)})},U3={kernelName:fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(jc(ce(n,"float32")),e)}}},G3={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(Dh(ce(n,"float32")),e)}}},H3={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=a1(a,r,s),c=[];for(let u=0;uJn(e,c)}}},j3={kernelName:xi,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=L(e,a);return{logits:()=>fe(i,L(Te(i,[r],s),a))}}},q3={kernelName:Al,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,da(n))}}},gk={kernelName:_c,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Gc(e,a,r)}}},yk={kernelName:Fl,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Qe(e,a)}}},K3={kernelName:yi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,L(tn(ce(n,"float32")),2))}}},X3={kernelName:Ec,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(e,L(ce(n,"float32"),2))}}},Y3={kernelName:vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=de(2);return{a:()=>L(e,L(r,fe(n,a))),b:()=>L(e,L(r,fe(a,n)))}}},Z3={kernelName:jr,gradFunc:e=>({x:()=>Ge(e)})},J3={kernelName:wi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xt(n.shape,a.shape);return{a:()=>{let s=e,i=zt(n.shape,r);return i.length>0&&(s=Te(s,i)),H(s,n.shape)},b:()=>{let s=e,i=zt(a.shape,r);return i.length>0&&(s=Te(s,i)),H(Tt(s),a.shape)}}}},Q3={kernelName:bi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;ca(s,a.shape).forEach(l=>{r[l]=1});let i=H(e,r),o=L(i,Ja(a.shape,"float32"));return{x:()=>o}}},ez={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>ve(e,ut(jc(n)))}}},tz={kernelName:ki,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L(fe(de(1),ut(n)),e)}}},nz={kernelName:Hr,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=Ge(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=cb(r);return{x:()=>Ue(e,s)}}},rz={kernelName:Ml,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},iz={kernelName:Ac,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>sz(e,n)}}};function sz(e,t){let n=Za(t,Ge(t)),a=Di(e,n),r=ns(t,de(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>Ge(e)})},lz=[ck,lL,uL,cL,pL,dL,hL,mL,fL,gL,yL,bL,wL,NL,TL,SL,CL,_L,EL,AL,FL,$L,RL,DL,OL,LL,zL,BL,WL,VL,E3,UL,GL,HL,jL,qL,XL,KL,YL,ZL,JL,QL,e3,t3,n3,a3,r3,s3,i3,u3,mk,mk,c3,h3,g3,y3,b3,x3,v3,w3,k3,I3,N3,T3,S3,fk,fk,C3,_3,A3,F3,$3,D3,R3,M3,P3,O3,L3,z3,B3,W3,V3,U3,G3,H3,j3,q3,gk,gk,yk,yk,K3,Y3,X3,Z3,J3,Q3,ez,tz,nz,az,rz,iz,oz];for(let e of lz)v0(e);Y().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Y().prototype.acos=function(){return this.throwIfDisposed(),Vy(this)};Y().prototype.acosh=function(){return this.throwIfDisposed(),Uy(this)};Y().prototype.add=function(e){return this.throwIfDisposed(),Z(this,e)};Y().prototype.all=function(e,t){return this.throwIfDisposed(),Eh(this,e,t)};Y().prototype.any=function(e,t){return this.throwIfDisposed(),Wc(this,e,t)};Y().prototype.argMax=function(e){return this.throwIfDisposed(),Vc(this,e)};Y().prototype.argMin=function(e){return this.throwIfDisposed(),Gy(this,e)};Y().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),H(this,[])};Y().prototype.asType=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.as1D=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.as2D=function(e,t){return this.throwIfDisposed(),H(this,[e,t])};Y().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),H(this,[e,t,n])};Y().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),H(this,[e,t,n,a])};Y().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),H(this,[e,t,n,a,r])};Y().prototype.asin=function(){return this.throwIfDisposed(),Hy(this)};Y().prototype.asinh=function(){return this.throwIfDisposed(),jy(this)};Y().prototype.atan=function(){return this.throwIfDisposed(),qy(this)};Y().prototype.atan2=function(e){return this.throwIfDisposed(),Ky(this,e)};Y().prototype.atanh=function(){return this.throwIfDisposed(),Xy(this)};Y().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),Yn(this,e,t,n,a)};Y().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Gc(this,e,t)};Y().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),xr(this,e,t,n,a,r)};Y().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Hc(this,e)};Y().prototype.cast=function(e){return this.throwIfDisposed(),ce(this,e)};Y().prototype.ceil=function(){return this.throwIfDisposed(),Qy(this)};Y().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),qt(this,e,t)};Y().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Ae&&(e=[e]),Qe([this,...e],t)};Y().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fh(this,e,t,n,a,r,s)};Y().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),$h(this,e,t,n,a,r)};Y().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Y().prototype.cos=function(){return this.throwIfDisposed(),jc(this)};Y().prototype.cosh=function(){return this.throwIfDisposed(),Dh(this)};Y().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Rh(this,e,t,n)};Y().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),nb(this,e,t)};Y().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),es(this,e,t,n,a,r,s)};Y().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),ab(this,e,t,n,a,r)};Y().prototype.divNoNan=function(e){return this.throwIfDisposed(),rb(this,e)};Y().prototype.div=function(e){return this.throwIfDisposed(),ve(this,e)};Y().prototype.dot=function(e){return this.throwIfDisposed(),S1(this,e)};Y().prototype.elu=function(){return this.throwIfDisposed(),ql(this)};Y().prototype.equal=function(e){return this.throwIfDisposed(),ts(this,e)};Y().prototype.erf=function(){return this.throwIfDisposed(),sb(this)};Y().prototype.exp=function(){return this.throwIfDisposed(),dn(this)};Y().prototype.expandDims=function(e){return this.throwIfDisposed(),$n(this,e)};Y().prototype.expm1=function(){return this.throwIfDisposed(),ib(this)};Y().prototype.fft=function(){return this.throwIfDisposed(),Qc(this)};Y().prototype.flatten=function(){return this.throwIfDisposed(),H(this,[this.size])};Y().prototype.floor=function(){return this.throwIfDisposed(),Kl(this)};Y().prototype.floorDiv=function(e){return this.throwIfDisposed(),_h(this,e)};Y().prototype.gather=function(e,t){return this.throwIfDisposed(),Di(this,e,t)};Y().prototype.greaterEqual=function(e){return this.throwIfDisposed(),ns(this,e)};Y().prototype.greater=function(e){return this.throwIfDisposed(),ha(this,e)};Y().prototype.ifft=function(){return this.throwIfDisposed(),eu(this)};Y().prototype.irfft=function(){return this.throwIfDisposed(),Yh(this)};Y().prototype.isFinite=function(){return this.throwIfDisposed(),C1(this)};Y().prototype.isInf=function(){return this.throwIfDisposed(),_1(this)};Y().prototype.isNaN=function(){return this.throwIfDisposed(),E1(this)};Y().prototype.leakyRelu=function(e){return this.throwIfDisposed(),qc(this,e)};Y().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ri(this,e)};Y().prototype.less=function(e){return this.throwIfDisposed(),Ph(this,e)};Y().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),lb(this,e,t,n,a)};Y().prototype.logSigmoid=function(){return this.throwIfDisposed(),$1(this)};Y().prototype.logSoftmax=function(e){return this.throwIfDisposed(),zh(this,e)};Y().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),pb(this,e,t)};Y().prototype.log=function(){return this.throwIfDisposed(),Dn(this)};Y().prototype.log1p=function(){return this.throwIfDisposed(),Oh(this)};Y().prototype.logicalAnd=function(e){return this.throwIfDisposed(),ma(this,e)};Y().prototype.logicalNot=function(){return this.throwIfDisposed(),Kc(this)};Y().prototype.logicalOr=function(e){return this.throwIfDisposed(),Bh(this,e)};Y().prototype.logicalXor=function(e){return this.throwIfDisposed(),P1(this,e)};Y().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),ze(this,e,t,n)};Y().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Ft(this,e,t,n,a)};Y().prototype.max=function(e,t){return this.throwIfDisposed(),Zn(this,e,t)};Y().prototype.maximum=function(e){return this.throwIfDisposed(),Za(this,e)};Y().prototype.mean=function(e,t){return this.throwIfDisposed(),St(this,e,t)};Y().prototype.min=function(e,t){return this.throwIfDisposed(),Yl(this,e,t)};Y().prototype.minimum=function(e){return this.throwIfDisposed(),Zl(this,e)};Y().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),hb(this,e,t)};Y().prototype.mod=function(e){return this.throwIfDisposed(),mb(this,e)};Y().prototype.mul=function(e){return this.throwIfDisposed(),L(this,e)};Y().prototype.neg=function(){return this.throwIfDisposed(),Tt(this)};Y().prototype.norm=function(e,t,n){return this.throwIfDisposed(),em(this,e,t,n)};Y().prototype.notEqual=function(e){return this.throwIfDisposed(),Pi(this,e)};Y().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),Ul(this,e,t,n)};Y().prototype.onesLike=function(){return this.throwIfDisposed(),Rn(this)};Y().prototype.pad=function(e,t){return this.throwIfDisposed(),Jn(this,e,t)};Y().prototype.pool=function(e,t,n,a,r){return this.throwIfDisposed(),z1(this,e,t,n,a,r)};Y().prototype.pow=function(e){return this.throwIfDisposed(),vr(this,e)};Y().prototype.prelu=function(e){return this.throwIfDisposed(),Yc(this,e)};Y().prototype.prod=function(e,t){return this.throwIfDisposed(),Vh(this,e,t)};Y().prototype.reciprocal=function(){return this.throwIfDisposed(),yb(this)};Y().prototype.relu=function(){return this.throwIfDisposed(),Ye(this)};Y().prototype.relu6=function(){return this.throwIfDisposed(),Gh(this)};Y().prototype.reshapeAs=function(e){return this.throwIfDisposed(),H(this,e.shape)};Y().prototype.reshape=function(e){return this.throwIfDisposed(),H(this,e)};Y().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),ak(this,e,t,n)};Y().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),rk(this,e,t,n)};Y().prototype.reverse=function(e){return this.throwIfDisposed(),Mn(this,e)};Y().prototype.rfft=function(){return this.throwIfDisposed(),ep(this)};Y().prototype.round=function(){return this.throwIfDisposed(),bb(this)};Y().prototype.rsqrt=function(){return this.throwIfDisposed(),Hh(this)};Y().prototype.selu=function(){return this.throwIfDisposed(),jh(this)};Y().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Oi(this,e,t,n,a,r,s)};Y().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};Y().prototype.sign=function(){return this.throwIfDisposed(),xb(this)};Y().prototype.sin=function(){return this.throwIfDisposed(),qh(this)};Y().prototype.sinh=function(){return this.throwIfDisposed(),Kh(this)};Y().prototype.slice=function(e,t){return this.throwIfDisposed(),We(this,e,t)};Y().prototype.softmax=function(e){return this.throwIfDisposed(),Sa(this,e)};Y().prototype.softplus=function(){return this.throwIfDisposed(),Xl(this)};Y().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Xc(this,e,t)};Y().prototype.split=function(e,t){return this.throwIfDisposed(),Pn(this,e,t)};Y().prototype.sqrt=function(){return this.throwIfDisposed(),tn(this)};Y().prototype.square=function(){return this.throwIfDisposed(),ut(this)};Y().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Zh(this,e)};Y().prototype.squeeze=function(e){return this.throwIfDisposed(),as(this,e)};Y().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Ae?[this,e]:[this,...e];return $t(n,t)};Y().prototype.step=function(e){return this.throwIfDisposed(),tu(this,e)};Y().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),wb(this,e,t,n,a,r,s,i,o)};Y().prototype.sub=function(e){return this.throwIfDisposed(),fe(this,e)};Y().prototype.sum=function(e,t){return this.throwIfDisposed(),Te(this,e,t)};Y().prototype.tan=function(){return this.throwIfDisposed(),kb(this)};Y().prototype.tanh=function(){return this.throwIfDisposed(),jl(this)};Y().prototype.tile=function(e){return this.throwIfDisposed(),Xa(this,e)};Y().prototype.toBool=function(){return this.throwIfDisposed(),ce(this,"bool")};Y().prototype.toFloat=function(){return this.throwIfDisposed(),ce(this,"float32")};Y().prototype.toInt=function(){return this.throwIfDisposed(),ce(this,"int32")};Y().prototype.topk=function(e,t){return this.throwIfDisposed(),Ib(this,e,t)};Y().prototype.transpose=function(e){return this.throwIfDisposed(),Ue(this,e)};Y().prototype.unique=function(e){return this.throwIfDisposed(),Qh(this,e)};Y().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),Nb(this,e,t)};Y().prototype.unstack=function(e){return this.throwIfDisposed(),dt(this,e)};Y().prototype.where=function(e,t){return this.throwIfDisposed(),wn(e,this,t)};Y().prototype.zerosLike=function(){return this.throwIfDisposed(),Ge(this)};var bk={};Oe(bk,{maxNorm:()=>uz,minMaxNorm:()=>dz,nonNeg:()=>pz,unitNorm:()=>cz});var Fb;function Bt(){return Fb==null&&(Fb=p1().epsilon()),Fb}function Ea(){return"channelsLast"}var Ir=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ir.prototype)}},Aa=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Aa.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},$e=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$e.prototype)}},xk=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,xk.prototype)}},hz=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,hz.prototype)}};function Bi(e,t){if(Array.isArray(e)){let n=[];for(let a=0;an.toUpperCase())}var fa={};function $b(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Db(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Db(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Db(a))}}}function np(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in fa)i=fa[s];else if(i=t[s],i==null)throw new z(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new z(`${a}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in ma?[o,l]=ma.className:i in t&&([o,l]=t[i]),o==null)throw new z(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in fa?[o,l]=fa.className:i in t&&([o,l]=t[i]),o==null)throw new z(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let c={};for(let h of Object.keys(ma))c[h]=ma[h];for(let h of Object.keys(n))c[h]=n[h];let u=s.config;u.customObjects=c;let p=Object.assign({},ma);for(let h of Object.keys(n))ma[h]=n[h];Ab(s.config);let d=l(o,s.config,n,r);return ma=Object.assign({},p),d}else{let c=Object.assign({},ma);for(let p of Object.keys(n))ma[p]=n[p];let u=new o(s.config);return ma=Object.assign({},c),u}}}function lz(e,t){return et?1:0}function um(e,t){return-1*lz(e,t)}function ss(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function uz(e){if(e==null)throw new z(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Bi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new z(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Fb(e,t,n=0,a=Infinity){return er(n>=0),er(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(k.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):k.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${gk(e)}.`)}function gk(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>gk(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function cz(e,t){let n=k.now(),a;return(...r)=>{let s=k.now();return s-ntn(Te(L(e,e),t,!0)))}var ap=class extends re.Serializable{getConfig(){return{}}},Db=class extends ap{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=$b(e,this.axis),n=qt(t,0,this.maxValue);return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Db.className="MaxNorm";re.registerClass(Db);var Rb=class extends ap{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>ve(e,Z(Bt(),$b(e,this.axis))))}getConfig(){return{axis:this.axis}}};Rb.className="UnitNorm";re.registerClass(Rb);var Mb=class extends ap{apply(e){return Ye(e)}};Mb.className="NonNeg";re.registerClass(Mb);var Pb=class extends ap{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=$b(e,this.axis),n=Z(L(this.rate,qt(t,this.minValue,this.maxValue)),L(1-this.rate,t));return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Pb.className="MinMaxNorm";re.registerClass(Pb);var bk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Wt(e){return Eb(e)}function xk(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Vt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in bk?bk[e]:e,config:{}};return xk(t)}else return e instanceof ap?e:xk(e)}function az(e){return new Db(e)}function rz(e){return new Rb(e)}function sz(){return new Mb}function iz(e){return new Pb(e)}var vk={};Oe(vk,{constant:()=>hz,glorotNormal:()=>vz,glorotUniform:()=>xz,heNormal:()=>wz,heUniform:()=>kz,identity:()=>yz,leCunNormal:()=>Iz,leCunUniform:()=>Nz,ones:()=>dz,orthogonal:()=>Tz,randomNormal:()=>fz,randomUniform:()=>mz,truncatedNormal:()=>gz,varianceScaling:()=>bz,zeros:()=>pz});var Sz=["channelsFirst","channelsLast"],Cz=["nearest","bilinear"],_z=["valid","same","causal"],Ez=["max","avg"],Az=["sum","mul","concat","ave"],au=new Map;function Dt(e){Bi(Sz,"DataFormat",e)}function Fz(e){Bi(Cz,"InterpolationFormat",e)}function Qn(e){Bi(_z,"PaddingMode",e)}function wk(e){Bi(Ez,"PoolMode",e)}var rp=[],kk="/";function Wi(e,t){rp.push(e);try{let n=t();return rp.pop(),n}catch(n){throw rp.pop(),n}}function $z(){return rp.length===0?"":rp.join(kk)+kk}function Nk(e){if(!Ik(e))throw new Error("Not a valid tensor name: '"+e+"'");return $z()+e}function Tk(e){if(!Ik(e))throw new Error("Not a valid tensor name: '"+e+"'");au.has(e)||au.set(e,0);let t=au.get(e);if(au.set(e,au.get(e)+1),t>0){let n=`${e}_${t}`;return au.set(n,1),n}else return e}var Dz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function Ik(e){return!!e.match(Dz)}function Rz(e){return e===parseInt(e.toString(),10)}function is(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r{if(e.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=ip(e,1);return Ob(n,[1,t,1])})}function Pz(e){let t=[is(e.shape)];return e.reshape(t)}function Oz(e){if(e.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],is(e.shape,1)];return e.reshape(t)}function Vi(e,t,n){return D(()=>{switch(e.rank){case 1:return jh(e,t,n);case 2:return yb(e,[t,0],[n,e.shape[1]]);case 3:return Ql(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Jc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Lb(e,t,n){return D(()=>{switch(e.rank){case 1:return jh(e,t,n);case 2:return yb(e,[0,t],[e.shape[0],n]);case 3:return Ql(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Jc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function cm(e,t,n,a){return D(()=>{switch(e.rank){case 1:return jh(e,t,n);case 2:switch(a){case 1:return Vi(e,t,n);case 2:return Lb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Vi(e,t,n);case 2:return Ql(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Lb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Vi(e,t,n);case 2:return Jc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Jc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Lb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function zb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function Ck(e,t){switch(e.rank){case 1:return f1([e,t]);case 2:return g1([e,t],0);case 3:return y1([e,t],0);case 4:return b1([e,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Ob(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ka(e,t)}function pm(e,t=0,n=1,a,r){return M1(e,t,n,a,r)}function tr(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return rs.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?Bb(e.rank,a,_a()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),c=[...i,o],u=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(u).reshape([l,-1]);let p=[...r,...c],d=!1,h=!1;return rs.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?Bb(e.rank,a,_a()):null,activation:n}).reshape(p)}}function _k(e,t,n){return D(()=>(Array.isArray(t)?t=nt(t,"int32"):t=t.toInt(),Fi(e,t,n)))}function op(e){return L(e,e)}function Bb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function nr(e,t,n){return D(()=>(n==null&&(n=_a()),Dt(n),e.add(Bb(e.rank,t,n))))}function Lz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return ql(e)}function zz(e){return D(()=>ve(e,Lt(e).add(1)))}function Ek(e,t,n,a){return D(()=>V1(e,t,n,a))}function Bz(e){return D(()=>{let t=Z(.5,L(.2,e));return qt(t,0,1)})}function lp(e,t,n=!1){return n?e():t()}var Wz=["fanIn","fanOut","fanAvg"],Vz=["normal","uniform","truncatedNormal"];function Uz(e){Bi(Wz,"FanMode",e)}function Gz(e){Bi(Vz,"Distribution",e)}var fa=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Wb=class extends fa{apply(e,t){return vt(e,t)}};Wb.className="Zeros";re.registerClass(Wb);var dm=class extends fa{apply(e,t){return Za(e,t)}};dm.className="Ones";re.registerClass(dm);var Vb=class extends fa{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return D(()=>L(de(this.value),Za(e,t)))}getConfig(){return{value:this.value}}};Vb.className="Constant";re.registerClass(Vb);var Ub=class extends fa{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Jl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Ub.className="RandomUniform";re.registerClass(Ub);var Gb=class extends fa{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return pm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Gb.className="RandomNormal";re.registerClass(Gb);var Hb=class extends fa{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Xh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Hb.className="TruncatedNormal";re.registerClass(Hb);var jb=class extends fa{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return D(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return L(this.gain,rb(e[0]))})}getConfig(){return{gain:this.gain}}};jb.className="Identity";re.registerClass(jb);function Hz(e,t="channelsLast"){let n,a;if(Dt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=is(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=is(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=is(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Nn=class extends fa{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Uz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,Gz(this.distribution),this.seed=e.seed}apply(e,t){let n=Hz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Xh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Jl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Nn.className="VarianceScaling";re.registerClass(Nn);var hm=class extends Nn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};hm.className="GlorotUniform";re.registerClass(hm);var mm=class extends Nn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};mm.className="GlorotNormal";re.registerClass(mm);var fm=class extends Nn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};fm.className="HeNormal";re.registerClass(fm);var gm=class extends Nn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};gm.className="HeUniform";re.registerClass(gm);var ym=class extends Nn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};ym.className="LeCunNormal";re.registerClass(ym);var bm=class extends Nn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};bm.className="LeCunNormal";re.registerClass(bm);var qb=class extends fa{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return D(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=pm(n,0,1,"float32"),r=tk.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),L(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};qb.className="Orthogonal";re.registerClass(qb);var Ak={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Fk(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return Eb(e)}function wt(e){if(typeof e=="string"){let t=e in Ak?Ak[e]:e;if(t==="GlorotNormal")return new mm;if(t==="GlorotUniform")return new hm;if(t==="HeNormal")return new fm;if(t==="HeUniform")return new gm;if(t==="LeCunNormal")return new ym;if(t==="LeCunUniform")return new bm;{let n={};return n.className=t,n.config={},Fk(n)}}else return e instanceof fa?e:Fk(e)}function pz(){return new Wb}function dz(){return new dm}function hz(e){return new Vb(e)}function mz(e){return new Ub(e)}function fz(e){return new Gb(e)}function gz(e){return new Hb(e)}function yz(e){return new jb(e)}function bz(e){return new Nn(e)}function xz(e){return new hm(e)}function vz(e){return new mm(e)}function wz(e){return new fm(e)}function kz(e){return new gm(e)}function Iz(e){return new ym(e)}function Nz(e){return new bm(e)}function Tz(e){return new qb(e)}var $k={};Oe($k,{Layer:()=>qe,RNN:()=>ar,RNNCell:()=>up,activation:()=>oB,add:()=>gB,alphaDropout:()=>QB,average:()=>yB,averagePooling1d:()=>Kb,averagePooling2d:()=>Xb,averagePooling3d:()=>Yb,avgPool1d:()=>SB,avgPool2d:()=>_B,avgPool3d:()=>AB,avgPooling1d:()=>CB,avgPooling2d:()=>EB,avgPooling3d:()=>FB,batchNormalization:()=>IB,bidirectional:()=>HB,concatenate:()=>bB,conv1d:()=>Qz,conv2d:()=>eB,conv2dTranspose:()=>tB,conv3d:()=>nB,convLstm2d:()=>WB,convLstm2dCell:()=>VB,cropping2D:()=>rB,dense:()=>lB,depthwiseConv2d:()=>iB,dot:()=>kB,dropout:()=>uB,elu:()=>qz,embedding:()=>fB,flatten:()=>pB,gaussianDropout:()=>JB,gaussianNoise:()=>ZB,globalAveragePooling1d:()=>$B,globalAveragePooling2d:()=>DB,globalMaxPool1d:()=>qB,globalMaxPool2d:()=>KB,globalMaxPooling1d:()=>Rk,globalMaxPooling2d:()=>Mk,gru:()=>MB,gruCell:()=>PB,input:()=>Dk,inputLayer:()=>jz,layerNormalization:()=>NB,leakyReLU:()=>Xz,lstm:()=>OB,lstmCell:()=>LB,masking:()=>eW,maxPool1d:()=>XB,maxPool2d:()=>YB,maxPooling1d:()=>Pk,maxPooling2d:()=>Ok,maxPooling3d:()=>RB,maximum:()=>xB,minimum:()=>vB,multiply:()=>wB,permute:()=>mB,prelu:()=>Yz,reLU:()=>Kz,repeatVector:()=>dB,reshape:()=>hB,rnn:()=>UB,separableConv2d:()=>aB,simpleRNN:()=>zB,simpleRNNCell:()=>BB,softmax:()=>Zz,spatialDropout1d:()=>cB,stackedRNNCells:()=>GB,thresholdedReLU:()=>Jz,timeDistributed:()=>jB,upSampling2d:()=>sB,zeroPadding2d:()=>TB});var tW=0;function Lk(){return tW++}var xm={};function vm(e=""){return e in xm||(xm[e]=0),xm[e]+=1,e+xm[e].toString()}function Zb(e){return Array.isArray(e)&&Array.isArray(e[0])}function wm(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new z(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ht(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new z(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function km(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var zk="Variable",Bk=class{constructor(e,t="float32",n=zk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Lk(),n=n==null?zk:n,this.originalName=Nk(n),this.name=Tk(this.originalName),this.trainable_=a,this.constraint=r,this.val=O1(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),nW(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function nW(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Jb(e){return e.map(t=>t.read())}function Qb(e){e.forEach(t=>{t[0].write(t[1])})}var Xt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Fa=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=Lk(),s!=null&&(this.originalName=Nk(s),this.name=Tk(this.originalName)),this.rank=t.length}},aW=0,Im=class{constructor(e,t){this.callArgs=t,this.id=aW++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},rW=0,qe=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=rW++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Ir(n)+"_"+vm(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ea(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return In(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return In(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} is not connected, no input to return.`);return In(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return In(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=bt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=bt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(c!=null&&[c,null].indexOf(u)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of bt(e))s.push(i.shape);this.build(In(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=bt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=In(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=sW(e),i=this.computeOutputShape(s),o,l=iW(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((c,u)=>new Fa(l,c,this,bt(e),t,this.name,u)):o=new Fa(l,i,this,bt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new kr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new kr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ea(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return km(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Jb(e?this.trainableWeights:this.weights)}setWeights(e){D(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Jb(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=bt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=bt(e);t=bt(t),n=bt(n),a=bt(a),r=wm(r),s=wm(s);let l=[],c=[],u=[];for(let p of o)l.push(p.sourceLayer),c.push(p.nodeIndex),u.push(p.tensorIndex);new Im({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:u,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function sW(e){e=bt(e);let t=[];for(let n of e)t.push(n.shape);return In(t)}function iW(e){return"float32"}function Wk(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sZ(this.totals[a],L(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:D(()=>{let a=L(ve(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),jt(t[n])}))}},jk=class extends iu{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew qk(n,t))}var ga=class{constructor(){}static registerCallbackConstructor(e,t){k.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),ga.checkForDuplicate(t),ga.constructors[e]==null&&(ga.constructors[e]=[]),ga.constructors[e].push(t)}static checkForDuplicate(e){for(let t in ga.constructors)ga.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){ga.constructors={}}static createCallbacks(e){let t=[];for(let n in ga.constructors){let a=+n;e>=a&&t.push(...ga.constructors[a])}return t.map(n=>new n)}};ga.constructors={};function Xk(e,t,n,a,r,s,i,o,l){let c=new jk,u=[new lW,...ga.createCallbacks(t)];e!=null&&u.push(...e),u.push(c);let p=new Hk(u);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:c}}function $a(e,t={},n=!1){return np(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function Nm(e,t){return D(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Te(op(e),t,!0),a=kn(n.shape,Bt()),r=tn(Ya(n,a));return ve(e,r)})}function Ui(e,t){return D(()=>St(op(fe(t,e)),-1))}function Tm(e,t){return D(()=>St(Lt(fe(t,e)),-1))}function ou(e,t){return D(()=>{let n=fe(e,t),a=qt(Lt(e),Bt(),Number.MAX_VALUE),r=Lt(ve(n,a));return L(100,St(r,-1))})}function uW(e,t){return D(()=>{let n=qt(t,Bt(),Number.MAX_VALUE),a=$n(Z(1,n)),r=qt(e,Bt(),Number.MAX_VALUE),s=$n(Z(1,r));return St(op(fe(a,s)),-1)})}function cW(e,t){return D(()=>{let n=Ya(0,fe(1,L(e,t)));return St(op(n),-1)})}function pW(e,t){return D(()=>{let n=Ya(0,fe(1,L(e,t)));return St(n,-1)})}function dW(e,t){return D(()=>{let n=Te(L(e,t),-1),a=Zn(L(fe(1,e),t),-1);return Ya(0,Z(1,fe(a,n)))})}function hW(e,t){return D(()=>{let n=Math.log(2),a=fe(t,e),r=fe(Z(a,Xl(L(-2,a))),n);return St(r,-1)})}function cp(e,t,n=!1){return D(()=>{if(n)t=Ta(t);else{let a=Te(t,t.shape.length-1,!0);t=ve(t,a)}return t=qt(t,Bt(),1-Bt()),Tt(Te(L(e.toFloat(),$n(t)),t.shape.length-1))})}function Sm(e,t,n=!1){return D(()=>{let a=Kl(Pz(e)).toInt();t=qt(t,Bt(),1-Bt());let r=t.shape,s=Ul(a,r[r.length-1]).reshape(r);return cp(s,t,n)})}function mW(e,t){if(!k.arraysEqual(e.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return D(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function Cm(e,t){return D(()=>{let n;return n=qt(t,Bt(),1-Bt()),n=$n(ve(n,fe(1,n))),St(mW(e,n),-1)})}function fW(e,t){return D(()=>{let n=qt(e,Bt(),1),a=qt(t,Bt(),1);return Te(L(e,$n(ve(n,a))),-1)})}function gW(e,t){return D(()=>{let n=$n(Z(Bt(),t));return St(fe(t,L(e,n)),-1)})}function ex(e,t){return D(()=>{let n=Nm(e,-1),a=Nm(t,-1),r=L(n,a);return Tt(Te(r,-1))})}var _m={meanSquaredError:Ui,meanAbsoluteError:Tm,meanAbsolutePercentageError:ou,meanSquaredLogarithmicError:uW,squaredHinge:cW,hinge:pW,categoricalHinge:dW,logcosh:hW,categoricalCrossentropy:cp,sparseCategoricalCrossentropy:Sm,binaryCrossentropy:Cm,kullbackLeiblerDivergence:fW,poisson:gW,cosineProximity:ex};function tx(e){if(typeof e=="string"){if(e in _m)return _m[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return e}function nx(e,t){return D(()=>{let n=L(.5,Dn(t)),a=sp(da(t,n),e.dtype);return St(ts(e,a),-1)})}function ax(e,t){return D(()=>sp(ts(Vc(e,-1),Vc(t,-1)),"float32"))}function Yk(e,t){return D(()=>ha(e.equal(1),t.equal(1)).sum().cast("float32"))}function yW(e,t){return D(()=>ha(e.equal(1),t.equal(0)).sum().cast("float32"))}function bW(e,t){return D(()=>ha(e.equal(0),t.equal(1)).sum().cast("float32"))}function Zk(e,t){return D(()=>{let n=Yk(e,t),a=bW(e,t),r=n.add(a);return wn(da(r,0),n.div(r),0).cast("float32")})}function xW(e,t){return D(()=>{let n=Yk(e,t),a=yW(e,t),r=n.add(a);return wn(da(r,0),n.div(r),0).cast("float32")})}function Jk(e,t){return Cm(e,t)}function Qk(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),ts(e,t).asType("float32")}var vW=Ui,wW=Ui,kW=Tm,IW=Tm,NW=ou,TW=ou,rx=cp,SW=ex,eI=Sm,Em={binaryAccuracy:nx,categoricalAccuracy:ax,precision:Zk,categoricalCrossentropy:rx,sparseCategoricalCrossentropy:eI,mse:vW,MSE:wW,mae:kW,MAE:IW,mape:NW,MAPE:TW,cosine:SW};function CW(e){if(typeof e=="string"&&e in Em)return Em[e];if(typeof e!="string"&&e!=null)return e;throw new z(`Unknown metric ${e}`)}function Am(e){if(er(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(_m))if(_m[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(Em))if(Em[n]===e){t=n;break}return t!==void 0?t:e.name}}function _W(e){let t={Adagrad:()=>Oi.adagrad(.01),Adadelta:()=>Oi.adadelta(1,.95,Bt()),Adam:()=>Oi.adam(.001,.9,.999,Bt()),Adamax:()=>Oi.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>Oi.rmsprop(.001,.9,0,Bt()),SGD:()=>Oi.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new z(`Unknown Optimizer ${e}`)}var tI=1*1024*1024;function nI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!sx(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>tI&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${tI}.`)}}function sx(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!sx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!sx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function DW(e,t,n,a=console.log){let r=AW(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(u=>Math.floor(t*u)));let i;if(!r){s.push("Receives inputs"),i=[];for(let u in e.nodesByDepth)i.push(...e.nodesByDepth[u])}a("_".repeat(t)),Fm(s,n,a),a("=".repeat(t));let o=e.layers;for(let u=0;u1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Fm(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function FW(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];Fm(i,t,n)}function $W(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(u){r="multiple"}let s=[];for(let u of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(u)===-1))for(let p=0;pm.name),l=[],c=t.names();for(let m of o)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let u=o.join(",")+"|"+t.names().join(","),p,d;if(ox[u]==null){let m=MW(i,t);p=m.sorted,d=m.recipientCounts,ox[u]=p,rI[u]=d}p=ox[u],d={},r||Object.assign(d,rI[u]);let h=new Gi(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=sI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=sI(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(c=>a[l].add(c))}}return{sorted:n,recipientCounts:OW(a)}}function OW(e){let t={};for(let n in e)t[n]=e[n].size;return t}function sI(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let c of o.inputs)r[c.name]==null&&(r[c.name]=new Set),r[c.name].add(o.name),!n.has(c.name)&&s.push(c)}}return{sorted:a,recipientMap:r}}function PW(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);ss(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(x)}for(let y of this.inputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;er(v===0,"input layer has >1 nodes"),er(x===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(x)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,v,x,N,T)=>{(x==null||N==null||T==null)&&(x=y.sourceLayer,N=y.nodeIndex,T=y.tensorIndex);let C=x.inboundNodes[N];if(v.indexOf(C)!==-1)throw new Ea(`The tensor ${y.name} at layer "${x.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(rr.nodeKey(x,N)),x.id in s||(s[x.id]=Object.keys(s).length),v.indexOf(C)===-1&&v.push(C);let $=C.inboundLayers.length;for(let F=0;F<$;F++){let O=C.inputTensors[F],B=C.inboundLayers[F],W=C.nodeIndices[F],G=C.tensorIndices[F];o(O,b,v,B,W,G)}for(b.push(C);v.indexOf(C)>=0;)v.splice(v.indexOf(C),1);i.push(C)},l=[],c=[];for(let y of this.outputs)o(y,l,c);let u=i.slice().reverse();for(let y of u){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],v=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,v),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let x=0;xparseInt(y,10)).sort(um);this.layers=[];for(let y of h){let b=d[y];b.sort((v,x)=>{let N=s[v.id],T=s[x.id];return NT?1:0});for(let v of b)v instanceof rr&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(um);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let v=b.outboundLayer;if(v!=null){for(let x of b.inputTensors)if(m.indexOf(x)===-1)throw new Ea(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${v.name}". The following previous layers were accessed without issue: ${f}`);for(let x of b.outputTensors)m.push(x);f.push(v.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(v=>v===y).length;if(b!==1)throw new Ea(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Im({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new z(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new z(`${s.length} of ${a} weights are not set: ${s}`)}Qb(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${$m}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=ix(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return D(()=>{e=bt(e);let n=new Gi;for(let a=0;a{e=bt(e);let n;return t==null?n=Li(null,e.length):n=bt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=wm(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(um);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;let u=[];for(let m=0;mparseInt(o,10)).sort(um);for(let o of a){let l=this.nodesByDepth[o];for(let c of l){let u=c.outboundLayer,p=c.inputTensors,d=c.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(c.callArgs!=null&&(m=c.callArgs),h.length===1){let[v,x]=h[0];m.mask==null&&(m.mask=x),y=bt(u.call(v,m)),b=bt(u.computeMask(v,x)),f=[v],g=[x]}else f=h.map(v=>v[0]),g=h.map(v=>v[1]),m.mask==null&&(m.mask=g),y=bt(u.call(f,m)),b=bt(u.computeMask(f,g));if(u.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(In(y),b)}function l(f){let g=f.name,y=$a(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let c=t.name,u=t.layers;for(let f of u)l(f);for(;!uz(s);)for(let f of u){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];er(g in r);let v=r[g].inboundNodes[y].outputTensors;p.push(v[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];er(g in r);let v=r[g].inboundNodes[y].outputTensors;d.push(v[b])}return new e({inputs:p,outputs:d,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){D(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function LW(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function iI(e,t){return LW(e,t,"classWeight")}async function oI(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=D(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Fe(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),nt(i,"float32")}else return null}function zW(e,t){return L(e,t)}var BW=32;function uI(e,t){let n,a,r=t;n=r.xs,a=r.ys,k.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=lI("input",e.inputNames,n),i=lI("output",e.outputNames,a),o=s[0].shape[0];k.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),k.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function lI(e,t,n){if(n instanceof Ae)return[n];if(Array.isArray(n))return k.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new z(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function WW(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function UW(e,t,n){let a=n.batchesPerEpoch!=null;if(k.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),k.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),k.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),k.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),k.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(cI(n.validationData))k.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=WW(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),c;r?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();let u=Kk(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=Xk(u,p,n.epochs,null,null,VW(t,n),null,r,c);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:v.done){if(r){let x;cI(n.validationData)?x=bt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):x=bt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?BW:n.validationBatchSize,verbose:0}));for(let N=0;N0)throw new $e("Verbose mode is not implemented yet.");k.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=GW(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(c.value){let{xs:u,ys:p}=uI(e,c.value),d=u.concat(p),h=D(()=>r(d));if(Fe(d),l===0)for(let f=0;fZ(s[f],L(m,g))),l>0&&Fe(y)}Fe(h),o+=m,++l}return s}),c.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function hp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Vi(a,t,n-t)):Vi(e,t,n-t)}function ux(e,t){return D(()=>e==null?null:Array.isArray(e)?e.map(n=>ux(n,t)):_k(e,t.dtype==="int32"?t:t.toInt()))}function cx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function jW(e,t,n,a,r,s,i,o,l,c,u,p,d,h,m){r==null&&(r=32),s==null&&(s=1),u==null&&(u=!0),d==null&&(d=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Aa(0,g)),i==null&&(i=1);let{callbackList:b,history:v}=Xk(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let x=d;x{let O=C[$][0],B=C[$][1],W=Vi(T,O,B-O);F.batch=$,F.size=B-O;let G=ux(n,W),q=t(G);for(let H=0;H0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let T=!0,C=await e.standardizeUserData(i,o,null,null,T,p);l=C[0],c=C[1],f=l.concat(c)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let T=Math.floor(r[0].shape[0]*(1-a.validationSplit)),C=r[0].shape[0];l=hp(r,T,C),r=hp(r,0,T),c=hp(s,T,C),s=hp(s,0,T),f=l.concat(c)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(u);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),v,x;m?(e.makeTestFunction(),v=e.testFunction,x=b.slice().concat(b.map(T=>"val_"+T))):(v=null,f=[],x=b.slice());let N=Kk(a.callbacks,a.yieldEvery);return await jW(e,y,g,b,p,a.epochs,a.verbose,N,v,f,a.shuffle,x,a.initialEpoch,null,null)}finally{e.isTraining=!1,Hi(r,t),Hi(s,n),Hi(l,i),Hi(c,o),u!=null&&Fe(u)}}function pI(e){let t=[];e instanceof Ae&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Ae)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function KW(e){return e instanceof Ae}function px(e){return Array.isArray(e)}function dI(e){return!KW(e)&&!px(e)}function hI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(px(e)&&e.length>0)i=!0;else if(dI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(dI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(px(e)){if(e=e,e.length!==t.length)throw new z(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new z(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=pI(s),n!=null)for(let i=0;i=0&&c!==u)throw new z(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function XW(e,t,n){let a=ss(e.map(s=>s.shape[0]));a.sort();let r=ss(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!k.arraysEqual(a,r))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function YW(e,t,n){let a=[Ui,Cm,cp];for(let r=0;r1)throw new z(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var JW="layers-model",Nr=class extends rr{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");DW(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=_W(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof wr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new z(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(tx(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>tx(s))}else{let s=tx(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=ZW(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Wi("metric",()=>{for(let s=0;s{let l="",c,u,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Cm?["accuracy","acc"].indexOf(d)!==-1?u=nx:["crossentropy","ce"].indexOf(d)!==-1&&(u=Jk):this.lossFunctions[s]===Sm?["accuracy","acc"].indexOf(d)!==-1?u=Qk:["crossentropy","ce"].indexOf(d)!==-1&&(u=eI):["accuracy","acc"].indexOf(d)!==-1?u=ax:["crossentropy","ce"].indexOf(d)!==-1&&(u=rx);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=u,c=l+f}else p=CW(d),c=l+Am(d);let h;Wi(c,()=>{h=p}),r(s,c,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;lx(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return In(l)}finally{Hi(s[0],e),Hi(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),HW(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new z(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Gi;if(e instanceof Ae&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return D(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=cx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],c=hp(e,o,l),u=[];if(Array.isArray(c))for(let d=0;ds[l].push(o));return In(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=pI(e);mI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return lx(a),this.predictLoop(n,a)}finally{Hi(n,e)}}predictOnBatch(e){mI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Ea("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let c=iI(a,this.outputNames);l=[];for(let u=0;u{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=cx(s,n),l=nt(Aa(0,s));for(let c=0;c1&&(r+=`_${fk(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let c=[];for(let h=0;h1&&h{d=Z(d,h)}),d},o=this.collectedTrainableWeights.map(c=>c.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>D(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lIr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Ir(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Ir(Am(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(Am(e)));{let e={};for(let t in this.metrics)e[t]=Ir(Am(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=pp(e.optimizer_config),n=$a(t),a;if(typeof e.loss=="string")a=zi(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>zi(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=zi(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>zi(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=zi(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ht.getSaveHandlers(e);if(i.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new z(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ht.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:JW,generatedBy:`TensorFlow.js tfjs-layers v${$m}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ht.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ht.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;nI(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){nI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Nr.className="Model";re.registerClass(Nr);var fI=class extends Nr{};fI.className="Functional";re.registerClass(fI);async function QW(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=pp(n),r=$a(a,t);if(e.weightsManifest!=null){let s=await Ht.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Fe(s)}return r}async function t4(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ht.getLoadHandlers(e,t);if(n.length===0)n.push(Ht.browserHTTPRequest(e,t));else if(n.length>1)throw new z(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return e4(e,void 0,t)}async function e4(e,t,n){if(n==null&&(n={}),e.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=$a(pp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:c,optimizerWeights:u}=n4(a.weightData,a.weightSpecs);o.loadWeights(c,s),o.optimizer!=null&&u.length>0&&await o.optimizer.setWeights(u),Fe(c),Fe(u.map(p=>p.tensor))}return o}function n4(e,t){let n=Ht.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var lu=class extends Nr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:vm("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof lu||e instanceof Nr,n;if(t){if(n=e,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=Vk({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=Wk(this.outputs[0])}this.inboundNodes=[],new Im({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Li(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(ht(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Nr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Ea("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");r=t}else k.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof lu))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=$a(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};lu.className="Sequential";re.registerClass(lu);function a4(e){return new Nr(e)}function r4(e){return new lu(e)}function s4(e,t){return t==null&&(t={}),t4(e,t)}function Dk(e){return Vk(e)}function i4(e,t){ga.registerCallbackConstructor(e,t)}var Pn=class extends re.Serializable{getConfig(){return{}}},gI=class extends Pn{apply(e,t=1){return Lz(e,t)}};gI.className="elu";re.registerClass(gI);var yI=class extends Pn{apply(e){return Uh(e)}};yI.className="selu";re.registerClass(yI);var bI=class extends Pn{apply(e){return Ye(e)}};bI.className="relu";re.registerClass(bI);var xI=class extends Pn{apply(e){return D(()=>Zl(6,Ye(e)))}};xI.className="relu6";re.registerClass(xI);var vI=class extends Pn{apply(e){return e}};vI.className="linear";re.registerClass(vI);var wI=class extends Pn{apply(e){return pa(e)}};wI.className="sigmoid";re.registerClass(wI);var kI=class extends Pn{apply(e){return Bz(e)}};kI.className="hardSigmoid";re.registerClass(kI);var II=class extends Pn{apply(e){return Xl(e)}};II.className="softplus";re.registerClass(II);var NI=class extends Pn{apply(e){return zz(e)}};NI.className="softsign";re.registerClass(NI);var TI=class extends Pn{apply(e){return jl(e)}};TI.className="tanh";re.registerClass(TI);var dx=class extends Pn{apply(e,t=-1){return Ta(e,t)}};dx.className="softmax";re.registerClass(dx);var SI=class extends Pn{apply(e,t=-1){return Ph(e,t)}};SI.className="logSoftmax";re.registerClass(SI);var CI=class extends Pn{apply(e,t=1){return D(()=>pa(e.mul(t)).mul(e))}};CI.className="swish";re.registerClass(CI);function us(e){return e.getClassName()}function hx(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function cs(e){if(e==null){let t={};return t.className="linear",t.config={},hx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},hx(t)}else return e instanceof Pn?e:hx(e)}function mx(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var _I=class extends re.Serializable{},mp=class extends _I{constructor(e){super();mx(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return D(()=>{let t=vt([1]);return this.hasL1&&(t=Z(t,Te(L(this.l1,Lt(e))))),this.hasL2&&(t=Z(t,Te(L(this.l2,op(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};mp.className="L1L2";re.registerClass(mp);function o4(e){return mx(e),new mp({l1:e!=null?e.l1:null,l2:0})}function l4(e){return mx(e),new mp({l2:e!=null?e.l2:null,l1:0})}var EI={l1l2:"L1L2"};function mt(e){return Eb(e)}function AI(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in EI?EI[e]:e,config:{}};return AI(t)}else return e instanceof _I?e:AI(e)}var fx=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=Ye(e);return this.maxValue!=null&&(n=qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};fx.className="ReLU";re.registerClass(fx);var gx=class extends qe{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Me(e);return qc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};gx.className="LeakyReLU";re.registerClass(gx);var yx=class extends qe{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=wt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=kt(e.alphaRegularizer),this.alphaConstraint=Vt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=ht(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,1]):e))}function FI(e,t){return D(()=>(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,4,1]):e))}function u4(e,t,n,a=1,r="valid",s,i=1){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ue(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=_h(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=nr(o,n)),o})}function $I(e,t,n,a=[1,1],r="valid",s,i,o=null){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=wx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=rs.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ue(l,[0,3,1,2])),l})}function c4(e,t,n,a=[1,1,1],r="valid",s,i){return D(()=>{if(s==null&&(s=_a()),Dt(s),e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=FI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=Jy(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=nr(o,n)),s==="channelsFirst"&&(o=Ue(o,[0,4,1,2,3])),o})}var kx=class extends qe{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",kx.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=uu(t.kernelSize,e,"kernelSize"),this.strides=uu(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Qn(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Dt(this.dataFormat),this.activation=cs(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=wt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Vt(t.biasConstraint),this.biasRegularizer=kt(t.biasRegularizer),this.activityRegularizer=kt(t.activityRegularizer),this.dilationRate=uu(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(er("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Fb(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:us(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},fp=class extends kx{constructor(e,t){super(e,t);this.kernel=null,fp.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=wt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Vt(t.kernelConstraint),this.kernelRegularizer=kt(t.kernelRegularizer)}build(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return D(()=>{e=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=yk(this.activation.getClassName());if(r!=null&&this.rank===2)n=$I(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=u4(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=$I(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=c4(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=ht(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},gp=class extends fp{constructor(e){super(2,e);gp.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Fb(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};gp.className="Conv2D";re.registerClass(gp);var Rm=class extends fp{constructor(e){super(3,e);Rm.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Rm.className="Conv3D";re.registerClass(Rm);var Ix=class extends gp{constructor(e){super(e);if(this.inputSpec=[new Xt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=ht(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Xt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return D(()=>{let n=Me(e);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],c=this.kernelSize[0],u=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=Dm(o,p,c,this.padding),m=Dm(l,d,u,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ue(n,[0,2,3,1]));let g=Eh(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ue(g,[0,3,1,2])),this.bias!=null&&(g=nr(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=ht(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=Dm(t[a],o,s,this.padding),t[r]=Dm(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Ix.className="Conv2DTranspose";re.registerClass(Ix);var DI=class extends fp{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=kt(t.depthwiseRegularizer),this.depthwiseConstraint=Vt(t.depthwiseConstraint),this.pointwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=kt(t.pointwiseRegularizer),this.pointwiseConstraint=Vt(t.pointwiseConstraint)}build(e){if(e=ht(e),e.length{e=Me(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ue(e,[0,2,3,1])),n=Mi(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=nr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ue(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseConstraint),e.pointwiseConstraint=Wt(this.pointwiseConstraint),e}};DI.className="SeparableConv";var Nx=class extends DI{constructor(e){super(2,e)}};Nx.className="SeparableConv2D";re.registerClass(Nx);var Mm=class extends fp{constructor(e){super(1,e);Mm.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Fb(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Mm.className="Conv1D";re.registerClass(Mm);var Tx=class extends qe{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return D(()=>{if(e=Me(e),this.dataFormat==="channelsLast"){let n=cm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return cm(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=cm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return cm(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Tx.className="Cropping2D";re.registerClass(Tx);var Sx=class extends qe{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Fz(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return D(()=>{let n=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ue(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ue(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Sx.className="UpSampling2D";re.registerClass(Sx);function p4(e,t,n=[1,1],a="valid",r,s){return D(()=>{r==null&&(r=_a()),Dt(r);let i=wx(e,r);if(e.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=es(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}var Cx=class extends kx{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=wt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Vt(e.depthwiseConstraint),this.depthwiseRegularizer=kt(e.depthwiseRegularizer)}build(e){if(e=ht(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{e=Me(e);let n=p4(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=nr(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Da(t,this.kernelSize[0],this.padding,this.strides[0]),s=Da(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseRegularizer),e}};Cx.className="DepthwiseConv2D";re.registerClass(Cx);function RI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function MI(e,t,n,a=!1,r,s,i=!1,o=!1){return D(()=>{let l=t.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let c=[1,0].concat(Aa(2,l));if(t=Ue(t,c),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=Fn(r,-1)),r=Ue(r,c)),a&&(t=Rn(t,0),r!=null&&(r=Rn(r,0)));let u=[],p,d=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let y=0;ye(b,d));if(r==null)p=v[0],d=v[1];else{let x=D(()=>{let N=f[y],T=Dn(N).sub(N),C=v[0].mul(N).add(d[0].mul(T)),$=d.map((F,O)=>v[1][O].mul(N).add(F.mul(T)));return{output:C,newStates:$}});p=x.output,d=x.newStates}o&&u.push(p)}let g;return o&&(g=$t(u,1)),[p,g,d]})}var ar=class extends qe{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Pm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Xt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Aa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Zb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return D(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Xt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_=[vt([n,this.cell.stateSize])];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_[0]=vt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let a=0;ajt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=RI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Xt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Fa){let o=[e].concat(s),l=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=l;let u=super.apply(o,t);return this.inputSpec=c,u}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Me(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new z(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=MI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],c=o[1],u=o[2];this.stateful&&this.resetStates(u,a);let p=this.returnSequences?c:l;return this.returnState?[p].concat(u):p})}getInitialState(e){return D(()=>{let t=vt(e.shape);return t=Te(t,[1,2]),t=ip(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ob(t,[1,n]):t):this.cell.stateSize>1?[Ob(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===ar.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=$a(a,n);return new e(Object.assign(t,{cell:r}))}};ar.className="RNN";re.registerClass(ar);var up=class extends qe{},Om=class extends up{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ru([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ru([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0Dn(e),rate:this.dropout,training:a})),0Dn(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=tr(L(e,s),this.kernel.read()):r=tr(e,this.kernel.read()),this.bias!=null&&(r=nr(r,this.bias.read())),i!=null&&(n=L(n,i));let o=Z(r,tr(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),recurrentConstraint:Wt(this.recurrentConstraint),biasConstraint:Wt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Om.className="SimpleRNNCell";re.registerClass(Om);var _x=class extends ar{constructor(e){e.cell=new Om(e),super(e)}call(e,t){return D(()=>{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};_x.className="SimpleRNN";re.registerClass(_x);var Lm=class extends up{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=cs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ru([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ru([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0Dn(e),rate:this.dropout,training:n,count:3})),0Dn(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Ex.className="GRU";re.registerClass(Ex);var yp=class extends up{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=cs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ru([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ru([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=ht(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends fa{apply(i,o){let l=r.apply([s]),c=new dm().apply([s]),u=r.apply([s*2]);return Ck(Ck(l,c),u)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0Dn(e),rate:this.dropout,training:n,count:4})),0Dn(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,c,u;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Ax.className="LSTM";re.registerClass(Ax);var Pm=class extends up{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return D(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Wi(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push($a(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Jb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sEk(t(),n),i=()=>lp(s,t,a);return!r||r<=1?jt(i().clone()):Array(r).fill(void 0).map(i).map(o=>jt(o.clone()))}var d4=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return D(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=vt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_=[vt(r)];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_[0]=vt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let s=0;sjt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],c=e[o?4:3],u=Da(l,a[0],r,s[0],i[0]),p=Da(c,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,u,p]:[u,p,n]]}};PI.className="ConvRNN2D";var zm=class extends yp{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=uu(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=uu(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",Qn(this.padding),this.dataFormat=s||"channelsLast",Dt(this.dataFormat),this.dilationRate=uu(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=ht(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;o=new(t=class extends fa{apply(u,p){let d=l.apply([c]),h=Za([c]),m=l.apply([c*2]);return zb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return D(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0Dn(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(J,se,Q)=>!se||!se[Q]?J:L(se[Q],J),c=l(a,o,0),u=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0Dn(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[v,x,N,T]=Mn(this.kernel.read(),i,b),[C,$,F,O]=this.useBias?Mn(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,v,C,this.padding),u=this.inputConv(u,x,$,this.padding),p=this.inputConv(p,N,F,this.padding),d=this.inputConv(d,T,O,this.padding);let[B,W,G,q]=Mn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,B),f=this.recurrentConv(f,W),g=this.recurrentConv(g,G),y=this.recurrentConv(y,q);let H=this.recurrentActivation.apply(Z(c,m)),K=this.recurrentActivation.apply(Z(u,f)),X=Z(L(K,s),L(H,this.activation.apply(Z(p,g)))),ne=L(this.recurrentActivation.apply(Z(d,y)),this.activation.apply(X));return[ne,ne,X]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=d4(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?nr(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};zm.className="ConvLSTM2DCell";re.registerClass(zm);var Fx=class extends PI{constructor(e){let t=new zm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Fx.className="ConvLSTM2D";re.registerClass(Fx);var Bm=class extends qe{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);if(0Ek(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Bm.className="Dropout";re.registerClass(Bm);var $x=class extends Bm{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};$x.className="SpatialDropout1D";re.registerClass($x);var Dx=class extends qe{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Vt(e.kernelConstraint),this.biasConstraint=Vt(e.biasConstraint),this.kernelRegularizer=kt(e.kernelRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=ht(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=ht(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=yk(this.activation.getClassName()),r;return a!=null?r=tr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=tr(n,this.kernel.read()),this.bias!=null&&(r=nr(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Dx.className="Dense";re.registerClass(Dx);var Rx=class extends qe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ht(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],is(e,1)]}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:us(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Mx.className="Activation";re.registerClass(Mx);var Px=class extends qe{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return D(()=>(e=Me(e),Mz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Px.className="RepeatVector";re.registerClass(Px);var Ox=class extends qe{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Ox.className="Reshape";re.registerClass(Ox);var Lx=class extends qe{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Aa(1,e.dims.length+1);if(!k.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Xt({ndim:this.dims.length+1})]}computeOutputShape(e){e=ht(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ue(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Lx.className="Permute";re.registerClass(Lx);var zx=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Me(e),a=-1;return Wc(Ri(n,this.maskValue),a)}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=Wc(Ri(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};zx.className="Masking";re.registerClass(zx);var Bx=class extends qe{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(bt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=wt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=kt(e.embeddingsRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.embeddingsConstraint=Vt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return D(()=>this.maskZero?(e=Me(e),Ri(e,Ge(e))):null)}computeOutputShape(e){if(e=ht(e),this.inputLength==null)return[...e,this.outputDim];let t=bt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);return n.dtype!=="int32"&&(n=sp(n,"int32")),_k(this.embeddings.read(),n.as1D()).reshape(ht(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Wt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Bx.className="Embedding";re.registerClass(Bx);var ji=class extends qe{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&ss(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return D(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=os(a);for(let s of e){let i=s.rank;for(let o=0;o1){let c=Aa(1,l).concat([0]);n.push(Ue(o,c)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,c=o[l-1],u=[c].concat(o.slice(0,o.length-1));s=Ue(s.reshape([-1,c]),[1,0]).reshape(u)}else if(i>1){let o=[i-1].concat(Aa(0,i-1));s=Ue(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Fn(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return D(()=>zb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return D(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(k.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),k.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return D(()=>{let i;if(a>r){i=a-r;let l=[];for(let c=0;ca){i=r-a;let l=[];for(let c=0;c0){let l;a>r?l=a+r-3:l=a-1;let c=[];for(let u=l;u"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new z(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>bp(r,e[s].shape.length)):a=[bp(this.axes,t.shape.length),bp(this.axes,n.shape.length)],this.normalize&&(t=Nm(t,a[0]),n=Nm(n,a[1])),h4(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[bp(this.axes,e.length),bp(this.axes,t.length)],n}computeOutputShape(e){k.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};qx.className="Dot";re.registerClass(qx);var Kx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return lp(()=>pm(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};Kx.className="GaussianNoise";re.registerClass(Kx);var Xx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return this.rate>0&&this.rate<1?lp(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(pm(n.shape,1,a))},()=>n,t.training||!1):n})}};Xx.className="GaussianDropout";re.registerClass(Xx);var Yx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return lp(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=ns(Jl(n),this.rate);o=sp(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,c=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(c)},()=>Me(e),t.training||!1)}return e})}};Yx.className="AlphaDropout";re.registerClass(Yx);function xp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=p1(e,t,n,a,r,s);else if(e.rank===3)i=d1(e,t,n,a,r,s);else if(e.rank===4)i=h1(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function m4(e,t,n,a,r=.001){return D(()=>{let s=Lh(e,a),i=s.mean,o=s.variance;return[xp(e,i,o,n,t,r),i,o]})}function f4(e,t,n,a,r=.001){return D(()=>{let s=Lh(e,a),i=s.mean,o=s.variance,l=[];for(let h of Aa(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let c=i.reshape(l),u=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[xp(e,c,u,d,p,r),i,o]})}function g4(e,t,n,a,r=.001){return k.arraysEqual(a.slice().sort(),Aa(0,e.rank-1))?m4(e,t,n,a,r):f4(e,t,n,a,r)}var Zx=class extends qe{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.movingMeanInitializer=wt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=wt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Vt(e.betaConstraint),this.gammaConstraint=Vt(e.gammaConstraint),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer)}build(e){e=ht(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Xt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training,a=Me(e),r=a.shape,s=r.length,i=Aa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=Li(1,s);l[o]=r[o];let c=i.slice();c.sort();let u=!k.arraysEqual(c,Aa(0,s).slice(0,s-1)),p=()=>{if(u){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,v=this.scale?this.gamma.read().reshape(l):null;return xp(a,g,y,b,v,this.epsilon)}else return xp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=g4(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{D(()=>{let v=1-b,x=g.read(),N=x.sub(y).mul(v);g.write(x.sub(N))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Wt(this.betaConstraint),gammaConstraint:Wt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Zx.className="BatchNormalization";re.registerClass(Zx);var Jx=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=ht(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==ss(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Me(e),a=n.shape,r=a.length;return D(()=>{let s=!0,{mean:i,variance:o}=Lh(n,this.axis,s),l=Li(1,r);for(let m of this.axis)l[m]=a[m];let c=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,u=c(this.gamma.read()),p=c(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=_a()),n!=="channelsLast"&&n!=="channelsFirst")throw new z(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],Jn(e,a)})}var Qx=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?_a():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return D(()=>y4(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Qx.className="ZeroPadding2D";re.registerClass(Qx);function Wm(e,t,n,a,r,s){return D(()=>{Dt(r),wk(s),Qn(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=_a()),s==null&&(s="max"),e=wx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Ft(e,t,n,o):i=Yn(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}function OI(e,t,n,a,r,s){return D(()=>{Dt(r),wk(s),Qn(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=_a()),s==null&&(s="max"),e=FI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=ub(e,t,n,o):i=Xy(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,4,1,2,3])),i})}var LI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Qn(this.padding),this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){e=ht(e);let t=Da(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return D(()=>{this.invokeCallHook(e,t),e=ip(Me(e),2);let n=this.poolingFunction(Me(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return as(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},ev=class extends LI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Wm(e,t,n,a,r,"max")}};ev.className="MaxPooling1D";re.registerClass(ev);var tv=class extends LI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Wm(e,t,n,a,r,"avg")}};tv.className="AveragePooling1D";re.registerClass(tv);var zI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Qn(this.padding),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},nv=class extends zI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Wm(e,t,n,a,r,"max")}};nv.className="MaxPooling2D";re.registerClass(nv);var av=class extends zI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Wm(e,t,n,a,r,"avg")}};av.className="AveragePooling2D";re.registerClass(av);var BI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Qn(this.padding),this.inputSpec=[new Xt({ndim:5})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Da(t,this.poolSize[0],this.padding,this.strides[0]),n=Da(n,this.poolSize[1],this.padding,this.strides[1]),a=Da(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},rv=class extends BI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),OI(e,t,n,a,r,"max")}};rv.className="MaxPooling3D";re.registerClass(rv);var sv=class extends BI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),OI(e,t,n,a,r,"avg")}};sv.className="AveragePooling3D";re.registerClass(sv);var WI=class extends qe{constructor(e){super(e);this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},iv=class extends WI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return St(n,1)})}};iv.className="GlobalAveragePooling1D";re.registerClass(iv);var ov=class extends WI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return Zn(n,1)})}};ov.className="GlobalMaxPooling1D";re.registerClass(ov);var VI=class extends qe{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},lv=class extends VI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?St(n,[1,2]):St(n,[2,3])})}};lv.className="GlobalAveragePooling2D";re.registerClass(lv);var uv=class extends VI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?Zn(n,[1,2]):Zn(n,[2,3])})}};uv.className="GlobalMaxPooling2D";re.registerClass(uv);var UI=class extends qe{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=$a(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},cv=class extends UI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=ht(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=ht(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return D(()=>(e=Me(e),MI((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};cv.className="TimeDistributed";re.registerClass(cv);function b4(e){Bi(Az,"BidirectionalMergeMode",e)}var x4="concat",pv=class extends UI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=$a(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=$a(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?x4:e.mergeMode,b4(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):In(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=RI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let c=n.map(u=>new Xt({shape:u.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),i.push(...c)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Fa;for(let l of s)if(l instanceof Fa!==o)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),c=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=c;let p=super.apply(l,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Rn(r,1));let i;return this.mergeMode==="concat"?i=zb([a,r]):this.mergeMode==="sum"?i=Z(a,r):this.mergeMode==="ave"?i=L(.5,Z(a,r)):this.mergeMode==="mul"?i=L(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Wi(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Wi(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=$a(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};pv.className="Bidirectional";re.registerClass(pv);function jz(e){return new su(e)}function qz(e){return new bx(e)}function Kz(e){return new fx(e)}function Xz(e){return new gx(e)}function Yz(e){return new yx(e)}function Zz(e){return new vx(e)}function Jz(e){return new xx(e)}function Qz(e){return new Mm(e)}function eB(e){return new gp(e)}function tB(e){return new Ix(e)}function nB(e){return new Rm(e)}function aB(e){return new Nx(e)}function rB(e){return new Tx(e)}function sB(e){return new Sx(e)}function iB(e){return new Cx(e)}function oB(e){return new Mx(e)}function lB(e){return new Dx(e)}function uB(e){return new Bm(e)}function cB(e){return new $x(e)}function pB(e){return new Rx(e)}function dB(e){return new Px(e)}function hB(e){return new Ox(e)}function mB(e){return new Lx(e)}function fB(e){return new Bx(e)}function gB(e){return new Wx(e)}function yB(e){return new Ux(e)}function bB(e){return new jx(e)}function xB(e){return new Gx(e)}function vB(e){return new Hx(e)}function wB(e){return new Vx(e)}function kB(e){return new qx(e)}function IB(e){return new Zx(e)}function NB(e){return new Jx(e)}function TB(e){return new Qx(e)}function Kb(e){return new tv(e)}function SB(e){return Kb(e)}function CB(e){return Kb(e)}function Xb(e){return new av(e)}function _B(e){return Xb(e)}function EB(e){return Xb(e)}function Yb(e){return new sv(e)}function AB(e){return Yb(e)}function FB(e){return Yb(e)}function $B(e){return new iv(e)}function DB(e){return new lv(e)}function Rk(e){return new ov(e)}function Mk(e){return new uv(e)}function Pk(e){return new ev(e)}function Ok(e){return new nv(e)}function RB(e){return new rv(e)}function MB(e){return new Ex(e)}function PB(e){return new Lm(e)}function OB(e){return new Ax(e)}function LB(e){return new yp(e)}function zB(e){return new _x(e)}function BB(e){return new Om(e)}function WB(e){return new Fx(e)}function VB(e){return new zm(e)}function UB(e){return new ar(e)}function GB(e){return new Pm(e)}function HB(e){return new pv(e)}function jB(e){return new cv(e)}var qB=Rk,KB=Mk,XB=Pk,YB=Ok;function ZB(e){return new Kx(e)}function JB(e){return new Xx(e)}function QB(e){return new Yx(e)}function eW(e){return new zx(e)}var GI={};Oe(GI,{MAPE:()=>A4,MSE:()=>D4,binaryAccuracy:()=>v4,binaryCrossentropy:()=>w4,categoricalAccuracy:()=>I4,categoricalCrossentropy:()=>N4,cosineProximity:()=>C4,mape:()=>F4,meanAbsoluteError:()=>_4,meanAbsolutePercentageError:()=>E4,meanSquaredError:()=>$4,mse:()=>R4,precision:()=>T4,recall:()=>S4,sparseCategoricalAccuracy:()=>k4});function v4(e,t){return nx(e,t)}function w4(e,t){return Jk(e,t)}function k4(e,t){return Qk(e,t)}function I4(e,t){return ax(e,t)}function N4(e,t){return rx(e,t)}function T4(e,t){return Zk(e,t)}function S4(e,t){return xW(e,t)}function C4(e,t){return ex(e,t)}function _4(e,t){return Tm(e,t)}function E4(e,t){return ou(e,t)}function A4(e,t){return ou(e,t)}function F4(e,t){return ou(e,t)}function $4(e,t){return Ui(e,t)}function D4(e,t){return Ui(e,t)}function R4(e,t){return Ui(e,t)}var HI={};Oe(HI,{modelFromJSON:()=>QW});var jI={};Oe(jI,{l1:()=>P4,l1l2:()=>M4,l2:()=>O4});function M4(e){return new mp(e)}function P4(e){return o4(e)}function O4(e){return l4(e)}var qI=class extends iu{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof Nr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Vm(e,t){return et}var XI=class extends qI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Vm:this.mode==="max"?this.monitorFunc=KI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=KI:this.monitorFunc=Vm,this.monitorFunc===Vm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Vm?Infinity:-Infinity}async onEpochEnd(e,t){await ls(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function L4(e){return new XI(e)}var z4={earlyStopping:L4},Ra;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Ra||(Ra={}));var YI;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(YI||(YI={}));var dv={};function B4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};dv[e]=n}function ZI(e){return dv[e]}function W4(e){delete dv[e]}function I(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return Tn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>Tn(p,n,a,r));let c=Tn(t.inputNames.slice(o)[0],n,a,r),u=c.dataSync();return s.type==="number"?u[0]:k.toNestedArray(c.shape,u)}let i=t.attrParams[e];return i&&i.value}function Tn(e,t,n,a){let[r,s]=On(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Um(r,o)]);return i!==void 0?t[Um(r,i)][s]:void 0}function V4(e,t,n){return t[Um(e,n.currentContextId)]}function Tr(e,t){let[n,a]=On(e);return[Um(n,t&&t.currentContextId),a]}function Um(e,t){return t?`${e}-${t}`:e}function On(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function Gm(e,t,n){let a=I("pad",e,t,n);if(a==="explicit"){a=I("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Sr(e){return e.kept?e:Yr(e)}var JI={};Oe(JI,{json:()=>U4});var U4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],QI={};Oe(QI,{json:()=>G4});var G4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],eN={};Oe(eN,{json:()=>H4});var H4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],tN={};Oe(tN,{json:()=>j4});var j4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],nN={};Oe(nN,{json:()=>q4});var q4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],aN={};Oe(aN,{json:()=>K4});var K4=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],rN={};Oe(rN,{json:()=>X4});var X4=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],sN={};Oe(sN,{json:()=>Y4});var Y4=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],iN={};Oe(iN,{json:()=>Z4});var Z4=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],oN={};Oe(oN,{json:()=>J4});var J4=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],lN={};Oe(lN,{json:()=>Q4});var Q4=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],uN={};Oe(uN,{json:()=>eV});var eV=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],cN={};Oe(cN,{json:()=>tV});var tV=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],pN={};Oe(pN,{json:()=>nV});var nV=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],dN={};Oe(dN,{json:()=>aV});var aV=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],hN={};Oe(hN,{json:()=>rV});var rV=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],mN={};Oe(mN,{json:()=>sV});var sV=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],gN=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[JI,QI,eN,tN,nN,aN,rN,lN,oN,sN,uN,cN,pN,dN,hN,mN,iN],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],c={},u={};t!=null&&(c=this.mapSignatureEntries(t.inputs),u=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=Tr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(u).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(u).forEach(m=>{let[f]=Tr(m),g=i[f];g!=null&&(g.signatureKey=u[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{let[f]=Tr(m),g=i[f];g&&(g.signatureKey=c[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=ZI(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=hv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=hv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=wv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=wv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=fv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=fv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=vv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=mv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=mv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Iv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=xv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=xv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=kv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=kv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=yv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=yv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=bv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=bv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=fN(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=fN(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((c,u)=>(c[u.name]=this.mapNode(u),u.op==="Const"&&a.push(c[u.name]),c),{}));let s=[],i=[];e.signature.inputArg.forEach(c=>{let[u]=Tr(c.name),p={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:gv(c.type),type:"dtype"}},children:[]};p.signatureKey=c.name,s.push(p),r[u]=p}),Object.keys(r).forEach(c=>{let u=r[c];u.inputNames.forEach(p=>{let[d]=Tr(p);u.inputs.push(r[d]),r[d].children.push(u)})});let o=e.ret;e.signature.outputArg.forEach(c=>{let[u,p]=Tr(o[c.name]),d=r[u];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function iV(e){let t=ee().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function yN(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):iV(e);return t?n:n.toLowerCase()}function hv(e,t,n,a=!1){let r=e[t];return r!=null?yN(r.s,a):n}function mv(e,t,n){let a=e[t];return a?a.b:n}function fv(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function gv(e){switch(typeof e=="string"&&(e=Ra[e]),e){case Ra.DT_FLOAT:return"float32";case Ra.DT_INT32:case Ra.DT_INT64:case Ra.DT_INT8:case Ra.DT_UINT8:return"int32";case Ra.DT_BOOL:return"bool";case Ra.DT_DOUBLE:return"float32";case Ra.DT_STRING:return"string";default:return null}}function fN(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function yv(e,t,n){let a=e[t];return a&&a.type?gv(a.type):n}function bv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>gv(r)):n}function bN(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function xv(e,t,n){let a=e[t];return a&&a.shape?bN(a.shape):n}function vv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function wv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>yN(s,a)):n}function kv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>bN(r)):n}function Iv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var oV=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return Tn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Tn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return fv(this.node.rawAttrs,e,t);if(n.s!=null)return hv(this.node.rawAttrs,e,t);if(n.b!=null)return mv(this.node.rawAttrs,e,t);if(n.shape!=null)return xv(this.node.rawAttrs,e,t);if(n.type!=null)return yv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return vv(this.node.rawAttrs,e,t);if(n.list.s!=null)return wv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return kv(this.node.rawAttrs,e,t);if(n.list.b!=null)return Iv(this.node.rawAttrs,e,t);if(n.list.type!=null)return bv(this.node.rawAttrs,e,t)}return t}},lV=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[Z(I("a",e,t,n),I("b",e,t,n))];case"AddN":return[o1(I("tensors",e,t,n))];case"FloorMod":case"Mod":return[pb(I("a",e,t,n),I("b",e,t,n))];case"Mul":return[L(I("a",e,t,n),I("b",e,t,n))];case"RealDiv":case"Div":return[ve(I("a",e,t,n),I("b",e,t,n))];case"DivNoNan":return[tb(I("a",e,t,n),I("b",e,t,n))];case"FloorDiv":return[Th(I("a",e,t,n),I("b",e,t,n))];case"Sub":return[fe(I("a",e,t,n),I("b",e,t,n))];case"Minimum":return[Zl(I("a",e,t,n),I("b",e,t,n))];case"Maximum":return[Ya(I("a",e,t,n),I("b",e,t,n))];case"Pow":return[xr(I("a",e,t,n),I("b",e,t,n))];case"SquaredDifference":return[Kh(I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},uV=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lt(I("x",e,t,n))];case"Acos":return[zy(I("x",e,t,n))];case"Acosh":return[By(I("x",e,t,n))];case"Asin":return[Vy(I("x",e,t,n))];case"Asinh":return[Uy(I("x",e,t,n))];case"Atan":return[Gy(I("x",e,t,n))];case"Atan2":return[Hy(I("x",e,t,n),I("y",e,t,n))];case"Atanh":return[jy(I("x",e,t,n))];case"Ceil":return[Yy(I("x",e,t,n))];case"Complex":return[qr(I("real",e,t,n),I("imag",e,t,n))];case"Cos":return[jc(I("x",e,t,n))];case"Cosh":return[Ah(I("x",e,t,n))];case"Elu":return[ql(I("x",e,t,n))];case"Erf":return[nb(I("x",e,t,n))];case"Exp":return[dn(I("x",e,t,n))];case"Expm1":return[ab(I("x",e,t,n))];case"Floor":return[Kl(I("x",e,t,n))];case"Log":return[$n(I("x",e,t,n))];case"Log1p":return[Rh(I("x",e,t,n))];case"Imag":return[$h(I("x",e,t,n))];case"Neg":return[Tt(I("x",e,t,n))];case"Reciprocal":return[mb(I("x",e,t,n))];case"Real":return[Zc(I("x",e,t,n))];case"Relu":return[Ye(I("x",e,t,n))];case"Round":return[fb(I("x",e,t,n))];case"Selu":return[Uh(I("x",e,t,n))];case"Sigmoid":return[pa(I("x",e,t,n))];case"Sin":return[Gh(I("x",e,t,n))];case"Sign":return[gb(I("x",e,t,n))];case"Sinh":return[Hh(I("x",e,t,n))];case"Softplus":return[Xl(I("x",e,t,n))];case"Sqrt":return[tn(I("x",e,t,n))];case"Square":return[ut(I("x",e,t,n))];case"Tanh":return[jl(I("x",e,t,n))];case"Tan":return[xb(I("x",e,t,n))];case"ClipByValue":return[qt(I("x",e,t,n),I("clipValueMin",e,t,n),I("clipValueMax",e,t,n))];case"Relu6":return[Wh(I("x",e,t,n))];case"Rsqrt":return[Vh(Tn(e.inputNames[0],t,n))];case"Prod":return[zh(I("x",e,t,n),I("axes",e,t,n))];case"LeakyRelu":return[qc(I("x",e,t,n),I("alpha",e,t,n))];case"Prelu":return[Yc(I("x",e,t,n),I("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ya(e,t,n=""){k.assert(cV(e,t),()=>n+` Shapes ${e} and ${t} must match`)}function cV(e,t){if(e.length!==t.length)return!1;for(let n=0;n{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ya(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,dt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let c={};for(let h of Object.keys(fa))c[h]=fa[h];for(let h of Object.keys(n))c[h]=n[h];let u=s.config;u.customObjects=c;let p=Object.assign({},fa);for(let h of Object.keys(n))fa[h]=n[h];Db(s.config);let d=l(o,s.config,n,r);return fa=Object.assign({},p),d}else{let c=Object.assign({},fa);for(let p of Object.keys(n))fa[p]=n[p];let u=new o(s.config);return fa=Object.assign({},c),u}}}function mz(e,t){return et?1:0}function dm(e,t){return-1*mz(e,t)}function ss(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function fz(e){if(e==null)throw new z(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Vi(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new z(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Rb(e,t,n=0,a=Infinity){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Kt(e,t){Array.isArray(e)?(k.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Kt(n,`element ${a+1} of ${t}`))):k.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${wk(e)}.`)}function wk(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>wk(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function gz(e,t){let n=k.now(),a;return(...r)=>{let s=k.now();return s-ntn(Te(L(e,e),t,!0)))}var ap=class extends re.Serializable{getConfig(){return{}}},Pb=class extends ap{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=Mb(e,this.axis),n=qt(t,0,this.maxValue);return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Pb.className="MaxNorm";re.registerClass(Pb);var Ob=class extends ap{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>ve(e,Z(Bt(),Mb(e,this.axis))))}getConfig(){return{axis:this.axis}}};Ob.className="UnitNorm";re.registerClass(Ob);var Lb=class extends ap{apply(e){return Ye(e)}};Lb.className="NonNeg";re.registerClass(Lb);var zb=class extends ap{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return D(()=>{let t=Mb(e,this.axis),n=Z(L(this.rate,qt(t,this.minValue,this.maxValue)),L(1-this.rate,t));return L(e,ve(n,Z(Bt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};zb.className="MinMaxNorm";re.registerClass(zb);var Ik={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Wt(e){return $b(e)}function Nk(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"constraint")}function Vt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Ik?Ik[e]:e,config:{}};return Nk(t)}else return e instanceof ap?e:Nk(e)}function uz(e){return new Pb(e)}function cz(e){return new Ob(e)}function pz(){return new Lb}function dz(e){return new zb(e)}var Tk={};Oe(Tk,{constant:()=>xz,glorotNormal:()=>Sz,glorotUniform:()=>Tz,heNormal:()=>Cz,heUniform:()=>_z,identity:()=>Iz,leCunNormal:()=>Ez,leCunUniform:()=>Az,ones:()=>bz,orthogonal:()=>Fz,randomNormal:()=>wz,randomUniform:()=>vz,truncatedNormal:()=>kz,varianceScaling:()=>Nz,zeros:()=>yz});var $z=["channelsFirst","channelsLast"],Dz=["nearest","bilinear"],Rz=["valid","same","causal"],Mz=["max","avg"],Pz=["sum","mul","concat","ave"],au=new Map;function Dt(e){Vi($z,"DataFormat",e)}function Oz(e){Vi(Dz,"InterpolationFormat",e)}function Qn(e){Vi(Rz,"PaddingMode",e)}function Sk(e){Vi(Mz,"PoolMode",e)}var rp=[],Ck="/";function Ui(e,t){rp.push(e);try{let n=t();return rp.pop(),n}catch(n){throw rp.pop(),n}}function Lz(){return rp.length===0?"":rp.join(Ck)+Ck}function Ek(e){if(!_k(e))throw new Error("Not a valid tensor name: '"+e+"'");return Lz()+e}function Ak(e){if(!_k(e))throw new Error("Not a valid tensor name: '"+e+"'");au.has(e)||au.set(e,0);let t=au.get(e);if(au.set(e,au.get(e)+1),t>0){let n=`${e}_${t}`;return au.set(n,1),n}else return e}var zz=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function _k(e){return!!e.match(zz)}function Bz(e){return e===parseInt(e.toString(),10)}function is(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;r{if(e.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=ip(e,1);return Bb(n,[1,t,1])})}function Vz(e){let t=[is(e.shape)];return e.reshape(t)}function Uz(e){if(e.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],is(e.shape,1)];return e.reshape(t)}function Gi(e,t,n){return D(()=>{switch(e.rank){case 1:return Xh(e,t,n);case 2:return vb(e,[t,0],[n,e.shape[1]]);case 3:return Ql(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Jc(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return We(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return We(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Wb(e,t,n){return D(()=>{switch(e.rank){case 1:return Xh(e,t,n);case 2:return vb(e,[0,t],[e.shape[0],n]);case 3:return Ql(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Jc(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function hm(e,t,n,a){return D(()=>{switch(e.rank){case 1:return Xh(e,t,n);case 2:switch(a){case 1:return Gi(e,t,n);case 2:return Wb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Gi(e,t,n);case 2:return Ql(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return Wb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Gi(e,t,n);case 2:return Jc(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Jc(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return Wb(e,t,n);default:throw new z(`The axis is not within the rank of the tensor ${a}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Vb(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Qe(e,t)}function $k(e,t){switch(e.rank){case 1:return v1([e,t]);case 2:return w1([e,t],0);case 3:return k1([e,t],0);case 4:return I1([e,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Bb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Xa(e,t)}function mm(e,t=0,n=1,a,r){return B1(e,t,n,a,r)}function nr(e,t,n,a){if(e.rank<2||t.rank<2)throw new $e(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new $e(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){let r=!1,s=!1;return rs.matMul({a:e,b:t,transposeA:r,transposeB:s,bias:a?Ub(e.rank,a,Ea()):null,activation:n})}else{let r=e.shape.slice(),s=r.pop();e=e.reshape([-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),c=[...i,o],u=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(u).reshape([l,-1]);let p=[...r,...c],d=!1,h=!1;return rs.matMul({a:e,b:t,transposeA:d,transposeB:h,bias:a?Ub(e.rank,a,Ea()):null,activation:n}).reshape(p)}}function Dk(e,t,n){return D(()=>(Array.isArray(t)?t=nt(t,"int32"):t=t.toInt(),Di(e,t,n)))}function op(e){return L(e,e)}function Ub(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1,1]):t.reshape([1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1,1]):t.reshape([1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,1,a[0]]):t.reshape([1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?t.reshape([1,a[0],1]):t.reshape([1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?t.reshape([1,1,a[0]]):t.reshape([1].concat(a))}else if(e<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function ar(e,t,n){return D(()=>(n==null&&(n=Ea()),Dt(n),e.add(Ub(e.rank,t,n))))}function Gz(e,t=1){if(t!==1)throw new $e(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return ql(e)}function Hz(e){return D(()=>ve(e,Lt(e).add(1)))}function Rk(e,t,n,a){return D(()=>q1(e,t,n,a))}function jz(e){return D(()=>{let t=Z(.5,L(.2,e));return qt(t,0,1)})}function lp(e,t,n=!1){return n?e():t()}var qz=["fanIn","fanOut","fanAvg"],Kz=["normal","uniform","truncatedNormal"];function Xz(e){Vi(qz,"FanMode",e)}function Yz(e){Vi(Kz,"Distribution",e)}var ga=class extends re.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Gb=class extends ga{apply(e,t){return vt(e,t)}};Gb.className="Zeros";re.registerClass(Gb);var fm=class extends ga{apply(e,t){return Ja(e,t)}};fm.className="Ones";re.registerClass(fm);var Hb=class extends ga{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return D(()=>L(de(this.value),Ja(e,t)))}getConfig(){return{value:this.value}}};Hb.className="Constant";re.registerClass(Hb);var jb=class extends ga{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Jl(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};jb.className="RandomUniform";re.registerClass(jb);var qb=class extends ga{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`randomNormal does not support dType ${t}.`);return mm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};qb.className="RandomNormal";re.registerClass(qb);var Kb=class extends ga{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`truncatedNormal does not support dType ${t}.`);return Jh(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Kb.className="TruncatedNormal";re.registerClass(Kb);var Xb=class extends ga{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return D(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return L(this.gain,ob(e[0]))})}getConfig(){return{gain:this.gain}}};Xb.className="Identity";re.registerClass(Xb);function Zz(e,t="channelsLast"){let n,a;if(Dt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=is(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=is(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=is(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Nn=class extends ga{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Xz(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,Yz(this.distribution),this.seed=e.seed}apply(e,t){let n=Zz(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new $e(`${this.getClassName()} does not support dType ${t}.`);return Jh(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Jl(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Nn.className="VarianceScaling";re.registerClass(Nn);var gm=class extends Nn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};gm.className="GlorotUniform";re.registerClass(gm);var ym=class extends Nn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};ym.className="GlorotNormal";re.registerClass(ym);var bm=class extends Nn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};bm.className="HeNormal";re.registerClass(bm);var xm=class extends Nn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};xm.className="HeUniform";re.registerClass(xm);var vm=class extends Nn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};vm.className="LeCunNormal";re.registerClass(vm);var wm=class extends Nn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Nn.className}};wm.className="LeCunNormal";re.registerClass(wm);var Yb=class extends ga{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new $e("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return D(()=>{if(e.length<2)throw new $e("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=mm(n,0,1,"float32"),r=ik.gramSchmidt(a);return e[0]>e[1]&&(r=r.transpose()),L(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Yb.className="Orthogonal";re.registerClass(Yb);var Mk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Pk(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return $b(e)}function wt(e){if(typeof e=="string"){let t=e in Mk?Mk[e]:e;if(t==="GlorotNormal")return new ym;if(t==="GlorotUniform")return new gm;if(t==="HeNormal")return new bm;if(t==="HeUniform")return new xm;if(t==="LeCunNormal")return new vm;if(t==="LeCunUniform")return new wm;{let n={};return n.className=t,n.config={},Pk(n)}}else return e instanceof ga?e:Pk(e)}function yz(){return new Gb}function bz(){return new fm}function xz(e){return new Hb(e)}function vz(e){return new jb(e)}function wz(e){return new qb(e)}function kz(e){return new Kb(e)}function Iz(e){return new Xb(e)}function Nz(e){return new Nn(e)}function Tz(e){return new gm(e)}function Sz(e){return new ym(e)}function Cz(e){return new bm(e)}function _z(e){return new xm(e)}function Ez(e){return new vm(e)}function Az(e){return new wm(e)}function Fz(e){return new Yb(e)}var Ok={};Oe(Ok,{Layer:()=>qe,RNN:()=>rr,RNNCell:()=>up,activation:()=>hB,add:()=>kB,alphaDropout:()=>sW,average:()=>IB,averagePooling1d:()=>Zb,averagePooling2d:()=>Jb,averagePooling3d:()=>Qb,avgPool1d:()=>$B,avgPool2d:()=>RB,avgPool3d:()=>PB,avgPooling1d:()=>DB,avgPooling2d:()=>MB,avgPooling3d:()=>OB,batchNormalization:()=>EB,bidirectional:()=>ZB,concatenate:()=>NB,conv1d:()=>sB,conv2d:()=>iB,conv2dTranspose:()=>oB,conv3d:()=>lB,convLstm2d:()=>qB,convLstm2dCell:()=>KB,cropping2D:()=>cB,dense:()=>mB,depthwiseConv2d:()=>dB,dot:()=>_B,dropout:()=>fB,elu:()=>Qz,embedding:()=>wB,flatten:()=>yB,gaussianDropout:()=>rW,gaussianNoise:()=>aW,globalAveragePooling1d:()=>LB,globalAveragePooling2d:()=>zB,globalMaxPool1d:()=>QB,globalMaxPool2d:()=>eW,globalMaxPooling1d:()=>zk,globalMaxPooling2d:()=>Bk,gru:()=>WB,gruCell:()=>VB,input:()=>Lk,inputLayer:()=>Jz,layerNormalization:()=>AB,leakyReLU:()=>tB,lstm:()=>UB,lstmCell:()=>GB,masking:()=>iW,maxPool1d:()=>tW,maxPool2d:()=>nW,maxPooling1d:()=>Wk,maxPooling2d:()=>Vk,maxPooling3d:()=>BB,maximum:()=>TB,minimum:()=>SB,multiply:()=>CB,permute:()=>vB,prelu:()=>nB,reLU:()=>eB,repeatVector:()=>bB,reshape:()=>xB,rnn:()=>XB,separableConv2d:()=>uB,simpleRNN:()=>HB,simpleRNNCell:()=>jB,softmax:()=>aB,spatialDropout1d:()=>gB,stackedRNNCells:()=>YB,thresholdedReLU:()=>rB,timeDistributed:()=>JB,upSampling2d:()=>pB,zeroPadding2d:()=>FB});var oW=0;function Uk(){return oW++}var km={};function Im(e=""){return e in km||(km[e]=0),km[e]+=1,e+km[e].toString()}function ex(e){return Array.isArray(e)&&Array.isArray(e[0])}function Nm(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Me(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new z(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function ht(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new z(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Tm(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Gk="Variable",Hk=class{constructor(e,t="float32",n=Gk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Uk(),n=n==null?Gk:n,this.originalName=Ek(n),this.name=Ak(this.originalName),this.trainable_=a,this.constraint=r,this.val=V1(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),lW(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function lW(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function tx(e){return e.map(t=>t.read())}function nx(e){e.forEach(t=>{t[0].write(t[1])})}var Xt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},$a=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=Uk(),s!=null&&(this.originalName=Ek(s),this.name=Ak(this.originalName)),this.rank=t.length}},uW=0,Sm=class{constructor(e,t){this.callArgs=t,this.id=uW++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},cW=0,qe=class extends re.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=cW++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Nr(n)+"_"+Im(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Aa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return In(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return In(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} is not connected, no input to return.`);return In(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return In(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=bt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=bt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(c!=null&&[c,null].indexOf(u)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of bt(e))s.push(i.shape);this.build(In(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=bt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=In(o),this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=pW(e),i=this.computeOutputShape(s),o,l=dW(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((c,u)=>new $a(l,c,this,bt(e),t,this.name,u)):o=new $a(l,i,this,bt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new $e("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Ir(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Ir(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Aa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Tm(this.weights)}build(e){this.built=!0}getWeights(e=!1){return tx(e?this.trainableWeights:this.weights)}setWeights(e){D(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=tx(t);for(let r=0;rr.apply(l.read())),s==null&&(s=!0),s?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=bt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=bt(e);t=bt(t),n=bt(n),a=bt(a),r=Nm(r),s=Nm(s);let l=[],c=[],u=[];for(let p of o)l.push(p.sourceLayer),c.push(p.nodeIndex),u.push(p.tensorIndex);new Sm({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:u,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let p=0;pe.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function pW(e){e=bt(e);let t=[];for(let n of e)t.push(n.shape);return In(t)}function dW(e){return"float32"}function jk(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;s0){let r=await Promise.all(t);for(let s=0;sZ(this.totals[a],L(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:D(()=>{let a=L(ve(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),jt(t[n])}))}},Zk=class extends iu{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew Jk(n,t))}var ya=class{constructor(){}static registerCallbackConstructor(e,t){k.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),ya.checkForDuplicate(t),ya.constructors[e]==null&&(ya.constructors[e]=[]),ya.constructors[e].push(t)}static checkForDuplicate(e){for(let t in ya.constructors)ya.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){ya.constructors={}}static createCallbacks(e){let t=[];for(let n in ya.constructors){let a=+n;e>=a&&t.push(...ya.constructors[a])}return t.map(n=>new n)}};ya.constructors={};function eI(e,t,n,a,r,s,i,o,l){let c=new Zk,u=[new mW,...ya.createCallbacks(t)];e!=null&&u.push(...e),u.push(c);let p=new Yk(u);return p.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:p,history:c}}function Da(e,t={},n=!1){return np(e,re.SerializationMap.getMap().classNameMap,t,"layer",n)}function Cm(e,t){return D(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));let n=Te(op(e),t,!0),a=kn(n.shape,Bt()),r=tn(Za(n,a));return ve(e,r)})}function Hi(e,t){return D(()=>St(op(fe(t,e)),-1))}function _m(e,t){return D(()=>St(Lt(fe(t,e)),-1))}function ou(e,t){return D(()=>{let n=fe(e,t),a=qt(Lt(e),Bt(),Number.MAX_VALUE),r=Lt(ve(n,a));return L(100,St(r,-1))})}function fW(e,t){return D(()=>{let n=qt(t,Bt(),Number.MAX_VALUE),a=Dn(Z(1,n)),r=qt(e,Bt(),Number.MAX_VALUE),s=Dn(Z(1,r));return St(op(fe(a,s)),-1)})}function gW(e,t){return D(()=>{let n=Za(0,fe(1,L(e,t)));return St(op(n),-1)})}function yW(e,t){return D(()=>{let n=Za(0,fe(1,L(e,t)));return St(n,-1)})}function bW(e,t){return D(()=>{let n=Te(L(e,t),-1),a=Zn(L(fe(1,e),t),-1);return Za(0,Z(1,fe(a,n)))})}function xW(e,t){return D(()=>{let n=Math.log(2),a=fe(t,e),r=fe(Z(a,Xl(L(-2,a))),n);return St(r,-1)})}function cp(e,t,n=!1){return D(()=>{if(n)t=Sa(t);else{let a=Te(t,t.shape.length-1,!0);t=ve(t,a)}return t=qt(t,Bt(),1-Bt()),Tt(Te(L(e.toFloat(),Dn(t)),t.shape.length-1))})}function Em(e,t,n=!1){return D(()=>{let a=Kl(Vz(e)).toInt();t=qt(t,Bt(),1-Bt());let r=t.shape,s=Ul(a,r[r.length-1]).reshape(r);return cp(s,t,n)})}function vW(e,t){if(!k.arraysEqual(e.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return D(()=>{let n=t.relu(),a=t.abs().neg();return n.sub(t.mul(e)).add(a.exp().log1p())})}function Am(e,t){return D(()=>{let n;return n=qt(t,Bt(),1-Bt()),n=Dn(ve(n,fe(1,n))),St(vW(e,n),-1)})}function wW(e,t){return D(()=>{let n=qt(e,Bt(),1),a=qt(t,Bt(),1);return Te(L(e,Dn(ve(n,a))),-1)})}function kW(e,t){return D(()=>{let n=Dn(Z(Bt(),t));return St(fe(t,L(e,n)),-1)})}function ax(e,t){return D(()=>{let n=Cm(e,-1),a=Cm(t,-1),r=L(n,a);return Tt(Te(r,-1))})}var Fm={meanSquaredError:Hi,meanAbsoluteError:_m,meanAbsolutePercentageError:ou,meanSquaredLogarithmicError:fW,squaredHinge:gW,hinge:yW,categoricalHinge:bW,logcosh:xW,categoricalCrossentropy:cp,sparseCategoricalCrossentropy:Em,binaryCrossentropy:Am,kullbackLeiblerDivergence:wW,poisson:kW,cosineProximity:ax};function rx(e){if(typeof e=="string"){if(e in Fm)return Fm[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return e}function sx(e,t){return D(()=>{let n=L(.5,Rn(t)),a=sp(ha(t,n),e.dtype);return St(ts(e,a),-1)})}function ix(e,t){return D(()=>sp(ts(Vc(e,-1),Vc(t,-1)),"float32"))}function tI(e,t){return D(()=>ma(e.equal(1),t.equal(1)).sum().cast("float32"))}function IW(e,t){return D(()=>ma(e.equal(1),t.equal(0)).sum().cast("float32"))}function NW(e,t){return D(()=>ma(e.equal(0),t.equal(1)).sum().cast("float32"))}function nI(e,t){return D(()=>{let n=tI(e,t),a=NW(e,t),r=n.add(a);return wn(ha(r,0),n.div(r),0).cast("float32")})}function TW(e,t){return D(()=>{let n=tI(e,t),a=IW(e,t),r=n.add(a);return wn(ha(r,0),n.div(r),0).cast("float32")})}function aI(e,t){return Am(e,t)}function rI(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),ts(e,t).asType("float32")}var SW=Hi,CW=Hi,_W=_m,EW=_m,AW=ou,FW=ou,ox=cp,$W=ax,sI=Em,$m={binaryAccuracy:sx,categoricalAccuracy:ix,precision:nI,categoricalCrossentropy:ox,sparseCategoricalCrossentropy:sI,mse:SW,MSE:CW,mae:_W,MAE:EW,mape:AW,MAPE:FW,cosine:$W};function DW(e){if(typeof e=="string"&&e in $m)return $m[e];if(typeof e!="string"&&e!=null)return e;throw new z(`Unknown metric ${e}`)}function Dm(e){if(tr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(Fm))if(Fm[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys($m))if($m[n]===e){t=n;break}return t!==void 0?t:e.name}}function RW(e){let t={Adagrad:()=>zi.adagrad(.01),Adadelta:()=>zi.adadelta(1,.95,Bt()),Adam:()=>zi.adam(.001,.9,.999,Bt()),Adamax:()=>zi.adamax(.002,.9,.999,Bt(),0),RMSProp:()=>zi.rmsprop(.001,.9,0,Bt()),SGD:()=>zi.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new z(`Unknown Optimizer ${e}`)}var iI=1*1024*1024;function oI(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!lx(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>iI&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${iI}.`)}}function lx(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!lx(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!lx(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function zW(e,t,n,a=console.log){let r=PW(e),s=["Layer (type)","Output shape","Param #"];r?(t=t||65,n=n||[.45,.85,1]):(t=t||98,n=n||[.33,.55,.67,1]),n[n.length-1]<=1&&(n=n.map(u=>Math.floor(t*u)));let i;if(!r){s.push("Receives inputs"),i=[];for(let u in e.nodesByDepth)i.push(...e.nodesByDepth[u])}a("_".repeat(t)),Rm(s,n,a),a("=".repeat(t));let o=e.layers;for(let u=0;u1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Rm(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function OW(e,t,n){let a;try{a=JSON.stringify(e.outputShape)}catch(o){a="multiple"}let r=e.name,s=e.getClassName(),i=[`${r} (${s})`,a,e.countParams().toString()];Rm(i,t,n)}function LW(e,t,n,a){let r;try{r=JSON.stringify(e.outputShape)}catch(u){r="multiple"}let s=[];for(let u of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(u)===-1))for(let p=0;pm.name),l=[],c=t.names();for(let m of o)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-Infinity,a.minNumTensors=Infinity);let u=o.join(",")+"|"+t.names().join(","),p,d;if(cx[u]==null){let m=WW(i,t);p=m.sorted,d=m.recipientCounts,cx[u]=p,uI[u]=d}p=cx[u],d={},r||Object.assign(d,uI[u]);let h=new ji(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=cI(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=cI(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(c=>a[l].add(c))}}return{sorted:n,recipientCounts:UW(a)}}function UW(e){let t={};for(let n in e)t[n]=e[n].size;return t}function cI(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let c of o.inputs)r[c.name]==null&&(r[c.name]=new Set),r[c.name].add(o.name),!n.has(c.name)&&s.push(c)}}return{sorted:a,recipientMap:r}}function VW(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;ay.name)}`);ss(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(v),this.outputLayersTensorIndices.push(x)}for(let y of this.inputs){let b=y.sourceLayer,v=y.nodeIndex,x=y.tensorIndex;tr(v===0,"input layer has >1 nodes"),tr(x===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(v),this.inputLayersTensorIndices.push(x)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,v,x,N,T)=>{(x==null||N==null||T==null)&&(x=y.sourceLayer,N=y.nodeIndex,T=y.tensorIndex);let C=x.inboundNodes[N];if(v.indexOf(C)!==-1)throw new Aa(`The tensor ${y.name} at layer "${x.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(sr.nodeKey(x,N)),x.id in s||(s[x.id]=Object.keys(s).length),v.indexOf(C)===-1&&v.push(C);let F=C.inboundLayers.length;for(let $=0;$=0;)v.splice(v.indexOf(C),1);i.push(C)},l=[],c=[];for(let y of this.outputs)o(y,l,c);let u=i.slice().reverse();for(let y of u){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],v=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,v),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let x=0;xparseInt(y,10)).sort(dm);this.layers=[];for(let y of h){let b=d[y];b.sort((v,x)=>{let N=s[v.id],T=s[x.id];return NT?1:0});for(let v of b)v instanceof sr&&this.internalContainerRefs.push(v),this.layers.push(v)}this.layersByDepth=d,h=Object.keys(p).map(y=>parseInt(y,10)).sort(dm);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of p[y]){let v=b.outboundLayer;if(v!=null){for(let x of b.inputTensors)if(m.indexOf(x)===-1)throw new Aa(`Graph disconnected: cannot obtain value for tensor ${x} at layer "${v.name}". The following previous layers were accessed without issue: ${f}`);for(let x of b.outputTensors)m.push(x);f.push(v.name)}}this.nodesByDepth=p;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(v=>v===y).length;if(b!==1)throw new Aa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Sm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new z(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new z(`${s.length} of ${a} weights are not set: ${s}`)}nx(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Mm}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=ux(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return D(()=>{e=bt(e);let n=new ji;for(let a=0;a{e=bt(e);let n;return t==null?n=Bi(null,e.length):n=bt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Nm(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(dm);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;let u=[];for(let m=0;mparseInt(o,10)).sort(dm);for(let o of a){let l=this.nodesByDepth[o];for(let c of l){let u=c.outboundLayer,p=c.inputTensors,d=c.outputTensors,h=new Array;for(let m of p)m.id in n&&h.push(n[m.id]);if(h.length===p.length){let m={},f,g,y,b;if(c.callArgs!=null&&(m=c.callArgs),h.length===1){let[v,x]=h[0];m.mask==null&&(m.mask=x),y=bt(u.call(v,m)),b=bt(u.computeMask(v,x)),f=[v],g=[x]}else f=h.map(v=>v[0]),g=h.map(v=>v[1]),m.mask==null&&(m.mask=g),y=bt(u.call(f,m)),b=bt(u.computeMask(f,g));if(u.activityRegularizer)throw new $e("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let v=0;v{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(In(y),b)}function l(f){let g=f.name,y=Da(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let c=t.name,u=t.layers;for(let f of u)l(f);for(;!fz(s);)for(let f of u){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let p=[],d=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];tr(g in r);let v=r[g].inboundNodes[y].outputTensors;p.push(v[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];tr(g in r);let v=r[g].inboundNodes[y].outputTensors;d.push(v[b])}return new e({inputs:p,outputs:d,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){D(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function GW(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function pI(e,t){return GW(e,t,"classWeight")}async function dI(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=D(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){let o=1;return e.argMax(o)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Fe(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),nt(i,"float32")}else return null}function HW(e,t){return L(e,t)}var jW=32;function mI(e,t){let n,a,r=t;n=r.xs,a=r.ys,k.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=hI("input",e.inputNames,n),i=hI("output",e.outputNames,a),o=s[0].shape[0];k.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),k.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function hI(e,t,n){if(n instanceof Ae)return[n];if(Array.isArray(n))return k.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new z(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function qW(e){if(e.length===3)throw new $e("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function XW(e,t,n){let a=n.batchesPerEpoch!=null;if(k.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),k.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),k.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),k.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),k.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(fI(n.validationData))k.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=qW(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),c;r?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();let u=Qk(n.callbacks,n.yieldEvery),p=n.verbose==null?1:n.verbose,{callbackList:d,history:h}=eI(u,p,n.epochs,null,null,KW(t,n),null,r,c);d.setModel(e),e.history=h,await d.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:v.done){if(r){let x;fI(n.validationData)?x=bt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):x=bt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?jW:n.validationBatchSize,verbose:0}));for(let N=0;N0)throw new $e("Verbose mode is not implemented yet.");k.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=YW(t)?t:await t.iterator(),o=0,l=0;for(;a?l{if(c.value){let{xs:u,ys:p}=mI(e,c.value),d=u.concat(p),h=D(()=>r(d));if(Fe(d),l===0)for(let f=0;fZ(s[f],L(m,g))),l>0&&Fe(y)}Fe(h),o+=m,++l}return s}),c.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function hp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Gi(a,t,n-t)):Gi(e,t,n-t)}function dx(e,t){return D(()=>e==null?null:Array.isArray(e)?e.map(n=>dx(n,t)):Dk(e,t.dtype==="int32"?t:t.toInt()))}function hx(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function JW(e,t,n,a,r,s,i,o,l,c,u,p,d,h,m){r==null&&(r=32),s==null&&(s=1),u==null&&(u=!0),d==null&&(d=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Fa(0,g)),i==null&&(i=1);let{callbackList:b,history:v}=eI(o,i,s,d,g,h,r,f,p);b.setModel(e),e.history=v,await b.onTrainBegin(),e.stopTraining_=!1;for(let x=d;x{let P=C[F][0],B=C[F][1],W=Gi(T,P,B-P);$.batch=F,$.size=B-P;let G=dx(n,W),q=t(G);for(let j=0;j0){if(m=!0,a.validationData.length===2)i=a.validationData[0],o=a.validationData[1];else throw a.validationData.length===3?new $e("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let T=!0,C=await e.standardizeUserData(i,o,null,null,T,p);l=C[0],c=C[1],f=l.concat(c)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){m=!0;let T=Math.floor(r[0].shape[0]*(1-a.validationSplit)),C=r[0].shape[0];l=hp(r,T,C),r=hp(r,0,T),c=hp(s,T,C),s=hp(s,0,T),f=l.concat(c)}else a.validationSteps!=null&&(m=!0);let g=r.concat(s).concat(u);e.checkTrainableWeightsConsistency();let y=e.makeTrainFunction(),b=e.getDedupedMetricsNames(),v,x;m?(e.makeTestFunction(),v=e.testFunction,x=b.slice().concat(b.map(T=>"val_"+T))):(v=null,f=[],x=b.slice());let N=Qk(a.callbacks,a.yieldEvery);return await JW(e,y,g,b,p,a.epochs,a.verbose,N,v,f,a.shuffle,x,a.initialEpoch,null,null)}finally{e.isTraining=!1,qi(r,t),qi(s,n),qi(l,i),qi(c,o),u!=null&&Fe(u)}}function gI(e){let t=[];e instanceof Ae&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Ae)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function e4(e){return e instanceof Ae}function mx(e){return Array.isArray(e)}function yI(e){return!e4(e)&&!mx(e)}function bI(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(mx(e)&&e.length>0)i=!0;else if(yI(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(yI(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(mx(e)){if(e=e,e.length!==t.length)throw new z(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new z(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=gI(s),n!=null)for(let i=0;i=0&&c!==u)throw new z(`Error when checking ${r}: expected ${t[i]} to have shape [${n[i]}], but got array with shape [${o.shape}].`)}}return s}function t4(e,t,n){let a=ss(e.map(s=>s.shape[0]));a.sort();let r=ss(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!k.arraysEqual(a,r))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function n4(e,t,n){let a=[Hi,Am,cp];for(let r=0;r1)throw new z(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var r4="layers-model",Tr=class extends sr{constructor(e){super(e);this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");zW(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=RW(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof kr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new z(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(rx(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>rx(s))}else{let s=rx(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=a4(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Ui("metric",()=>{for(let s=0;s{let l="",c,u,p;for(let d of o){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Am?["accuracy","acc"].indexOf(d)!==-1?u=sx:["crossentropy","ce"].indexOf(d)!==-1&&(u=aI):this.lossFunctions[s]===Em?["accuracy","acc"].indexOf(d)!==-1?u=rI:["crossentropy","ce"].indexOf(d)!==-1&&(u=sI):["accuracy","acc"].indexOf(d)!==-1?u=ix:["crossentropy","ce"].indexOf(d)!==-1&&(u=ox);let f;["accuracy","acc"].indexOf(d)!==-1?f="acc":["crossentropy","ce"].indexOf(d)!==-1&&(f="ce"),p=u,c=l+f}else p=DW(d),c=l+Dm(d);let h;Ui(c,()=>{h=p}),r(s,c,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;px(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return In(l)}finally{qi(s[0],e),qi(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),ZW(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new z(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new ji;if(e instanceof Ae&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return D(()=>{let a=this.checkNumSamples(e);if(n)throw new $e("Verbose predictLoop() is not implemented yet.");let r=hx(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],c=hp(e,o,l),u=[];if(Array.isArray(c))for(let d=0;ds[l].push(o));return In(s.map(i=>Qe(i,0)))})}predict(e,t={}){let n=gI(e);xI(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return px(a),this.predictLoop(n,a)}finally{qi(n,e)}}predictOnBatch(e){xI(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Aa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let c=pI(a,this.outputNames);l=[];for(let u=0;u{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new $e("Verbose mode is not implemented yet.");if(r!=null)throw new $e("steps mode in testLoop() is not implemented yet");{let o=hx(s,n),l=nt(Fa(0,s));for(let c=0;c1&&(r+=`_${vk(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let c=[];for(let h=0;h1&&h{d=Z(d,h)}),d},o=this.collectedTrainableWeights.map(c=>c.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>D(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lNr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Nr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Nr(Dm(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Nr(Dm(e)));{let e={};for(let t in this.metrics)e[t]=Nr(Dm(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=pp(e.optimizer_config),n=Da(t),a;if(typeof e.loss=="string")a=Wi(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Wi(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Wi(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Wi(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Wi(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ht.getSaveHandlers(e);if(i.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new z(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ht.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:r4,generatedBy:`TensorFlow.js tfjs-layers v${Mm}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ht.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ht.concatenateArrayBuffers([n.data,o])}if(this.userDefinedMetadata!=null){let i=!0;oI(this.userDefinedMetadata,this.name,i),s.userDefinedMetadata=this.userDefinedMetadata}return s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){oI(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Tr.className="Model";re.registerClass(Tr);var vI=class extends Tr{};vI.className="Functional";re.registerClass(vI);async function s4(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=pp(n),r=Da(a,t);if(e.weightsManifest!=null){let s=await Ht.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Fe(s)}return r}async function o4(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ht.getLoadHandlers(e,t);if(n.length===0)n.push(Ht.browserHTTPRequest(e,t));else if(n.length>1)throw new z(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return i4(e,void 0,t)}async function i4(e,t,n){if(n==null&&(n={}),e.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Da(pp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:c,optimizerWeights:u}=l4(a.weightData,a.weightSpecs);o.loadWeights(c,s),o.optimizer!=null&&u.length>0&&await o.optimizer.setWeights(u),Fe(c),Fe(u.map(p=>p.tensor))}return o}function l4(e,t){let n=Ht.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var lu=class extends Tr{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Im("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof lu||e instanceof Tr,n;if(t){if(n=e,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=qk({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=jk(this.outputs[0])}this.inboundNodes=[],new Sm({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Bi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(ht(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Tr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Aa("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Aa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Aa("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Aa("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");r=t}else k.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof lu))throw new $e(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Da(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};lu.className="Sequential";re.registerClass(lu);function u4(e){return new Tr(e)}function c4(e){return new lu(e)}function p4(e,t){return t==null&&(t={}),o4(e,t)}function Lk(e){return qk(e)}function d4(e,t){ya.registerCallbackConstructor(e,t)}var On=class extends re.Serializable{getConfig(){return{}}},wI=class extends On{apply(e,t=1){return Gz(e,t)}};wI.className="elu";re.registerClass(wI);var kI=class extends On{apply(e){return jh(e)}};kI.className="selu";re.registerClass(kI);var II=class extends On{apply(e){return Ye(e)}};II.className="relu";re.registerClass(II);var NI=class extends On{apply(e){return D(()=>Zl(6,Ye(e)))}};NI.className="relu6";re.registerClass(NI);var TI=class extends On{apply(e){return e}};TI.className="linear";re.registerClass(TI);var SI=class extends On{apply(e){return da(e)}};SI.className="sigmoid";re.registerClass(SI);var CI=class extends On{apply(e){return jz(e)}};CI.className="hardSigmoid";re.registerClass(CI);var _I=class extends On{apply(e){return Xl(e)}};_I.className="softplus";re.registerClass(_I);var EI=class extends On{apply(e){return Hz(e)}};EI.className="softsign";re.registerClass(EI);var AI=class extends On{apply(e){return jl(e)}};AI.className="tanh";re.registerClass(AI);var fx=class extends On{apply(e,t=-1){return Sa(e,t)}};fx.className="softmax";re.registerClass(fx);var FI=class extends On{apply(e,t=-1){return zh(e,t)}};FI.className="logSoftmax";re.registerClass(FI);var $I=class extends On{apply(e,t=1){return D(()=>da(e.mul(t)).mul(e))}};$I.className="swish";re.registerClass($I);function us(e){return e.getClassName()}function gx(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"activation")}function cs(e){if(e==null){let t={};return t.className="linear",t.config={},gx(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},gx(t)}else return e instanceof On?e:gx(e)}function yx(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var DI=class extends re.Serializable{},mp=class extends DI{constructor(e){super();yx(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return D(()=>{let t=vt([1]);return this.hasL1&&(t=Z(t,Te(L(this.l1,Lt(e))))),this.hasL2&&(t=Z(t,Te(L(this.l2,op(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};mp.className="L1L2";re.registerClass(mp);function h4(e){return yx(e),new mp({l1:e!=null?e.l1:null,l2:0})}function m4(e){return yx(e),new mp({l2:e!=null?e.l2:null,l1:0})}var RI={l1l2:"L1L2"};function mt(e){return $b(e)}function MI(e,t={}){return np(e,re.SerializationMap.getMap().classNameMap,t,"regularizer")}function kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in RI?RI[e]:e,config:{}};return MI(t)}else return e instanceof DI?e:MI(e)}var bx=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Me(e);let n=Ye(e);return this.maxValue!=null&&(n=qt(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};bx.className="ReLU";re.registerClass(bx);var xx=class extends qe{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Me(e);return qc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};xx.className="LeakyReLU";re.registerClass(xx);var vx=class extends qe{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=wt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=kt(e.alphaRegularizer),this.alphaConstraint=Vt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=ht(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,1]):e))}function PI(e,t){return D(()=>(Dt(t),t==="channelsFirst"?Ue(e,[0,2,3,4,1]):e))}function f4(e,t,n,a=1,r="valid",s,i=1){return D(()=>{if(s==null&&(s=Ea()),Dt(s),e.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ue(e,[0,2,1])),r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Fh(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=ar(o,n)),o})}function OI(e,t,n,a=[1,1],r="valid",s,i,o=null){return D(()=>{if(s==null&&(s=Ea()),Dt(s),e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Nx(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=rs.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ue(l,[0,3,1,2])),l})}function g4(e,t,n,a=[1,1,1],r="valid",s,i){return D(()=>{if(s==null&&(s=Ea()),Dt(s),e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=PI(e,s);if(r==="causal")throw new $e("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=tb(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=ar(o,n)),s==="channelsFirst"&&(o=Ue(o,[0,4,1,2,3])),o})}var Tx=class extends qe{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Tx.verifyArgs(t),this.rank=e,Kt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new $e(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=uu(t.kernelSize,e,"kernelSize"),this.strides=uu(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Qn(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Dt(this.dataFormat),this.activation=cs(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=wt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Vt(t.biasConstraint),this.biasRegularizer=kt(t.biasRegularizer),this.activityRegularizer=kt(t.activityRegularizer),this.dilationRate=uu(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(tr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Rb(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:us(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},fp=class extends Tx{constructor(e,t){super(e,t);this.kernel=null,fp.verifyArgs(t),this.filters=t.filters,Kt(this.filters,"filters"),this.kernelInitializer=wt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Vt(t.kernelConstraint),this.kernelRegularizer=kt(t.kernelRegularizer)}build(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return D(()=>{e=Me(e);let n,a=this.bias==null?null:this.bias.read(),r=kk(this.activation.getClassName());if(r!=null&&this.rank===2)n=OI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=f4(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=OI(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=g4(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new $e("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=ht(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},gp=class extends fp{constructor(e){super(2,e);gp.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Rb(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};gp.className="Conv2D";re.registerClass(gp);var Om=class extends fp{constructor(e){super(3,e);Om.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Om.className="Conv3D";re.registerClass(Om);var Sx=class extends gp{constructor(e){super(e);if(this.inputSpec=[new Xt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=ht(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Xt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return D(()=>{let n=Me(e);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],c=this.kernelSize[0],u=this.kernelSize[1],p=this.strides[0],d=this.strides[1],h=Pm(o,p,c,this.padding),m=Pm(l,d,u,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ue(n,[0,2,3,1]));let g=$h(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ue(g,[0,3,1,2])),this.bias!=null&&(g=ar(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=ht(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=Pm(t[a],o,s,this.padding),t[r]=Pm(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Sx.className="Conv2DTranspose";re.registerClass(Sx);var LI=class extends fp{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=kt(t.depthwiseRegularizer),this.depthwiseConstraint=Vt(t.depthwiseConstraint),this.pointwiseInitializer=wt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=kt(t.pointwiseRegularizer),this.pointwiseConstraint=Vt(t.pointwiseConstraint)}build(e){if(e=ht(e),e.length{e=Me(e);let n;if(this.rank===1)throw new $e("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ue(e,[0,2,3,1])),n=Oi(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=ar(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ue(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.pointwiseRegularizer=mt(this.pointwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseConstraint),e.pointwiseConstraint=Wt(this.pointwiseConstraint),e}};LI.className="SeparableConv";var Cx=class extends LI{constructor(e){super(2,e)}};Cx.className="SeparableConv2D";re.registerClass(Cx);var Lm=class extends fp{constructor(e){super(1,e);Lm.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Rb(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Lm.className="Conv1D";re.registerClass(Lm);var _x=class extends qe{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return D(()=>{if(e=Me(e),this.dataFormat==="channelsLast"){let n=hm(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return hm(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=hm(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return hm(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};_x.className="Cropping2D";re.registerClass(_x);var Ex=class extends qe{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Oz(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return D(()=>{let n=Me(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ue(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s]);return Ue(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?n.resizeNearestNeighbor([r,s]):n.resizeBilinear([r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Ex.className="UpSampling2D";re.registerClass(Ex);function y4(e,t,n=[1,1],a="valid",r,s){return D(()=>{r==null&&(r=Ea()),Dt(r);let i=Nx(e,r);if(e.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=es(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}var Ax=class extends Tx{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=wt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Vt(e.depthwiseConstraint),this.depthwiseRegularizer=kt(e.depthwiseRegularizer)}build(e){if(e=ht(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{e=Me(e);let n=y4(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=ar(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ra(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ra(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=mt(this.depthwiseRegularizer),e.depthwiseConstraint=Wt(this.depthwiseRegularizer),e}};Ax.className="DepthwiseConv2D";re.registerClass(Ax);function zI(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function BI(e,t,n,a=!1,r,s,i=!1,o=!1){return D(()=>{let l=t.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let c=[1,0].concat(Fa(2,l));if(t=Ue(t,c),s!=null)throw new $e("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=r.asType("bool").asType("float32"),r.rank===l-1&&(r=$n(r,-1)),r=Ue(r,c)),a&&(t=Mn(t,0),r!=null&&(r=Mn(r,0)));let u=[],p,d=n,h=t.shape[0],m=dt(t),f;r!=null&&(f=dt(r));for(let y=0;ye(b,d));if(r==null)p=v[0],d=v[1];else{let x=D(()=>{let N=f[y],T=Rn(N).sub(N),C=v[0].mul(N).add(d[0].mul(T)),F=d.map(($,P)=>v[1][P].mul(N).add($.mul(T)));return{output:C,newStates:F}});p=x.output,d=x.newStates}o&&u.push(p)}let g;return o&&(g=$t(u,1)),[p,g,d]})}var rr=class extends qe{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new zm({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Xt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Fa(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){ex(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return D(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ni.shape[i.shape.length-1]),s))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=s.map(i=>new Xt({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_=[vt([n,this.cell.stateSize])];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>vt([n,a])):this.states_[0]=vt([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let a=0;ajt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=zI(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new Xt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof $a){let o=[e].concat(s),l=this.inputSpec.concat(i),c=this.inputSpec;this.inputSpec=l;let u=super.apply(o,t);return this.inputSpec=c,u}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Me(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new z(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=BI((d,h)=>{let m=this.cell.call([d].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],c=o[1],u=o[2];this.stateful&&this.resetStates(u,a);let p=this.returnSequences?c:l;return this.returnState?[p].concat(u):p})}getInitialState(e){return D(()=>{let t=vt(e.shape);return t=Te(t,[1,2]),t=ip(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Bb(t,[1,n]):t):this.cell.stateSize>1?[Bb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===rr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign({},n,e,t)}static fromConfig(e,t,n={}){let a=t.cell,r=Da(a,n);return new e(Object.assign(t,{cell:r}))}};rr.className="RNN";re.registerClass(rr);var up=class extends qe{},Bm=class extends up{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ru([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ru([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0Rn(e),rate:this.dropout,training:a})),0Rn(n),rate:this.recurrentDropout,training:a}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=nr(L(e,s),this.kernel.read()):r=nr(e,this.kernel.read()),this.bias!=null&&(r=ar(r,this.bias.read())),i!=null&&(n=L(n,i));let o=Z(r,nr(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),recurrentRegularizer:mt(this.recurrentRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),recurrentConstraint:Wt(this.recurrentConstraint),biasConstraint:Wt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Bm.className="SimpleRNNCell";re.registerClass(Bm);var Fx=class extends rr{constructor(e){e.cell=new Bm(e),super(e)}call(e,t){return D(()=>{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Fx.className="SimpleRNN";re.registerClass(Fx);var Wm=class extends up{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=cs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ru([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ru([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=ht(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return D(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0Rn(e),rate:this.dropout,training:n,count:3})),0Rn(a),rate:this.recurrentDropout,training:n,count:3}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};$x.className="GRU";re.registerClass($x);var yp=class extends up{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=cs(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=wt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=kt(e.kernelRegularizer),this.recurrentRegularizer=kt(e.recurrentRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.kernelConstraint=Vt(e.kernelConstraint),this.recurrentConstraint=Vt(e.recurrentConstraint),this.biasConstraint=Vt(e.biasConstraint),this.dropout=ru([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ru([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=ht(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends ga{apply(i,o){let l=r.apply([s]),c=new fm().apply([s]),u=r.apply([s*2]);return $k($k(l,c),u)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0Rn(e),rate:this.dropout,training:n,count:4})),0Rn(a),rate:this.recurrentDropout,training:n,count:4}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,c,u;0{this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Dx.className="LSTM";re.registerClass(Dx);var zm=class extends up{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return D(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Ui(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Da(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return tx(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;sRk(t(),n),i=()=>lp(s,t,a);return!r||r<=1?jt(i().clone()):Array(r).fill(void 0).map(i).map(o=>jt(o.clone()))}var b4=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Fe(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Fe(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return D(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=vt(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){D(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_=[vt(r)];else if(e==null)Fe(this.states_),this.keptStates!=null&&(Fe(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>vt(r)):this.states_[0]=vt(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Fe(this.states_);for(let s=0;sjt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],c=e[o?4:3],u=Ra(l,a[0],r,s[0],i[0]),p=Ra(c,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,u,p]:[u,p,n]]}};WI.className="ConvRNN2D";var Vm=class extends yp{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Kt(this.filters,"filters"),this.kernelSize=uu(n,2,"kernelSize"),this.kernelSize.forEach(o=>Kt(o,"kernelSize")),this.strides=uu(a||1,2,"strides"),this.strides.forEach(o=>Kt(o,"strides")),this.padding=r||"valid",Qn(this.padding),this.dataFormat=s||"channelsLast",Dt(this.dataFormat),this.dilationRate=uu(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Kt(o,"dilationRate"))}build(e){var t;e=ht(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;o=new(t=class extends ga{apply(u,p){let d=l.apply([c]),h=Ja([c]),m=l.apply([c*2]);return Vb([d,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return D(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0Rn(a),rate:this.dropout,training:n,count:i}));let o=this.dropoutMask,l=(J,se,Q)=>!se||!se[Q]?J:L(se[Q],J),c=l(a,o,0),u=l(a,o,1),p=l(a,o,2),d=l(a,o,3);0Rn(r),rate:this.recurrentDropout,training:n,count:i}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[v,x,N,T]=Pn(this.kernel.read(),i,b),[C,F,$,P]=this.useBias?Pn(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,v,C,this.padding),u=this.inputConv(u,x,F,this.padding),p=this.inputConv(p,N,$,this.padding),d=this.inputConv(d,T,P,this.padding);let[B,W,G,q]=Pn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,B),f=this.recurrentConv(f,W),g=this.recurrentConv(g,G),y=this.recurrentConv(y,q);let j=this.recurrentActivation.apply(Z(c,m)),X=this.recurrentActivation.apply(Z(u,f)),K=Z(L(X,s),L(j,this.activation.apply(Z(p,g)))),ne=L(this.recurrentActivation.apply(Z(d,y)),this.activation.apply(K));return[ne,ne,K]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=b4(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},n,a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?ar(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Vm.className="ConvLSTM2DCell";re.registerClass(Vm);var Rx=class extends WI{constructor(e){let t=new Vm(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Rx.className="ConvLSTM2D";re.registerClass(Rx);var Um=class extends qe{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);if(0Rk(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Um.className="Dropout";re.registerClass(Um);var Mx=class extends Um{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Mx.className="SpatialDropout1D";re.registerClass(Mx);var Px=class extends qe{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Kt(this.units,"units"),this.activation=cs(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=wt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=wt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Vt(e.kernelConstraint),this.biasConstraint=Vt(e.biasConstraint),this.kernelRegularizer=kt(e.kernelRegularizer),this.biasRegularizer=kt(e.biasRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=ht(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=ht(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=kk(this.activation.getClassName()),r;return a!=null?r=nr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=nr(n,this.kernel.read()),this.bias!=null&&(r=ar(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:mt(this.kernelRegularizer),biasRegularizer:mt(this.biasRegularizer),activityRegularizer:mt(this.activityRegularizer),kernelConstraint:Wt(this.kernelConstraint),biasConstraint:Wt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Px.className="Dense";re.registerClass(Px);var Ox=class extends qe{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=ht(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],is(e,1)]}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Me(e);return this.activation.apply(n)})}getConfig(){let e={activation:us(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Lx.className="Activation";re.registerClass(Lx);var zx=class extends qe{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return D(()=>(e=Me(e),Wz(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};zx.className="RepeatVector";re.registerClass(zx);var Bx=class extends qe{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Me(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return n.reshape(r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Bx.className="Reshape";re.registerClass(Bx);var Wx=class extends qe{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Fa(1,e.dims.length+1);if(!k.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Xt({ndim:this.dims.length+1})]}computeOutputShape(e){e=ht(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ue(Me(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Wx.className="Permute";re.registerClass(Wx);var Vx=class extends qe{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Me(e),a=-1;return Wc(Pi(n,this.maskValue),a)}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e),a=-1,r=!0,s=Wc(Pi(n,this.maskValue),a,r);return n.mul(s.asType(n.dtype))})}};Vx.className="Masking";re.registerClass(Vx);var Ux=class extends qe{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(bt(e.inputLength))}this.inputDim=e.inputDim,Kt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Kt(this.outputDim,"outputDim"),this.embeddingsInitializer=wt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=kt(e.embeddingsRegularizer),this.activityRegularizer=kt(e.activityRegularizer),this.embeddingsConstraint=Vt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return D(()=>this.maskZero?(e=Me(e),Pi(e,Ge(e))):null)}computeOutputShape(e){if(e=ht(e),this.inputLength==null)return[...e,this.outputDim];let t=bt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Me(e);return n.dtype!=="int32"&&(n=sp(n,"int32")),Dk(this.embeddings.read(),n.as1D()).reshape(ht(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:mt(this.embeddingsRegularizer),activityRegularizer:mt(this.activityRegularizer),embeddingsConstraint:Wt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Ux.className="Embedding";re.registerClass(Ux);var Ki=class extends qe{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new $e}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&ss(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return D(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=os(a);for(let s of e){let i=s.rank;for(let o=0;o1){let c=Fa(1,l).concat([0]);n.push(Ue(o,c)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,c=o[l-1],u=[c].concat(o.slice(0,o.length-1));s=Ue(s.reshape([-1,c]),[1,0]).reshape(u)}else if(i>1){let o=[i-1].concat(Fa(0,i-1));s=Ue(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:$n(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return D(()=>Vb(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return D(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new $e("batchDot is not implemented for tensors of 4D or higher rank yet");if(k.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),k.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new $e("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return D(()=>{let i;if(a>r){i=a-r;let l=[];for(let c=0;ca){i=r-a;let l=[];for(let c=0;c0){let l;a>r?l=a+r-3:l=a-1;let c=[];for(let u=l;u"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new z(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>bp(r,e[s].shape.length)):a=[bp(this.axes,t.shape.length),bp(this.axes,n.shape.length)],this.normalize&&(t=Cm(t,a[0]),n=Cm(n,a[1])),x4(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[bp(this.axes,e.length),bp(this.axes,t.length)],n}computeOutputShape(e){k.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new $e("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Yx.className="Dot";re.registerClass(Yx);var Zx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return lp(()=>mm(n.shape,0,this.stddev).add(n),()=>n,t.training||!1)})}};Zx.className="GaussianNoise";re.registerClass(Zx);var Jx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{this.invokeCallHook(e,t);let n=Me(e);return this.rate>0&&this.rate<1?lp(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return n.mul(mm(n.shape,1,a))},()=>n,t.training||!1):n})}};Jx.className="GaussianDropout";re.registerClass(Jx);var Qx=class extends qe{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Me(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return D(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return lp(()=>{let a=Me(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=ns(Jl(n),this.rate);o=sp(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,c=-l*i*this.rate;return a.mul(o).add(o.add(-1).mul(i)).mul(l).add(c)},()=>Me(e),t.training||!1)}return e})}};Qx.className="AlphaDropout";re.registerClass(Qx);function xp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=g1(e,t,n,a,r,s);else if(e.rank===3)i=y1(e,t,n,a,r,s);else if(e.rank===4)i=b1(e,t,n,a,r,s);else throw new $e(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function v4(e,t,n,a,r=.001){return D(()=>{let s=Wh(e,a),i=s.mean,o=s.variance;return[xp(e,i,o,n,t,r),i,o]})}function w4(e,t,n,a,r=.001){return D(()=>{let s=Wh(e,a),i=s.mean,o=s.variance,l=[];for(let h of Fa(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let c=i.reshape(l),u=o.reshape(l),p=t==null?null:t.reshape(l),d=n==null?null:n.reshape(l);return[xp(e,c,u,d,p,r),i,o]})}function k4(e,t,n,a,r=.001){return k.arraysEqual(a.slice().sort(),Fa(0,e.rank-1))?v4(e,t,n,a,r):w4(e,t,n,a,r)}var ev=class extends qe{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.movingMeanInitializer=wt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=wt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Vt(e.betaConstraint),this.gammaConstraint=Vt(e.gammaConstraint),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer)}build(e){e=ht(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Xt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return D(()=>{let n=t.training==null?!1:t.training,a=Me(e),r=a.shape,s=r.length,i=Fa(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=Bi(1,s);l[o]=r[o];let c=i.slice();c.sort();let u=!k.arraysEqual(c,Fa(0,s).slice(0,s-1)),p=()=>{if(u){let g=this.movingMean.read().reshape(l),y=this.movingVariance.read().reshape(l),b=this.center?this.beta.read().reshape(l):null,v=this.scale?this.gamma.read().reshape(l):null;return xp(a,g,y,b,v,this.epsilon)}else return xp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return p();let[d,h,m]=k4(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{D(()=>{let v=1-b,x=g.read(),N=x.sub(y).mul(v);g.write(x.sub(N))})};return(()=>{f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum)})(),d})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:mt(this.betaRegularizer),gammaRegularizer:mt(this.gammaRegularizer),betaConstraint:Wt(this.betaConstraint),gammaConstraint:Wt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};ev.className="BatchNormalization";re.registerClass(ev);var tv=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=wt(e.betaInitializer||"zeros"),this.gammaInitializer=wt(e.gammaInitializer||"ones"),this.betaRegularizer=kt(e.betaRegularizer),this.gammaRegularizer=kt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=ht(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==ss(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Me(e),a=n.shape,r=a.length;return D(()=>{let s=!0,{mean:i,variance:o}=Wh(n,this.axis,s),l=Bi(1,r);for(let m of this.axis)l[m]=a[m];let c=m=>m!=null&&m.shape.length!==r&&this.axis!==[r-1]?m.reshape(l):m,u=c(this.gamma.read()),p=c(this.beta.read()),d=[],h=[];for(let m=0;m{if(e.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=Ea()),n!=="channelsLast"&&n!=="channelsFirst")throw new z(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],Jn(e,a)})}var nv=class extends qe{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Ea():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return D(()=>I4(Me(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};nv.className="ZeroPadding2D";re.registerClass(nv);function Gm(e,t,n,a,r,s){return D(()=>{Dt(r),Sk(s),Qn(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=Ea()),s==null&&(s="max"),e=Nx(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Ft(e,t,n,o):i=Yn(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,3,1,2])),i})}function VI(e,t,n,a,r,s){return D(()=>{Dt(r),Sk(s),Qn(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=Ea()),s==null&&(s="max"),e=PI(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=db(e,t,n,o):i=Jy(e,t,n,o),r==="channelsFirst"&&(i=Ue(i,[0,4,1,2,3])),i})}var UI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Kt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Qn(this.padding),this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){e=ht(e);let t=Ra(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return D(()=>{this.invokeCallHook(e,t),e=ip(Me(e),2);let n=this.poolingFunction(Me(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return as(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},av=class extends UI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Gm(e,t,n,a,r,"max")}};av.className="MaxPooling1D";re.registerClass(av);var rv=class extends UI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Gm(e,t,n,a,r,"avg")}};rv.className="AveragePooling1D";re.registerClass(rv);var GI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Qn(this.padding),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ra(t,this.poolSize[0],this.padding,this.strides[0]),n=Ra(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},sv=class extends GI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Gm(e,t,n,a,r,"max")}};sv.className="MaxPooling2D";re.registerClass(sv);var iv=class extends GI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),Gm(e,t,n,a,r,"avg")}};iv.className="AveragePooling2D";re.registerClass(iv);var HI=class extends qe{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Kt(this.poolSize,"poolSize"),Kt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),Qn(this.padding),this.inputSpec=[new Xt({ndim:5})]}computeOutputShape(e){e=ht(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ra(t,this.poolSize[0],this.padding,this.strides[0]),n=Ra(n,this.poolSize[1],this.padding,this.strides[1]),a=Ra(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return D(()=>(this.invokeCallHook(e,t),this.poolingFunction(Me(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},ov=class extends HI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),VI(e,t,n,a,r,"max")}};ov.className="MaxPooling3D";re.registerClass(ov);var lv=class extends HI{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Dt(r),Qn(a),VI(e,t,n,a,r,"avg")}};lv.className="AveragePooling3D";re.registerClass(lv);var jI=class extends qe{constructor(e){super(e);this.inputSpec=[new Xt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new $e}},uv=class extends jI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return St(n,1)})}};uv.className="GlobalAveragePooling1D";re.registerClass(uv);var cv=class extends jI{constructor(e){super(e||{})}call(e,t){return D(()=>{let n=Me(e);return Zn(n,1)})}};cv.className="GlobalMaxPooling1D";re.registerClass(cv);var qI=class extends qe{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Dt(this.dataFormat),this.inputSpec=[new Xt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new $e}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},pv=class extends qI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?St(n,[1,2]):St(n,[2,3])})}};pv.className="GlobalAveragePooling2D";re.registerClass(pv);var dv=class extends qI{call(e,t){return D(()=>{let n=Me(e);return this.dataFormat==="channelsLast"?Zn(n,[1,2]):Zn(n,[2,3])})}};dv.className="GlobalMaxPooling2D";re.registerClass(dv);var KI=class extends qe{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Da(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},hv=class extends KI{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=ht(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=ht(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return D(()=>(e=Me(e),BI((n,a)=>[Me(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};hv.className="TimeDistributed";re.registerClass(hv);function N4(e){Vi(Pz,"BidirectionalMergeMode",e)}var T4="concat",mv=class extends KI{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Da(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Da(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?T4:e.mergeMode,N4(this.mergeMode),e.weights)throw new $e("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):In(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=zI(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let c=n.map(u=>new Xt({shape:u.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),i.push(...c)}if(a!=null)throw new $e("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof $a;for(let l of s)if(l instanceof $a!==o)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),c=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=c;let p=super.apply(l,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return D(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=Mn(r,1));let i;return this.mergeMode==="concat"?i=Vb([a,r]):this.mergeMode==="sum"?i=Z(a,r):this.mergeMode==="ave"?i=L(.5,Z(a,r)):this.mergeMode==="mul"?i=L(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Ui(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Ui(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Da(t.layer);if(delete t.layer,t.numConstants!=null)throw new $e("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};mv.className="Bidirectional";re.registerClass(mv);function Jz(e){return new su(e)}function Qz(e){return new wx(e)}function eB(e){return new bx(e)}function tB(e){return new xx(e)}function nB(e){return new vx(e)}function aB(e){return new Ix(e)}function rB(e){return new kx(e)}function sB(e){return new Lm(e)}function iB(e){return new gp(e)}function oB(e){return new Sx(e)}function lB(e){return new Om(e)}function uB(e){return new Cx(e)}function cB(e){return new _x(e)}function pB(e){return new Ex(e)}function dB(e){return new Ax(e)}function hB(e){return new Lx(e)}function mB(e){return new Px(e)}function fB(e){return new Um(e)}function gB(e){return new Mx(e)}function yB(e){return new Ox(e)}function bB(e){return new zx(e)}function xB(e){return new Bx(e)}function vB(e){return new Wx(e)}function wB(e){return new Ux(e)}function kB(e){return new Gx(e)}function IB(e){return new jx(e)}function NB(e){return new Xx(e)}function TB(e){return new qx(e)}function SB(e){return new Kx(e)}function CB(e){return new Hx(e)}function _B(e){return new Yx(e)}function EB(e){return new ev(e)}function AB(e){return new tv(e)}function FB(e){return new nv(e)}function Zb(e){return new rv(e)}function $B(e){return Zb(e)}function DB(e){return Zb(e)}function Jb(e){return new iv(e)}function RB(e){return Jb(e)}function MB(e){return Jb(e)}function Qb(e){return new lv(e)}function PB(e){return Qb(e)}function OB(e){return Qb(e)}function LB(e){return new uv(e)}function zB(e){return new pv(e)}function zk(e){return new cv(e)}function Bk(e){return new dv(e)}function Wk(e){return new av(e)}function Vk(e){return new sv(e)}function BB(e){return new ov(e)}function WB(e){return new $x(e)}function VB(e){return new Wm(e)}function UB(e){return new Dx(e)}function GB(e){return new yp(e)}function HB(e){return new Fx(e)}function jB(e){return new Bm(e)}function qB(e){return new Rx(e)}function KB(e){return new Vm(e)}function XB(e){return new rr(e)}function YB(e){return new zm(e)}function ZB(e){return new mv(e)}function JB(e){return new hv(e)}var QB=zk,eW=Bk,tW=Wk,nW=Vk;function aW(e){return new Zx(e)}function rW(e){return new Jx(e)}function sW(e){return new Qx(e)}function iW(e){return new Vx(e)}var XI={};Oe(XI,{MAPE:()=>P4,MSE:()=>z4,binaryAccuracy:()=>S4,binaryCrossentropy:()=>C4,categoricalAccuracy:()=>E4,categoricalCrossentropy:()=>A4,cosineProximity:()=>D4,mape:()=>O4,meanAbsoluteError:()=>R4,meanAbsolutePercentageError:()=>M4,meanSquaredError:()=>L4,mse:()=>B4,precision:()=>F4,recall:()=>$4,sparseCategoricalAccuracy:()=>_4});function S4(e,t){return sx(e,t)}function C4(e,t){return aI(e,t)}function _4(e,t){return rI(e,t)}function E4(e,t){return ix(e,t)}function A4(e,t){return ox(e,t)}function F4(e,t){return nI(e,t)}function $4(e,t){return TW(e,t)}function D4(e,t){return ax(e,t)}function R4(e,t){return _m(e,t)}function M4(e,t){return ou(e,t)}function P4(e,t){return ou(e,t)}function O4(e,t){return ou(e,t)}function L4(e,t){return Hi(e,t)}function z4(e,t){return Hi(e,t)}function B4(e,t){return Hi(e,t)}var YI={};Oe(YI,{modelFromJSON:()=>s4});var ZI={};Oe(ZI,{l1:()=>V4,l1l2:()=>W4,l2:()=>U4});function W4(e){return new mp(e)}function V4(e){return h4(e)}function U4(e){return m4(e)}var JI=class extends iu{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof Tr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Hm(e,t){return et}var eN=class extends JI{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new $e("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Hm:this.mode==="max"?this.monitorFunc=QI:this.monitor.indexOf("acc")!==-1?this.monitorFunc=QI:this.monitorFunc=Hm,this.monitorFunc===Hm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Hm?Infinity:-Infinity}async onEpochEnd(e,t){await ls(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function G4(e){return new eN(e)}var H4={earlyStopping:G4},Ma;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Ma||(Ma={}));var tN;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(tN||(tN={}));var fv={};function j4(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};fv[e]=n}function nN(e){return fv[e]}function q4(e){delete fv[e]}function I(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return Tn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(p=>Tn(p,n,a,r));let c=Tn(t.inputNames.slice(o)[0],n,a,r),u=c.dataSync();return s.type==="number"?u[0]:k.toNestedArray(c.shape,u)}let i=t.attrParams[e];return i&&i.value}function Tn(e,t,n,a){let[r,s]=Ln(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[jm(r,o)]);return i!==void 0?t[jm(r,i)][s]:void 0}function K4(e,t,n){return t[jm(e,n.currentContextId)]}function Sr(e,t){let[n,a]=Ln(e);return[jm(n,t&&t.currentContextId),a]}function jm(e,t){return t?`${e}-${t}`:e}function Ln(e){let t=e.split(":");return t.length===1?[e,0]:[t[0],Number(t[t.length-1])]}function qm(e,t,n){let a=I("pad",e,t,n);if(a==="explicit"){a=I("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Cr(e){return e.kept?e:Zr(e)}var aN={};Oe(aN,{json:()=>X4});var X4=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],rN={};Oe(rN,{json:()=>Y4});var Y4=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],sN={};Oe(sN,{json:()=>Z4});var Z4=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}],iN={};Oe(iN,{json:()=>J4});var J4=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],oN={};Oe(oN,{json:()=>Q4});var Q4=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],lN={};Oe(lN,{json:()=>eV});var eV=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],uN={};Oe(uN,{json:()=>tV});var tV=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],cN={};Oe(cN,{json:()=>nV});var nV=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],pN={};Oe(pN,{json:()=>aV});var aV=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}],dN={};Oe(dN,{json:()=>rV});var rV=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}],hN={};Oe(hN,{json:()=>sV});var sV=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],mN={};Oe(mN,{json:()=>iV});var iV=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],fN={};Oe(fN,{json:()=>oV});var oV=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],gN={};Oe(gN,{json:()=>lV});var lV=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],yN={};Oe(yN,{json:()=>uV});var uV=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],bN={};Oe(bN,{json:()=>cV});var cV=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],xN={};Oe(xN,{json:()=>pV});var pV=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}],wN=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[aN,rN,sN,iN,oN,lN,uN,hN,dN,cN,mN,fN,gN,yN,bN,xN,pN],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],c={},u={};t!=null&&(c=this.mapSignatureEntries(t.inputs),u=this.mapSignatureEntries(t.outputs));let p=Object.keys(i);p.forEach(m=>{let f=i[m];f.inputNames.forEach(g=>{let[y]=Sr(g);f.inputs.push(i[y]),i[y].children.push(f)})}),Object.keys(u).length===0?p.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(u).forEach(m=>{let[f]=Sr(m),g=i[f];g!=null&&(g.signatureKey=u[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{let[f]=Sr(m),g=i[f];g&&(g.signatureKey=c[m],o.push(g))}):o=a;let d={};e.library!=null&&e.library.function!=null&&(d=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:d};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=nN(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.substr(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=gv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=gv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Nv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Nv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=bv(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=bv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Iv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Iv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=yv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=yv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=Sv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Sv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=kv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=kv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Tv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Tv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=vv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=wv(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=wv(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=vN(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=vN(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((c,u)=>(c[u.name]=this.mapNode(u),u.op==="Const"&&a.push(c[u.name]),c),{}));let s=[],i=[];e.signature.inputArg.forEach(c=>{let[u]=Sr(c.name),p={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:xv(c.type),type:"dtype"}},children:[]};p.signatureKey=c.name,s.push(p),r[u]=p}),Object.keys(r).forEach(c=>{let u=r[c];u.inputNames.forEach(p=>{let[d]=Sr(p);u.inputs.push(r[d]),r[d].children.push(u)})});let o=e.ret;e.signature.outputArg.forEach(c=>{let[u,p]=Sr(o[c.name]),d=r[u];d!=null&&(d.defaultOutput=p,i.push(d))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function dV(e){let t=ee().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function kN(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):dV(e);return t?n:n.toLowerCase()}function gv(e,t,n,a=!1){let r=e[t];return r!=null?kN(r.s,a):n}function yv(e,t,n){let a=e[t];return a?a.b:n}function bv(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function xv(e){switch(typeof e=="string"&&(e=Ma[e]),e){case Ma.DT_FLOAT:return"float32";case Ma.DT_INT32:case Ma.DT_INT64:case Ma.DT_INT8:case Ma.DT_UINT8:return"int32";case Ma.DT_BOOL:return"bool";case Ma.DT_DOUBLE:return"float32";case Ma.DT_STRING:return"string";default:return null}}function vN(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function vv(e,t,n){let a=e[t];return a&&a.type?xv(a.type):n}function wv(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>xv(r)):n}function IN(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function kv(e,t,n){let a=e[t];return a&&a.shape?IN(a.shape):n}function Iv(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function Nv(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>kN(s,a)):n}function Tv(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>IN(r)):n}function Sv(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var hV=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return Tn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return Tn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return bv(this.node.rawAttrs,e,t);if(n.s!=null)return gv(this.node.rawAttrs,e,t);if(n.b!=null)return yv(this.node.rawAttrs,e,t);if(n.shape!=null)return kv(this.node.rawAttrs,e,t);if(n.type!=null)return vv(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Iv(this.node.rawAttrs,e,t);if(n.list.s!=null)return Nv(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Tv(this.node.rawAttrs,e,t);if(n.list.b!=null)return Sv(this.node.rawAttrs,e,t);if(n.list.type!=null)return wv(this.node.rawAttrs,e,t)}return t}},mV=(e,t,n)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[Z(I("a",e,t,n),I("b",e,t,n))];case"AddN":return[d1(I("tensors",e,t,n))];case"FloorMod":case"Mod":return[mb(I("a",e,t,n),I("b",e,t,n))];case"Mul":return[L(I("a",e,t,n),I("b",e,t,n))];case"RealDiv":case"Div":return[ve(I("a",e,t,n),I("b",e,t,n))];case"DivNoNan":return[rb(I("a",e,t,n),I("b",e,t,n))];case"FloorDiv":return[_h(I("a",e,t,n),I("b",e,t,n))];case"Sub":return[fe(I("a",e,t,n),I("b",e,t,n))];case"Minimum":return[Zl(I("a",e,t,n),I("b",e,t,n))];case"Maximum":return[Za(I("a",e,t,n),I("b",e,t,n))];case"Pow":return[vr(I("a",e,t,n),I("b",e,t,n))];case"SquaredDifference":return[Zh(I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},fV=(e,t,n)=>{switch(e.op){case"Abs":case"ComplexAbs":return[Lt(I("x",e,t,n))];case"Acos":return[Vy(I("x",e,t,n))];case"Acosh":return[Uy(I("x",e,t,n))];case"Asin":return[Hy(I("x",e,t,n))];case"Asinh":return[jy(I("x",e,t,n))];case"Atan":return[qy(I("x",e,t,n))];case"Atan2":return[Ky(I("x",e,t,n),I("y",e,t,n))];case"Atanh":return[Xy(I("x",e,t,n))];case"Ceil":return[Qy(I("x",e,t,n))];case"Complex":return[Kr(I("real",e,t,n),I("imag",e,t,n))];case"Cos":return[jc(I("x",e,t,n))];case"Cosh":return[Dh(I("x",e,t,n))];case"Elu":return[ql(I("x",e,t,n))];case"Erf":return[sb(I("x",e,t,n))];case"Exp":return[dn(I("x",e,t,n))];case"Expm1":return[ib(I("x",e,t,n))];case"Floor":return[Kl(I("x",e,t,n))];case"Log":return[Dn(I("x",e,t,n))];case"Log1p":return[Oh(I("x",e,t,n))];case"Imag":return[Mh(I("x",e,t,n))];case"Neg":return[Tt(I("x",e,t,n))];case"Reciprocal":return[yb(I("x",e,t,n))];case"Real":return[Zc(I("x",e,t,n))];case"Relu":return[Ye(I("x",e,t,n))];case"Round":return[bb(I("x",e,t,n))];case"Selu":return[jh(I("x",e,t,n))];case"Sigmoid":return[da(I("x",e,t,n))];case"Sin":return[qh(I("x",e,t,n))];case"Sign":return[xb(I("x",e,t,n))];case"Sinh":return[Kh(I("x",e,t,n))];case"Softplus":return[Xl(I("x",e,t,n))];case"Sqrt":return[tn(I("x",e,t,n))];case"Square":return[ut(I("x",e,t,n))];case"Tanh":return[jl(I("x",e,t,n))];case"Tan":return[kb(I("x",e,t,n))];case"ClipByValue":return[qt(I("x",e,t,n),I("clipValueMin",e,t,n),I("clipValueMax",e,t,n))];case"Relu6":return[Gh(I("x",e,t,n))];case"Rsqrt":return[Hh(Tn(e.inputNames[0],t,n))];case"Prod":return[Vh(I("x",e,t,n),I("axes",e,t,n))];case"LeakyRelu":return[qc(I("x",e,t,n),I("alpha",e,t,n))];case"Prelu":return[Yc(I("x",e,t,n),I("alpha",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function ba(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){k.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function NN(e){return!(typeof e=="number"||e.some(t=>t<0))}function vp(e,t,n){let a=Cv(e,n),r=!NN(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=Cv(s.shape,a)}),!NN(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function Cv(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var gV=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=de(0),jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),ba(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,dt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];D(()=>{t=j(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ya(t,r.shape,"TensorList shape mismatch: "),jt(r)}),this.idTensor=de(0),this.maxNumElements=a,jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new vp([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);return ya(e,this.elementShape,"TensorList shape mismatch: "),D(()=>{let a=this.tensors.map(r=>j(r,e));return $t(a,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=this.tensors.pop();return ya(n.shape,e,"TensorList shape mismatch: "),j(n,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ya(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return ya(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ya(this.elementShape,t.shape,"TensorList shape mismatch: "),jt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return ya(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?Kn([],[0].concat(this.elementShape)):D(()=>{let a=e.map(r=>j(this.tensors[r],n));return $t(a,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return ya(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?Kn([],[0].concat(this.elementShape)):D(()=>{let n=this.tensors.map(a=>j(a,t));return Qe(n,0)})}};function dV(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ya(r,t,"TensorList shape mismatch: ");let s=dt(e);return new vp(s,t,a)}function hV(e,t,n){return new vp([],e,t,n)}function mV(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new vp([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function fV(e,t,n){let a=0,r=t.map(l=>(a+=l,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];D(()=>{t=H(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);ba(t,r.shape,"TensorList shape mismatch: "),jt(r)}),this.idTensor=de(0),this.maxNumElements=a,jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new wp([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);ba(e,this.elementShape,"TensorList shape mismatch: ");let a=vp(this.elementShape,this.tensors,e);return D(()=>{let r=this.tensors.map(s=>H(s,a));return $t(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=vp(this.elementShape,this.tensors,e),a=this.tensors.pop();return ba(a.shape,e,"TensorList shape mismatch: "),H(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(ba(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,n){if(n!==this.elementDtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);ba(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=vp(this.elementShape,this.tensors,t);return H(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);ba(this.elementShape,t.shape,"TensorList shape mismatch: "),jt(t),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);ba(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=vp(this.elementShape,this.tensors,n);return e.length===0?Kn([],[0].concat(a)):D(()=>{let r=e.map(s=>H(this.tensors[s],a));return $t(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);ba(this.elementShape,t,"TensorList shape mismatch: ");let n=vp(this.elementShape,this.tensors,t);return this.size()===0?Kn([],[0].concat(n)):D(()=>{let a=this.tensors.map(r=>H(r,n));return Qe(a,0)})}};function yV(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);ba(r,t,"TensorList shape mismatch: ");let s=dt(e);return new wp(s,t,a)}function bV(e,t,n){return new wp([],e,t,n)}function xV(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new wp([],n,e.dtype,a),i=dt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function vV(e,t,n){let a=0,r=t.map(u=>(a+=u,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=a===0?0:e.size/a,i=D(()=>{let l=[];e=j(e,[1,a,s]);for(let c=0;c{switch(e.op){case"If":case"StatelessIf":{let a=I("thenBranch",e,t,n),r=I("elseBranch",e,t,n),s=I("cond",e,t,n),i=I("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=I("body",e,t,n),r=I("cond",e,t,n),s=I("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(u=>u.id),l=await i[0].data();i.forEach(u=>{!u.kept&&o.indexOf(u.id)===-1&&u.dispose()});let c=s;for(;l[0];){let u=c;c=await n.functionMap[a].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);let p=c.map(h=>h.id);u.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return c}case"LoopCond":{let a=I("pred",e,t,n);return[Sr(a)]}case"Switch":{let a=I("pred",e,t,n),r=I("data",e,t,n);return r.kept||(r=Sr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Tn(r,t,n)!==void 0);if(a){let r=Tn(a,t,n);return[Sr(r)]}return}case"Enter":{let a=I("frameName",e,t,n),r=I("tensor",e,t,n);return n.enterFrame(a),[Sr(r)]}case"Exit":{let a=I("tensor",e,t,n);return n.exitFrame(),[Sr(a)]}case"NextIteration":{let a=I("tensor",e,t,n);return n.nextIteration(),[Sr(a)]}case"TensorArrayV3":{let a=I("size",e,t,n),r=I("dtype",e,t,n),s=I("elementShape",e,t,n),i=I("dynamicSize",e,t,n),o=I("clearAfterRead",e,t,n),l=I("identicalElementShapes",e,t,n),c=I("name",e,t,n),u=new pV(c,r,a,s,l,i,o);return n.addTensorArray(u),[u.idTensor,de(1)]}case"TensorArrayWriteV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=I("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=I("tensorArrayId",e,t,n),r=I("tensor",e,t,n),s=I("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[de(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=I("indices",e,t,n),r=I("tensor",e,t,n),s=I("elementShape",e,t,n),i=I("numElements",e,t,n),o=mV(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=I("elementShape",e,t,n),r=I("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=I(s,e,t,n),o=hV(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=I("tensorListId",e,t,n),r=I("indices",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=I("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=dV(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=I("tensorListId",e,t,n),r=n.getTensorList(a.id),s=I("dtype",e,t,n),i=I("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=I("tensorListId",e,t,n),r=I("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("lengths",e,t,n),i=fV(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function xN(e,t,n){let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=I("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let c=I("strides",e,t,n),u=Gm(e,t,n),p=I("dataFormat",e,t,n).toUpperCase(),d=I("dilations",e,t,n),[h,m]=I("args",e,t,n),f=I("leakyreluAlpha",e,t,n);return{stride:c,pad:u,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var yV=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=I("stride",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilation",e,t,n);return[_h(I("x",e,t,n),I("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=I("strides",e,t,n),r=Gm(e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[At(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=xN(e,t,n);return[rs.conv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=xN(e,t,n);return[rs.depthwiseConv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=I("outputShape",e,t,n),r=I("strides",e,t,n),s=Gm(e,t,n);return[Eh(I("x",e,t,n),I("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=I("strides",e,t,n),r=Gm(e,t,n),s=I("dilations",e,t,n),i=I("dataFormat",e,t,n).toUpperCase();return[es(I("input",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[Jy(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Yn(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Ft(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n),i=I("includeBatchInIndex",e,t,n),{result:o,indexes:l}=$1(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Xy(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[ub(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dilations",e,t,n),i=a[1],o=a[2],l=s[1],c=s[2];return[eb(I("x",e,t,n),I("filter",e,t,n),[i,o],r,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},bV=(e,t,n)=>{switch(e.op){case"Fill":{let a=I("shape",e,t,n),r=I("dtype",e,t,n),s=I("value",e,t,n);return[kn(a,s,r)]}case"LinSpace":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("num",e,t,n);return[T1(a,r,s)]}case"Multinomial":{let a=I("logits",e,t,n),r=I("numSamples",e,t,n),s=I("seed",e,t,n);return[D1(a,r,s)]}case"OneHot":{let a=I("indices",e,t,n),r=I("depth",e,t,n),s=I("onValue",e,t,n),i=I("offValue",e,t,n);return[Ul(a,r,s,i)]}case"Ones":return[Za(I("shape",e,t,n),I("dtype",e,t,n))];case"OnesLike":return[Dn(I("x",e,t,n))];case"RandomUniform":return[Jl(I("shape",e,t,n),I("minval",e,t,n),I("maxval",e,t,n),I("dtype",e,t,n))];case"Range":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("step",e,t,n);return[Bh(a,r,s,I("dtype",e,t,n))]}case"TruncatedNormal":{let a=I("shape",e,t,n),r=I("mean",e,t,n),s=I("stdDev",e,t,n),i=I("seed",e,t,n);return[Xh(a,r,s,I("dtype",e,t,n),i)]}case"Zeros":return[vt(I("shape",e,t,n),I("dtype",e,t,n))];case"ZerosLike":return[Ge(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Nv(e,t,n){let a=I("boxes",e,t,n),r=I("scores",e,t,n),s=I("maxOutputSize",e,t,n),i=I("iouThreshold",e,t,n),o=I("scoreThreshold",e,t,n),l=I("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var xV=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=Nv(e,t,n),c=await Ja.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=Nv(e,t,n),l=I("padToMaxOutputSize",e,t,n),c=await Ja.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=Nv(e,t,n);return[await Ja.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ce(I("condition",e,t,n),"bool"),r=[await kb(a)];return a.dispose(),r}case"ListDiff":return P1(I("x",e,t,n),I("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},vV=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=I("x",e,t,n),r=I("k",e,t,n),s=I("sorted",e,t,n),i=vb(a,r,s);return[i.values,i.indices]}case"Unique":{let a=I("x",e,t,n),r=Yh(a);return[r.values,r.indices]}case"UniqueV2":{let a=I("x",e,t,n),r=I("axis",e,t,n),s=Yh(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},wV=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=I("default",e,t,n);return[Tn(e.name,t,n)||a];case"Placeholder":return[Tn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=I("x",e,t,n);return[Sr(c)]}case"IdentityN":return I("x",e,t,n).map(c=>Sr(c));case"Snapshot":let r=I("x",e,t,n);return[Sr(r)];case"Shape":return[nt(I("x",e,t,n).shape,"int32")];case"ShapeN":return I("x",e,t,n).map(c=>nt(c.shape));case"Size":return[de(I("x",e,t,n).size,"int32")];case"Rank":return[de(I("x",e,t,n).rank,"int32")];case"NoOp":return[de(1)];case"Print":let s=I("x",e,t,n),i=I("data",e,t,n),o=I("message",e,t,n),l=I("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let c=0;ce.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),D(()=>{let a=dt(t),r=n.length,s=a.length;k.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=I("keyDType",e,t,n),s=I("valueDType",e,t,n),i=new kV(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},NV=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Ja.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Ja.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=I("image",e,t,n),r=I("boxes",e,t,n),s=I("boxInd",e,t,n),i=I("cropSize",e,t,n),o=I("method",e,t,n),l=I("extrapolationValue",e,t,n);return[Ja.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},TV=(e,t,n)=>{switch(e.op){case"Equal":return[ts(I("a",e,t,n),I("b",e,t,n))];case"NotEqual":return[Ri(I("a",e,t,n),I("b",e,t,n))];case"Greater":return[da(I("a",e,t,n),I("b",e,t,n))];case"GreaterEqual":return[ns(I("a",e,t,n),I("b",e,t,n))];case"Less":return[Dh(I("a",e,t,n),I("b",e,t,n))];case"LessEqual":return[$i(I("a",e,t,n),I("b",e,t,n))];case"LogicalAnd":return[ha(I("a",e,t,n),I("b",e,t,n))];case"LogicalNot":return[Kc(I("a",e,t,n))];case"LogicalOr":return[Oh(I("a",e,t,n),I("b",e,t,n))];case"Select":case"SelectV2":return[wn(I("condition",e,t,n),I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},SV=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(I("a",e,t,n),I("b",e,t,n),I("transposeA",e,t,n),I("transposeB",e,t,n))];case"Transpose":return[Ue(I("x",e,t,n),I("perm",e,t,n))];case"_FusedMatMul":let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=I("numArgs",e,t,n),l=I("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,u]=I("args",e,t,n);return[rs.matMul({a:I("a",e,t,n),b:I("b",e,t,n),transposeA:I("transposeA",e,t,n),transposeB:I("transposeB",e,t,n),bias:c,activation:r,preluActivationWeights:u,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},CV=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[br(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"FusedBatchNormV3":return[br(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"LRN":return[sb(I("x",e,t,n),I("radius",e,t,n),I("bias",e,t,n),I("alpha",e,t,n),I("beta",e,t,n))];case"Softmax":return[Ta(I("x",e,t,n))];case"LogSoftmax":return[Ph(I("x",e,t,n))];case"SparseToDense":return[Ib(I("sparseIndices",e,t,n),I("outputShape",e,t,n),I("sparseValues",e,t,n),I("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},_V=(e,t,n)=>{switch(e.op){case"Max":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Zn(I("x",e,t,n),i,o)]}case"Mean":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[St(I("x",e,t,n),i,o)]}case"Min":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Yl(I("x",e,t,n),i,o)]}case"Sum":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Te(I("x",e,t,n),i,o)]}case"All":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Sh(I("x",e,t,n),i,o)]}case"Any":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Wc(I("x",e,t,n),i,o)]}case"ArgMax":{let i=I("axis",e,t,n);return[Vc(I("x",e,t,n),i)]}case"ArgMin":{let i=I("axis",e,t,n);return[Wy(I("x",e,t,n),i)]}case"Prod":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[zh(I("x",e,t,n),i,o)]}case"Cumsum":{let i=I("axis",e,t,n),o=I("exclusive",e,t,n),l=I("reverse",e,t,n);return[Fh(I("x",e,t,n),i,o,l)]}case"Bincount":let a=I("x",e,t,n),r=I("weights",e,t,n),s=I("size",e,t,n);return[m1(a,r,s)];case"DenseBincount":{let i=I("x",e,t,n),o=I("weights",e,t,n),l=I("size",e,t,n),c=I("binaryOutput",e,t,n);return[v1(i,o,l,c)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},EV=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=I("n",e,t,n),r=I("axis",e,t,n),s=I("tensors",e,t,n);return s=s.slice(0,a),[Qe(s,r)]}case"Gather":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[Fi(a,ce(r,"int32"),0)]}case"GatherV2":{let a=I("axis",e,t,n),r=I("batchDims",e,t,n),s=I("x",e,t,n),i=I("indices",e,t,n);return[Fi(s,ce(i,"int32"),a,r)]}case"Reverse":{let a=I("dims",e,t,n),r=[];for(let i=0;i{let a=I("axis",e,t,n),r=I("tensors",e,t,n),s=r[0].shape,i=as(r[0]).shape,o=r.map(l=>{let c=k.arraysEqual(l.shape,s);if(!c&&!k.arraysEqual(as(l).shape,i))throw new Error("the input tensors shape does not match");return c?l:j(l,s)});return[$t(o,a)]});case"Unpack":{let a=I("axis",e,t,n),r=I("tensor",e,t,n);return dt(r,a)}case"Tile":{let a=I("reps",e,t,n);return[Ka(I("x",e,t,n),a)]}case"Split":case"SplitV":{let a=I("axis",e,t,n),r=I("numOrSizeSplits",e,t,n),s=I("x",e,t,n);return Mn(s,r,a)}case"ScatterNd":{let a=I("indices",e,t,n),r=I("values",e,t,n),s=I("shape",e,t,n);return[B1(a,r,s)]}case"GatherNd":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[W1(a,r)]}case"SparseToDense":{let a=I("sparseIndices",e,t,n),r=I("outputShape",e,t,n),s=I("sparseValues",e,t,n),i=I("defaultValue",e,t,n);return[Ib(a,s,r,s.dtype===i.dtype?i:ce(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},AV=(e,t,n)=>{switch(e.op){case"FFT":return[Qc(I("x",e,t,n))];case"IFFT":return[eu(I("x",e,t,n))];case"RFFT":return[ep(I("x",e,t,n))];case"IRFFT":return[qh(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},FV=(e,t,n)=>{switch(e.op){case"Cast":return[ce(I("x",e,t,n),I("dtype",e,t,n))];case"ExpandDims":{let a=I("axis",e,t,n);return[Fn(I("x",e,t,n),a)]}case"Squeeze":{let a=I("axis",e,t,n);return[as(I("x",e,t,n),a)]}case"Reshape":return[j(I("x",e,t,n),I("shape",e,t,n))];case"MirrorPad":return[cb(I("x",e,t,n),I("padding",e,t,n),I("mode",e,t,n))];case"PadV2":case"Pad":return[Jn(I("x",e,t,n),I("padding",e,t,n),I("constantValue",e,t,n))];case"SpaceToBatchND":{let a=I("blockShape",e,t,n),r=I("paddings",e,t,n);return[Xc(I("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=I("blockShape",e,t,n),r=I("crops",e,t,n);return[Gc(I("x",e,t,n),a,r)]}case"DepthToSpace":{let a=I("blockSize",e,t,n),r=I("dataFormat",e,t,n).toUpperCase();return[Qy(I("x",e,t,n),a,r)]}case"BroadcastTo":return[Hc(I("x",e,t,n),I("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function vN(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return D(()=>lV(s,i,o));case"basic_math":return D(()=>uV(s,i,o));case"control":return gV(s,i,o);case"convolution":return D(()=>yV(s,i,o));case"creation":return D(()=>bV(s,i,o));case"dynamic":return xV(s,i,o);case"evaluation":return D(()=>vV(s,i,o));case"image":return D(()=>NV(s,i,o));case"graph":return D(()=>wV(s,i,o));case"logical":return D(()=>TV(s,i,o));case"matrices":return D(()=>SV(s,i,o));case"normalization":return D(()=>CV(s,i,o));case"reduction":return D(()=>_V(s,i,o));case"slice_join":return D(()=>EV(s,i,o));case"spectral":return D(()=>AV(s,i,o));case"transformation":return D(()=>FV(s,i,o));case"hash_table":return IV(s,i,o,a);case"custom":let l=ZI(s.op);if(l&&l.customExecutor)return l.customExecutor(new oV(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return k.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var wN=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function IN(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,c=Object.keys(e).map(d=>On(d)[0]),u=[];a!=null&&(u=a.map(d=>On(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((kN(d)||$V(d)||DV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&c.indexOf(d.name)===-1&&u.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function RV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(u=>On(u)[0]).map(u=>e.nodes[u]),o=e.initNodes;i.forEach(u=>{a.has(u.name)&&s.push(u)}),e.weights.forEach(u=>{a.has(u.name)&&s.push(u)}),o!=null&&o.forEach(u=>{a.has(u.name)&&s.push(u)});let l=new Set,c=[];for(;s.length>0;){let u=s.pop();l.add(u.name),t[u.name]||c.push(u),u.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return c}var MV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],PV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],OV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function kN(e){return MV.indexOf(e.op)>=0}function $V(e){return PV.indexOf(e.op)>=0}function DV(e){return OV.indexOf(e.op)>=0}var Tv=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new Tv(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=IN(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return RV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(u=>this.graph.nodes[On(u)[0]]),r=t.map(u=>On(u)[0]),s=r.map(u=>this.graph.nodes[u]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},c={};return D(()=>{let u=new wN(this.weightMap,l,c,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=On(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mTn(m,p,u))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=V4(o.name,n,a);l!=null&&l.forEach(c=>{if(c&&!r.has(c.id)){let u=i[c.id];u===1?(c.dispose(),delete i[c.id]):u!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new wN(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>Tn(p,i,s)),l=o.map(p=>p.id),c=Object.keys(e).map(p=>e[p].id),u=new Set([...l,...c,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!u.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(u),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[On(b)[0]]),i=n.map(b=>On(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:u,syncInputs:p}=IN(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[v,x]=On(b),N=[];N[x]=e[b],h[v]=N});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}u==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!kN(b)&&!Tn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw u!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let c=[];for(;t.length>0;){let u=t.pop();n.currentContext=u.contexts;let p="";if(u.node.op==="Enter"&&I("isConstant",u.node,a,n)&&([p]=Tr(u.node.name,n)),a[u.node.name]==null){let d=vN(u.node,a,n,this._resourceManager);p||([p]=Tr(u.node.name,n));let h=n.currentContext;k.isPromise(d)?c.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l))}else this.processChildNodes(u.node,t,n,a,r,l)}return c}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Tr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Tn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Tn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=On(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);k.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&k.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=On(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=On(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},LV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},zV="?tfjs-format=file",BV="model.json",NN=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new LV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ht.browserHTTPRequest(e,this.loadOptions);else{let t=Ht.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ht.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=Ht.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Tv(gN.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=gN.Instance.transformGraph(e.modelInitializer);this.initializer=new Tv(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=Ht.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ae)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function WV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${BV}${zV}`);let n=new NN(e,t);return await n.load(),n}var TN="3.0.0",SN={};Oe(SN,{CSVDataset:()=>_N,Dataset:()=>cu,FileDataSource:()=>EN,TextLineDataset:()=>CN,URLDataSource:()=>AN,array:()=>VV,csv:()=>GV,func:()=>HV,generator:()=>jV,microphone:()=>KV,version_data:()=>FN,webcam:()=>qV,zip:()=>UV});var XV=Ro(Ad()),YV=Ro(Ad());function ZV(e,t){return Hm(e,t)}function Hm(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(pu(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Hm(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function JV(e,t=DN){return $N(e,t)}function $N(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(pu(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(c=>c[i]),l=$N(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function DN(e){return e===null?null:pu(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function RN(e,t){let n=new Map;Hm(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(k.isPromise(r)){let s=await r;n.set(a,s)}}return Hm(e,t,n)}function pu(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ae))}function eU(e){return e==null||QV(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ae||k.isTypedArray(e)}function QV(e){return e===null||typeof e!="object"&&typeof e!="function"}function nU(e){return ZV(e,tU)}function tU(e){return e instanceof Ae?{value:e.clone(),recurse:!1}:pu(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var MN=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},Sv=class extends MN{constructor(){super(Sv.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new pU(this,e,t)}columnMajorBatch(e,t=!0,n=DN){return this.rowMajorBatch(e,t).map(a=>JV(a,n))}concatenate(e,t){return new ON(PN([this,e]),t)}take(e){return e<0||e==null?this:new cU(this,e)}skip(e){return e<0||e==null?this:new uU(this,e)}prefetch(e){return new zN(this,e)}shuffle(e,t){return new gU(this,e,t)}serial(){return new lU(this)}},aU=class extends Yt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:nU(e),done:!1}}},rU=class extends Yt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},lU=class extends Yt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},uU=class extends Yt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},pU=class extends Yt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},dU=class extends Yt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Fe(e.value)}}},hU=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Na.getTensorsInContainer(e.value),n=this.transform(e.value),a=Na.getTensorsInContainer(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},mU=class extends Yt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},LN=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Na.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Na.getTensorsInContainer(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},_v=class extends Yt{constructor(){super();this.outputQueue=new Sv,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},fU=class extends _v{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Na.getTensorsInContainer(e.value),n=this.transform(e.value),a=Na.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Na.isTensorInList(r,a)||r.dispose();return!0}},ON=class extends Yt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ds;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ds||(ds={}));var iU=class extends Yt{constructor(e,t=ds.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Yt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await RN(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ds.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ds.SHORTEST:return{value:null,done:!0};case ds.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},zN=class extends Yt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new MN(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},gU=class extends zN{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=YV.alea(n||k.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},cu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;k.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Ln(async()=>(await n.iterator()).columnMajorBatch(e,t,yU),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Ln(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,Ln(async()=>(await t.iterator()).filter(a=>D(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Ln(async()=>(await t.iterator()).map(n=>D(()=>e(n))),this.size)}mapAsync(e){let t=this;return Ln(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Ln(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=Infinity:n=null,Ln(async()=>{let a=Cv(async()=>({value:await t.iterator(),done:!1}));return sU(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=XV.alea(t||k.now().toString());return Ln(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Ln(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};cu.MAX_BUFFER_SIZE=1e4;function Ln(e,t=null){return new class extends cu{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function VV(e){return Ln(async()=>PN(e),e.length)}function UV(e){if(!pu(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await RN(e,a=>{if(a instanceof cu)return{value:a.iterator(),recurse:!1};if(pu(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return oU(n,ds.SHORTEST)},t)}function yU(e){if(e===null)return null;let t=e[0];return eU(t)?{value:bU(e),recurse:!1}:{value:null,recurse:!0}}function bU(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ae?$t(e):Kn(e)}var CN=class extends cu{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},jm='"',wp=Symbol("out"),BN=Symbol("field"),qm=Symbol("quote"),Ev=Symbol("quoteafterquote"),WN=Symbol("quoteinquote"),_N=class extends cu{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new CN(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(k.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&k.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(k.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ee().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new VN(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(k.sizeFromShape(t));return n.set(e,n.length-e.length),Kn(n,t)}},UN=class extends Yt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=nt([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Sa([s,r,o,i],[1,4])}else this.cropBox=Sa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ee().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new UN(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&k.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=_i.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return D(()=>{let t=Fn(ce(e,"float32"),0),n;n=Ja.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return j(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},GN=class{},HN=class extends Yt{split(e){return new xU(this,e)}},xU=class extends HN{constructor(e,t){super();this.upstream=e,this.impl=new vU(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},vU=class extends _v{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},kU=class extends Yt{decodeUTF8(){return new wU(this)}},wU=class extends HN{constructor(e){super();this.upstream=e,this.impl=new IU(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},IU=class extends _v{constructor(e){super();if(this.upstream=e,ee().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=HE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return ee().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},jN=class extends kU{constructor(e,t={}){super();this.file=e,this.options=t,k.assert(e instanceof Uint8Array||(ee().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function TU(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=NU(e));let r=await k.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new jN(s,t)}else throw new Error(r.statusText)}var NU=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function qN(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var EN=class extends GN{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(qN(this.input)&&ee().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new jN(this.input,this.options)}},AN=class extends GN{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return qN(this.url)?new EN(this.url,this.fileOptions).iterator():TU(this.url,this.fileOptions)}};function GV(e,t={}){return new _N(new AN(e),t)}function HV(e){let t=Cv(e);return Ln(async()=>t)}function jV(e){return Ln(async()=>{let t=await e();return Cv(()=>t.next())})}async function qV(e,t){return UN.create(e,t)}async function KV(e){return VN.create(e)}var FN="3.0.0";function we(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var SU=Qa.whereImpl,CU=class extends dc{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Fd(this,Jr())}write(e,t,n){this.firstUse&&(this.firstUse=!1,ee().get("IS_NODE")&&_.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=Cv(s,n),o=a===0?0:e.size/a,l=D(()=>{let u=[];e=H(e,[1,a,o]);for(let p=0;p{switch(e.op){case"If":case"StatelessIf":{let a=I("thenBranch",e,t,n),r=I("elseBranch",e,t,n),s=I("cond",e,t,n),i=I("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=I("body",e,t,n),r=I("cond",e,t,n),s=I("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(u=>u.id),l=await i[0].data();i.forEach(u=>{!u.kept&&o.indexOf(u.id)===-1&&u.dispose()});let c=s;for(;l[0];){let u=c;c=await n.functionMap[a].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);let p=c.map(h=>h.id);u.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()});let d=await n.functionMap[r].executeFunctionAsync(c,n.tensorArrayMap,n.tensorListMap);l=await d[0].data(),d.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&p.indexOf(h.id)===-1&&h.dispose()})}return c}case"LoopCond":{let a=I("pred",e,t,n);return[Cr(a)]}case"Switch":{let a=I("pred",e,t,n),r=I("data",e,t,n);return r.kept||(r=Cr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>Tn(r,t,n)!==void 0);if(a){let r=Tn(a,t,n);return[Cr(r)]}return}case"Enter":{let a=I("frameName",e,t,n),r=I("tensor",e,t,n);return n.enterFrame(a),[Cr(r)]}case"Exit":{let a=I("tensor",e,t,n);return n.exitFrame(),[Cr(a)]}case"NextIteration":{let a=I("tensor",e,t,n);return n.nextIteration(),[Cr(a)]}case"TensorArrayV3":{let a=I("size",e,t,n),r=I("dtype",e,t,n),s=I("elementShape",e,t,n),i=I("dynamicSize",e,t,n),o=I("clearAfterRead",e,t,n),l=I("identicalElementShapes",e,t,n),c=I("name",e,t,n),u=new gV(c,r,a,s,l,i,o);return n.addTensorArray(u),[u.idTensor,de(1)]}case"TensorArrayWriteV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=I("tensorArrayId",e,t,n),r=I("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=I("tensorArrayId",e,t,n),r=I("indices",e,t,n),s=I("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=I("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=I("tensorArrayId",e,t,n),r=I("tensor",e,t,n),s=I("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[de(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=I("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=I("tensorListId",e,t,n),r=I("index",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=I("indices",e,t,n),r=I("tensor",e,t,n),s=I("elementShape",e,t,n),i=I("numElements",e,t,n),o=xV(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=I("elementShape",e,t,n),r=I("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=I(s,e,t,n),o=bV(a,r,i);return n.addTensorList(o),[o.idTensor]}case"TensorListGather":{let a=I("tensorListId",e,t,n),r=I("indices",e,t,n),s=I("elementShape",e,t,n),i=I("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=I("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n),i=yV(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":{let a=I("tensorListId",e,t,n),r=n.getTensorList(a.id),s=I("dtype",e,t,n),i=I("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=I("tensorListId",e,t,n),r=I("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=I("tensorListId",e,t,n),r=I("elementShape",e,t,n),s=I("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=I("tensor",e,t,n),r=I("elementShape",e,t,n),s=I("lengths",e,t,n),i=vV(a,s,r);return n.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function TN(e,t,n){let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=a==="fusedbatchnorm",l=I("numArgs",e,t,n);if(s){if(i&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(o)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let c=I("strides",e,t,n),u=qm(e,t,n),p=I("dataFormat",e,t,n).toUpperCase(),d=I("dilations",e,t,n),[h,m]=I("args",e,t,n),f=I("leakyreluAlpha",e,t,n);return{stride:c,pad:u,dataFormat:p,dilations:d,biasArg:h,preluArg:m,activationFunc:r,leakyreluAlpha:f}}var kV=(e,t,n)=>{switch(e.op){case"Conv1D":{let a=I("stride",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilation",e,t,n);return[Fh(I("x",e,t,n),I("filter",e,t,n),a,r,s,i)]}case"Conv2D":{let a=I("strides",e,t,n),r=qm(e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[At(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,s,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=TN(e,t,n);return[rs.conv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"FusedDepthwiseConv2dNative":{let{stride:a,pad:r,dataFormat:s,dilations:i,biasArg:o,preluArg:l,activationFunc:c,leakyreluAlpha:u}=TN(e,t,n);return[rs.depthwiseConv2d({x:I("x",e,t,n),filter:I("filter",e,t,n),strides:[a[1],a[2]],pad:r,dataFormat:s,dilations:[i[1],i[2]],bias:o,activation:c,preluActivationWeights:l,leakyreluAlpha:u})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let a=I("outputShape",e,t,n),r=I("strides",e,t,n),s=qm(e,t,n);return[$h(I("x",e,t,n),I("filter",e,t,n),a,[r[1],r[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let a=I("strides",e,t,n),r=qm(e,t,n),s=I("dilations",e,t,n),i=I("dataFormat",e,t,n).toUpperCase();return[es(I("input",e,t,n),I("filter",e,t,n),[a[1],a[2]],r,i,[s[1],s[2]])]}case"Conv3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dataFormat",e,t,n).toUpperCase(),i=I("dilations",e,t,n);return[tb(I("x",e,t,n),I("filter",e,t,n),[a[1],a[2],a[3]],r,s,[i[1],i[2],i[3]])]}case"AvgPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Yn(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPool":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Ft(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r)]}case"MaxPoolWithArgmax":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n),i=I("includeBatchInIndex",e,t,n),{result:o,indexes:l}=O1(I("x",e,t,n),[s[1],s[2]],[a[1],a[2]],r,i);return[o,l]}case"AvgPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[Jy(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"MaxPool3D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("kernelSize",e,t,n);return[db(I("x",e,t,n),[s[1],s[2],s[3]],[a[1],a[2],a[3]],r)]}case"Dilation2D":{let a=I("strides",e,t,n),r=I("pad",e,t,n),s=I("dilations",e,t,n),i=a[1],o=a[2],l=s[1],c=s[2];return[ab(I("x",e,t,n),I("filter",e,t,n),[i,o],r,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},IV=(e,t,n)=>{switch(e.op){case"Fill":{let a=I("shape",e,t,n),r=I("dtype",e,t,n),s=I("value",e,t,n);return[kn(a,s,r)]}case"LinSpace":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("num",e,t,n);return[A1(a,r,s)]}case"Multinomial":{let a=I("logits",e,t,n),r=I("numSamples",e,t,n),s=I("seed",e,t,n);return[L1(a,r,s)]}case"OneHot":{let a=I("indices",e,t,n),r=I("depth",e,t,n),s=I("onValue",e,t,n),i=I("offValue",e,t,n);return[Ul(a,r,s,i)]}case"Ones":return[Ja(I("shape",e,t,n),I("dtype",e,t,n))];case"OnesLike":return[Rn(I("x",e,t,n))];case"RandomUniform":return[Jl(I("shape",e,t,n),I("minval",e,t,n),I("maxval",e,t,n),I("dtype",e,t,n))];case"Range":{let a=I("start",e,t,n),r=I("stop",e,t,n),s=I("step",e,t,n);return[Uh(a,r,s,I("dtype",e,t,n))]}case"TruncatedNormal":{let a=I("shape",e,t,n),r=I("mean",e,t,n),s=I("stdDev",e,t,n),i=I("seed",e,t,n);return[Jh(a,r,s,I("dtype",e,t,n),i)]}case"Zeros":return[vt(I("shape",e,t,n),I("dtype",e,t,n))];case"ZerosLike":return[Ge(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function _v(e,t,n){let a=I("boxes",e,t,n),r=I("scores",e,t,n),s=I("maxOutputSize",e,t,n),i=I("iouThreshold",e,t,n),o=I("scoreThreshold",e,t,n),l=I("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var NV=async(e,t,n)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}=_v(e,t,n),c=await Qa.nonMaxSuppressionWithScoreAsync(a,r,s,i,o,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=_v(e,t,n),l=I("padToMaxOutputSize",e,t,n),c=await Qa.nonMaxSuppressionPaddedAsync(a,r,s,i,o,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o}=_v(e,t,n);return[await Qa.nonMaxSuppressionAsync(a,r,s,i,o)]}case"Where":{let a=ce(I("condition",e,t,n),"bool"),r=[await Tb(a)];return a.dispose(),r}case"ListDiff":return W1(I("x",e,t,n),I("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},TV=(e,t,n)=>{switch(e.op){case"TopKV2":{let a=I("x",e,t,n),r=I("k",e,t,n),s=I("sorted",e,t,n),i=Ib(a,r,s);return[i.values,i.indices]}case"Unique":{let a=I("x",e,t,n),r=Qh(a);return[r.values,r.indices]}case"UniqueV2":{let a=I("x",e,t,n),r=I("axis",e,t,n),s=Qh(a,r);return[s.values,s.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},SV=(e,t,n)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let a=I("default",e,t,n);return[Tn(e.name,t,n)||a];case"Placeholder":return[Tn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=I("x",e,t,n);return[Cr(c)]}case"IdentityN":return I("x",e,t,n).map(c=>Cr(c));case"Snapshot":let r=I("x",e,t,n);return[Cr(r)];case"Shape":return[nt(I("x",e,t,n).shape,"int32")];case"ShapeN":return I("x",e,t,n).map(c=>nt(c.shape));case"Size":return[de(I("x",e,t,n).size,"int32")];case"Rank":return[de(I("x",e,t,n).rank,"int32")];case"NoOp":return[de(1)];case"Print":let s=I("x",e,t,n),i=I("data",e,t,n),o=I("message",e,t,n),l=I("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(o);for(let c=0;ce.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),D(()=>{let a=dt(t),r=n.length,s=a.length;k.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=I("keyDType",e,t,n),s=I("valueDType",e,t,n),i=new CV(r,s);return a.addHashTable(e.name,i),[i.handle]}case"LookupTableImport":case"LookupTableImportV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=I("tableHandle",e,t,n,a),s=I("keys",e,t,n),i=I("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},EV=(e,t,n)=>{switch(e.op){case"ResizeBilinear":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Qa.resizeBilinear(a,[r[0],r[1]],s,i)]}case"ResizeNearestNeighbor":{let a=I("images",e,t,n),r=I("size",e,t,n),s=I("alignCorners",e,t,n),i=I("halfPixelCenters",e,t,n);return[Qa.resizeNearestNeighbor(a,[r[0],r[1]],s,i)]}case"CropAndResize":{let a=I("image",e,t,n),r=I("boxes",e,t,n),s=I("boxInd",e,t,n),i=I("cropSize",e,t,n),o=I("method",e,t,n),l=I("extrapolationValue",e,t,n);return[Qa.cropAndResize(a,r,s,i,o,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},AV=(e,t,n)=>{switch(e.op){case"Equal":return[ts(I("a",e,t,n),I("b",e,t,n))];case"NotEqual":return[Pi(I("a",e,t,n),I("b",e,t,n))];case"Greater":return[ha(I("a",e,t,n),I("b",e,t,n))];case"GreaterEqual":return[ns(I("a",e,t,n),I("b",e,t,n))];case"Less":return[Ph(I("a",e,t,n),I("b",e,t,n))];case"LessEqual":return[Ri(I("a",e,t,n),I("b",e,t,n))];case"LogicalAnd":return[ma(I("a",e,t,n),I("b",e,t,n))];case"LogicalNot":return[Kc(I("a",e,t,n))];case"LogicalOr":return[Bh(I("a",e,t,n),I("b",e,t,n))];case"Select":case"SelectV2":return[wn(I("condition",e,t,n),I("a",e,t,n),I("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},FV=(e,t,n)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[ze(I("a",e,t,n),I("b",e,t,n),I("transposeA",e,t,n),I("transposeB",e,t,n))];case"Transpose":return[Ue(I("x",e,t,n),I("perm",e,t,n))];case"_FusedMatMul":let[a,r]=I("fusedOps",e,t,n),s=a==="biasadd",i=r==="prelu",o=I("numArgs",e,t,n),l=I("leakyreluAlpha",e,t,n);if(s){if(i&&o!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&o!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,u]=I("args",e,t,n);return[rs.matMul({a:I("a",e,t,n),b:I("b",e,t,n),transposeA:I("transposeA",e,t,n),transposeB:I("transposeB",e,t,n),bias:c,activation:r,preluActivationWeights:u,leakyreluAlpha:l})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},$V=(e,t,n)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[xr(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"FusedBatchNormV3":return[xr(I("x",e,t,n),I("mean",e,t,n),I("variance",e,t,n),I("offset",e,t,n),I("scale",e,t,n),I("epsilon",e,t,n))];case"LRN":return[lb(I("x",e,t,n),I("radius",e,t,n),I("bias",e,t,n),I("alpha",e,t,n),I("beta",e,t,n))];case"Softmax":return[Sa(I("x",e,t,n))];case"LogSoftmax":return[zh(I("x",e,t,n))];case"SparseToDense":return[Sb(I("sparseIndices",e,t,n),I("outputShape",e,t,n),I("sparseValues",e,t,n),I("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},DV=(e,t,n)=>{switch(e.op){case"Max":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Zn(I("x",e,t,n),i,o)]}case"Mean":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[St(I("x",e,t,n),i,o)]}case"Min":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Yl(I("x",e,t,n),i,o)]}case"Sum":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Te(I("x",e,t,n),i,o)]}case"All":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Eh(I("x",e,t,n),i,o)]}case"Any":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Wc(I("x",e,t,n),i,o)]}case"ArgMax":{let i=I("axis",e,t,n);return[Vc(I("x",e,t,n),i)]}case"ArgMin":{let i=I("axis",e,t,n);return[Gy(I("x",e,t,n),i)]}case"Prod":{let i=I("axis",e,t,n),o=I("keepDims",e,t,n);return[Vh(I("x",e,t,n),i,o)]}case"Cumsum":{let i=I("axis",e,t,n),o=I("exclusive",e,t,n),l=I("reverse",e,t,n);return[Rh(I("x",e,t,n),i,o,l)]}case"Bincount":let a=I("x",e,t,n),r=I("weights",e,t,n),s=I("size",e,t,n);return[x1(a,r,s)];case"DenseBincount":{let i=I("x",e,t,n),o=I("weights",e,t,n),l=I("size",e,t,n),c=I("binaryOutput",e,t,n);return[T1(i,o,l,c)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},RV=(e,t,n)=>{switch(e.op){case"ConcatV2":case"Concat":{let a=I("n",e,t,n),r=I("axis",e,t,n),s=I("tensors",e,t,n);return s=s.slice(0,a),[Qe(s,r)]}case"Gather":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[Di(a,ce(r,"int32"),0)]}case"GatherV2":{let a=I("axis",e,t,n),r=I("batchDims",e,t,n),s=I("x",e,t,n),i=I("indices",e,t,n);return[Di(s,ce(i,"int32"),a,r)]}case"Reverse":{let a=I("dims",e,t,n),r=[];for(let i=0;i{let a=I("axis",e,t,n),r=I("tensors",e,t,n),s=r[0].shape,i=as(r[0]).shape,o=r.map(l=>{let c=k.arraysEqual(l.shape,s);if(!c&&!k.arraysEqual(as(l).shape,i))throw new Error("the input tensors shape does not match");return c?l:H(l,s)});return[$t(o,a)]});case"Unpack":{let a=I("axis",e,t,n),r=I("tensor",e,t,n);return dt(r,a)}case"Tile":{let a=I("reps",e,t,n);return[Xa(I("x",e,t,n),a)]}case"Split":case"SplitV":{let a=I("axis",e,t,n),r=I("numOrSizeSplits",e,t,n),s=I("x",e,t,n);return Pn(s,r,a)}case"ScatterNd":{let a=I("indices",e,t,n),r=I("values",e,t,n),s=I("shape",e,t,n);return[H1(a,r,s)]}case"GatherNd":{let a=I("x",e,t,n),r=I("indices",e,t,n);return[j1(a,r)]}case"SparseToDense":{let a=I("sparseIndices",e,t,n),r=I("outputShape",e,t,n),s=I("sparseValues",e,t,n),i=I("defaultValue",e,t,n);return[Sb(a,s,r,s.dtype===i.dtype?i:ce(i,s.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},MV=(e,t,n)=>{switch(e.op){case"FFT":return[Qc(I("x",e,t,n))];case"IFFT":return[eu(I("x",e,t,n))];case"RFFT":return[ep(I("x",e,t,n))];case"IRFFT":return[Yh(I("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},PV=(e,t,n)=>{switch(e.op){case"Cast":return[ce(I("x",e,t,n),I("dtype",e,t,n))];case"ExpandDims":{let a=I("axis",e,t,n);return[$n(I("x",e,t,n),a)]}case"Squeeze":{let a=I("axis",e,t,n);return[as(I("x",e,t,n),a)]}case"Reshape":return[H(I("x",e,t,n),I("shape",e,t,n))];case"MirrorPad":return[hb(I("x",e,t,n),I("padding",e,t,n),I("mode",e,t,n))];case"PadV2":case"Pad":return[Jn(I("x",e,t,n),I("padding",e,t,n),I("constantValue",e,t,n))];case"SpaceToBatchND":{let a=I("blockShape",e,t,n),r=I("paddings",e,t,n);return[Xc(I("x",e,t,n),a,r)]}case"BatchToSpaceND":{let a=I("blockShape",e,t,n),r=I("crops",e,t,n);return[Gc(I("x",e,t,n),a,r)]}case"DepthToSpace":{let a=I("blockSize",e,t,n),r=I("dataFormat",e,t,n).toUpperCase();return[nb(I("x",e,t,n),a,r)]}case"BroadcastTo":return[Hc(I("x",e,t,n),I("shape",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function SN(e,t,n,a){let r=((s,i,o)=>{switch(s.category){case"arithmetic":return D(()=>mV(s,i,o));case"basic_math":return D(()=>fV(s,i,o));case"control":return wV(s,i,o);case"convolution":return D(()=>kV(s,i,o));case"creation":return D(()=>IV(s,i,o));case"dynamic":return NV(s,i,o);case"evaluation":return D(()=>TV(s,i,o));case"image":return D(()=>EV(s,i,o));case"graph":return D(()=>SV(s,i,o));case"logical":return D(()=>AV(s,i,o));case"matrices":return D(()=>FV(s,i,o));case"normalization":return D(()=>$V(s,i,o));case"reduction":return D(()=>DV(s,i,o));case"slice_join":return D(()=>RV(s,i,o));case"spectral":return D(()=>MV(s,i,o));case"transformation":return D(()=>PV(s,i,o));case"hash_table":return _V(s,i,o,a);case"custom":let l=nN(s.op);if(l&&l.customExecutor)return l.customExecutor(new hV(s,i,o));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return k.isPromise(r)?r.then(s=>[].concat(s)):[].concat(r)}var CN=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function EN(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,c=Object.keys(e).map(d=>Ln(d)[0]),u=[];a!=null&&(u=a.map(d=>Ln(d.name)[0]));let p=[...t];for(;p.length>0;){let d=p.pop();if((_N(d)||OV(d)||LV(d))&&i==null&&(i=d,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(d.name),n[d.name]==null&&c.indexOf(d.name)===-1&&u.indexOf(d.name)===-1){if(d.inputs.length===0){s.push(d.name);continue}d.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),p.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function zV(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(u=>Ln(u)[0]).map(u=>e.nodes[u]),o=e.initNodes;i.forEach(u=>{a.has(u.name)&&s.push(u)}),e.weights.forEach(u=>{a.has(u.name)&&s.push(u)}),o!=null&&o.forEach(u=>{a.has(u.name)&&s.push(u)});let l=new Set,c=[];for(;s.length>0;){let u=s.pop();l.add(u.name),t[u.name]||c.push(u),u.children.forEach(p=>{!l.has(p.name)&&a.has(p.name)&&p.inputs.every(d=>l.has(d.name))&&s.push(p)})}return c}var BV=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],WV=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],VV=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function _N(e){return BV.indexOf(e.op)>=0}function OV(e){return WV.indexOf(e.op)>=0}function LV(e){return VV.indexOf(e.op)>=0}var Ev=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new Ev(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=EN(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return zV(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(u=>this.graph.nodes[Ln(u)[0]]),r=t.map(u=>Ln(u)[0]),s=r.map(u=>this.graph.nodes[u]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},c={};return D(()=>{let u=new CN(this.weightMap,l,c,this.functionExecutorMap),p=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Ln(m),y=[];y[g]=e[m],p[f]=y});let d=this.getFrozenTensorIds(p),h={};for(let m=0;mTn(m,p,u))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=K4(o.name,n,a);l!=null&&l.forEach(c=>{if(c&&!r.has(c.id)){let u=i[c.id];u===1?(c.dispose(),delete i[c.id]):u!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let s=new CN(this.weightMap,a,r,this.functionExecutorMap),i=await this.executeWithControlFlow(e,s,t,n),o=t.map(p=>Tn(p,i,s)),l=o.map(p=>p.id),c=Object.keys(e).map(p=>e[p].id),u=new Set([...l,...c,...this.weightIds]);return Object.keys(i).forEach(p=>{i[p].forEach(d=>{d&&!d.isDisposed&&!u.has(d.id)&&d.dispose()})}),this.parent==null&&s.dispose(u),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Ln(b)[0]]),i=n.map(b=>Ln(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:u,syncInputs:p}=EN(e,o,this.weightMap,this._initNodes),d=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[v,x]=Ln(b),N=[];N[x]=e[b],h[v]=N});let m={},f=this.getFrozenTensorIds(h),g={};for(;d.length>0;){let b=this.processStack(s,d,t,h,g,f,i,m,l);await Promise.all(b)}u==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!_N(b)&&!Tn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw u!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${p}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${c}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let c=[];for(;t.length>0;){let u=t.pop();n.currentContext=u.contexts;let p="";if(u.node.op==="Enter"&&I("isConstant",u.node,a,n)&&([p]=Sr(u.node.name,n)),a[u.node.name]==null){let d=SN(u.node,a,n,this._resourceManager);p||([p]=Sr(u.node.name,n));let h=n.currentContext;k.isPromise(d)?c.push(d.then(m=>(a[p]=m,n.currentContext=h,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l),m))):(a[p]=d,this.checkTensorForDisposal(p,u.node,a,n,s,i,o),this.processChildNodes(u.node,t,n,a,r,l))}else this.processChildNodes(u.node,t,n,a,r,l)}return c}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Sr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!Tn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!Tn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Ln(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);k.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&k.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Ln(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Ln(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},UV=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},GV="?tfjs-format=file",HV="model.json",AN=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new UV}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Ht.browserHTTPRequest(e,this.loadOptions);else{let t=Ht.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Ht.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?n=this.artifacts.userDefinedMetadata.signature:n=this.artifacts.signature,this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=Ht.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Ev(wN.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=wN.Instance.transformGraph(e.modelInitializer);this.initializer=new Ev(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let n=Ht.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ae)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,n,a)=>(t[n]=e[a],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=this.executor.execute(e,t);return n.length>1?n:n[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function jV(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${HV}${GV}`);let n=new AN(e,t);return await n.load(),n}var FN="3.1.0",$N={};Oe($N,{CSVDataset:()=>RN,Dataset:()=>cu,FileDataSource:()=>MN,TextLineDataset:()=>DN,URLDataSource:()=>PN,array:()=>qV,csv:()=>XV,func:()=>YV,generator:()=>ZV,microphone:()=>QV,version_data:()=>ON,webcam:()=>JV,zip:()=>KV});var eU=Po(Dd()),tU=Po(Dd());function nU(e,t){return Km(e,t)}function Km(e,t,n=new Map,a=new Set){if(e==null)return null;if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(pu(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Km(o,t,n,a);s[i]=l}return a.delete(e),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function aU(e,t=zN){return LN(e,t)}function LN(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(pu(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(c=>c[i]),l=LN(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function zN(e){return e===null?null:pu(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function BN(e,t){let n=new Map;Km(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(k.isPromise(r)){let s=await r;n.set(a,s)}}return Km(e,t,n)}function pu(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Ae))}function sU(e){return e==null||rU(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Ae||k.isTypedArray(e)}function rU(e){return e===null||typeof e!="object"&&typeof e!="function"}function oU(e){return nU(e,iU)}function iU(e){return e instanceof Ae?{value:e.clone(),recurse:!1}:pu(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var WN=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},Av=class extends WN{constructor(){super(Av.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new gU(this,e,t)}columnMajorBatch(e,t=!0,n=zN){return this.rowMajorBatch(e,t).map(a=>aU(a,n))}concatenate(e,t){return new UN(VN([this,e]),t)}take(e){return e<0||e==null?this:new fU(this,e)}skip(e){return e<0||e==null?this:new mU(this,e)}prefetch(e){return new HN(this,e)}shuffle(e,t){return new wU(this,e,t)}serial(){return new hU(this)}},lU=class extends Yt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:oU(e),done:!1}}},uU=class extends Yt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},hU=class extends Yt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},mU=class extends Yt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},gU=class extends Yt{constructor(e,t,n=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},yU=class extends Yt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Fe(e.value)}}},bU=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ta.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ta.getTensorsInContainer(n);for(let r of t)Ta.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},xU=class extends Yt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},GN=class extends Yt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ta.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ta.getTensorsInContainer(n);for(let r of t)Ta.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},$v=class extends Yt{constructor(){super();this.outputQueue=new Av,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},vU=class extends $v{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ta.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ta.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ta.isTensorInList(r,a)||r.dispose();return!0}},UN=class extends Yt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ds;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ds||(ds={}));var pU=class extends Yt{constructor(e,t=ds.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof Yt?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await BN(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ds.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ds.SHORTEST:return{value:null,done:!0};case ds.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},HN=class extends Yt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new WN(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},wU=class extends HN{constructor(e,t,n){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=tU.alea(n||k.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},cu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;k.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===Infinity||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),zn(async()=>(await n.iterator()).columnMajorBatch(e,t,kU),a)}concatenate(e){let t=this,n;return this.size===Infinity||e.size===Infinity?n=Infinity:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,zn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===Infinity?n=Infinity:n=null,zn(async()=>(await t.iterator()).filter(a=>D(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return zn(async()=>(await t.iterator()).map(n=>D(()=>e(n))),this.size)}mapAsync(e){let t=this;return zn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return zn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=Infinity:n=null,zn(async()=>{let a=Fv(async()=>({value:await t.iterator(),done:!1}));return cU(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=eU.alea(t||k.now().toString());return zn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,zn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};cu.MAX_BUFFER_SIZE=1e4;function zn(e,t=null){return new class extends cu{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function qV(e){return zn(async()=>VN(e),e.length)}function KV(e){if(!pu(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await BN(e,a=>{if(a instanceof cu)return{value:a.iterator(),recurse:!1};if(pu(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return dU(n,ds.SHORTEST)},t)}function kU(e){if(e===null)return null;let t=e[0];return sU(t)?{value:IU(e),recurse:!1}:{value:null,recurse:!0}}function IU(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Ae?$t(e):Kn(e)}var DN=class extends cu{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Xm='"',kp=Symbol("out"),jN=Symbol("field"),Ym=Symbol("quote"),Dv=Symbol("quoteafterquote"),qN=Symbol("quoteinquote"),RN=class extends cu{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new DN(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(k.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&k.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(k.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(ee().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new KN(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(k.sizeFromShape(t));return n.set(e,n.length-e.length),Kn(n,t)}},XN=class extends Yt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=nt([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Ca([s,r,o,i],[1,4])}else this.cropBox=Ca([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(ee().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new XN(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&k.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Ai.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return D(()=>{let t=$n(ce(e,"float32"),0),n;n=Qa.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return H(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},YN=class{},ZN=class extends Yt{split(e){return new NU(this,e)}},NU=class extends ZN{constructor(e,t){super();this.upstream=e,this.impl=new TU(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},TU=class extends $v{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},CU=class extends Yt{decodeUTF8(){return new SU(this)}},SU=class extends ZN{constructor(e){super();this.upstream=e,this.impl=new _U(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},_U=class extends $v{constructor(e){super();if(this.upstream=e,ee().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=ZE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return ee().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},JN=class extends CU{constructor(e,t={}){super();this.file=e,this.options=t,k.assert(e instanceof Uint8Array||(ee().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function AU(e,t={}){let n,a;typeof e=="string"?n=e:(n=e.url,a=EU(e));let r=await k.fetch(n,a);if(r.ok){let s=new Uint8Array(await r.arrayBuffer());return new JN(s,t)}else throw new Error(r.statusText)}var EU=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function QN(e){return typeof e=="string"&&e.substr(0,7)==="file://"}var MN=class extends YN{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(QN(this.input)&&ee().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new JN(this.input,this.options)}},PN=class extends YN{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return QN(this.url)?new MN(this.url,this.fileOptions).iterator():AU(this.url,this.fileOptions)}};function XV(e,t={}){return new RN(new PN(e),t)}function YV(e){let t=Fv(e);return zn(async()=>t)}function ZV(e){return zn(async()=>{let t=await e();return Fv(()=>t.next())})}async function JV(e,t){return XN.create(e,t)}async function QV(e){return KN.create(e)}var ON="3.1.0";function we(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var FU=er.whereImpl,Rv=class extends pc{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Rd(this,qa())}nextDataId(){return Rv.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,ee().get("IS_NODE")&&_.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a){this.data.set(e,{values:t,dtype:a,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return Jr().makeTensorFromDataId(a,t,n,this)}disposeData(e){if(this.data.has(e)){let{complexTensorInfos:t}=this.data.get(e);t!=null&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){let t=e.dataId;if(this.data.has(t)){let n=this.data.get(t);n.refCount--,n.refCount<1&&this.disposeData(t)}}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){we([e],"where");let t=this.readSync(e.dataId);return SU(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}},KN={};Oe(KN,{addImpl:()=>YN,bincountImpl:()=>Av,bincountReduceImpl:()=>ZN,ceilImpl:()=>JN,concatImpl:()=>Fv,expImpl:()=>QN,expm1Impl:()=>eT,floorImpl:()=>tT,gatherV2Impl:()=>nT,greaterImpl:()=>aT,lessImpl:()=>rT,linSpaceImpl:()=>sT,logImpl:()=>iT,maxImpl:()=>oT,maximumImpl:()=>lT,minimumImpl:()=>uT,multiplyImpl:()=>$v,negImpl:()=>cT,notEqualImpl:()=>pT,prodImpl:()=>dT,rangeImpl:()=>Rv,rsqrtImpl:()=>hT,simpleAbsImpl:()=>XN,sliceImpl:()=>Km,squaredDifferenceImpl:()=>mT,stridedSliceImpl:()=>fT,subImpl:()=>gT,tileImpl:()=>yT,topKImpl:()=>bT,transposeImpl:()=>Dv,uniqueImpl:()=>xT});function XN(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;we(t,"abs");let a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=XN(r),n.makeOutput(a,t.shape,"float32")},EU={kernelName:Oo,backendName:"cpu",kernelFunc:_U};function Rt(e){return(t,n,a,r,s)=>{let i=_.assertAndGetBroadcastShape(t,n),o=i.length,l=k.computeStrides(i),c=k.sizeFromShape(i),u=k.getTypedArrayFromDType(s,c),p=t.length,d=n.length,h=k.computeStrides(t),m=k.computeStrides(n),f=_.getBroadcastDims(t,i),g=_.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yv[C]=0);let x=k.locToIndex(v,p,h),N=b.slice(-d);g.forEach(C=>N[C]=0);let T=k.locToIndex(N,d,m);u[y]=e(a[x],r[T])}return[u,i]}}function zn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var AU={kernelName:Bd,backendName:"cpu",kernelFunc:zn};function Xm(e,t,n="float32"){if(n==="complex64"){let r=Xm(e,t,"float32"),s=Xm(e,t,"float32");return zn({inputs:{real:r,imag:s},backend:e})}let a=k.makeZerosTypedArray(k.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function sr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var FU={kernelName:sl,backendName:"cpu",kernelFunc:sr};function qi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var $U={kernelName:ih,backendName:"cpu",kernelFunc:qi};function hs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return sr({inputs:{x:r},backend:n});let i=Xm(n,r.shape,r.dtype),o=hs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=zn({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=qi({inputs:{input:r},backend:n}),o=hs({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=sr({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=k.toTypedArray([0],r.dtype),[l,c]=Rt((u,p)=>u!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var DU={kernelName:Ps,backendName:"cpu",kernelFunc:hs};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;we([i,o],e);let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let c=hs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),u=l.data.get(c.dataId),p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=hs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,v=l.data.get(y.dataId).values,x=l.data.get(b.dataId).values,[N,T,C]=n(i.shape,o.shape,h,m,v,x),$=l.makeTensorInfo(C,"float32",N),F=l.makeTensorInfo(C,"float32",T),O=zn({inputs:{real:$,imag:F},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo($),l.disposeIntermediateTensorInfo(F),O}else{let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}}}function Mv(e){return(t,n,a,r,s,i)=>{let o=_.assertAndGetBroadcastShape(t,n),l=k.sizeFromShape(o),c=o.length,u=k.computeStrides(o),p=k.getTypedArrayFromDType("float32",l),d=k.getTypedArrayFromDType("float32",l),h=_.getBroadcastDims(t,o),m=_.getBroadcastDims(n,o),f=_.mergeRealAndImagArrays(a,r),g=_.mergeRealAndImagArrays(s,i),y=t.length,b=k.computeStrides(t),v=n.length,x=k.computeStrides(n);if(h.length+m.length===0)for(let N=0;NC[W]=0);let $=k.locToIndex(C,y,b),F=T.slice(-v);m.forEach(W=>F[W]=0);let O=k.locToIndex(F,v,x),B=e(f[$*2],f[$*2+1],g[O*2],g[O*2+1]);p[N]=B.real,d[N]=B.imag}return[p,d,o]}}var YN=Rt((e,t)=>e+t),RU=Mv((e,t,n,a)=>({real:e+n,imag:t+a})),kp=Zt(Vr,YN,RU),MU={kernelName:Vr,backendName:"cpu",kernelFunc:kp};function Av(e,t,n,a,r){let s=k.sizeFromShape(a),i=k.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function ZN(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,c):t.size>0?i.set(i.get(o,c)+t.get(o,l),o,c):i.set(i.get(o,c)+1,o,c))}return i}function du(e){return(t,n,a)=>{let r=k.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=k.sizeFromShape(i.shape),u=n||i.dtype,p=k.getArrayFromDType(u,c);for(let d=0;d{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=n||i.dtype,u=t(l,c,r);return o.makeTensorInfo(i.shape,c,u)}}var JN=du(e=>Math.ceil(e)),PU=hu(Ho,JN),OU={kernelName:Ho,backendName:"cpu",kernelFunc:PU};function Fv(e,t,n,a){let r=k.getArrayFromDType(n,k.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=k.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?_.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let c=0;cMath.exp(e)),vT=hu(Us,QN),LU={kernelName:Us,backendName:"cpu",kernelFunc:vT},eT=du(e=>Math.expm1(e)),zU=hu(el,eT),BU={kernelName:el,backendName:"cpu",kernelFunc:zU},tT=du(e=>Math.floor(e)),WU=hu(Gs,tT),VU={kernelName:Gs,backendName:"cpu",kernelFunc:WU};function nT(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),UU=Zt(rl,aT,null,"bool"),GU={kernelName:rl,backendName:"cpu",kernelFunc:UU},rT=Rt((e,t)=>eMath.log(e)),qU=hu(Xs,iT),KU={kernelName:Xs,backendName:"cpu",kernelFunc:qU};function oT(e,t,n,a){let r=k.getTypedArrayFromDType(a,k.sizeFromShape(n));for(let s=0;so&&(o=c)}r[s]=o}return r}var lT=Rt((e,t)=>Math.max(e,t)),XU=Zt(Zs,lT),YU={kernelName:Zs,backendName:"cpu",kernelFunc:XU},uT=Rt((e,t)=>Math.min(e,t)),ZU=Zt(ti,uT),JU={kernelName:ti,backendName:"cpu",kernelFunc:ZU},$v=Rt((e,t)=>e*t),QU=Mv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Pv=Zt(ni,$v,QU),eG={kernelName:ni,backendName:"cpu",kernelFunc:Pv};function cT(e,t,n){let a=k.createScalarValue(-1,n);return $v([],t,a,e,n)}function tG(e){let{inputs:t,backend:n}=e,{x:a}=t;we(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=cT(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var nG={kernelName:ml,backendName:"cpu",kernelFunc:tG},pT=Rt((e,t)=>e!==t?1:0),aG=Zt(fl,pT,null,"bool"),rG={kernelName:fl,backendName:"cpu",kernelFunc:aG};function Dv(e,t,n,a,r){let s=t.length,i=k.sizeFromShape(t),o=k.computeStrides(t),l=k.computeStrides(r),c=k.getTypedArrayFromDType(n,k.sizeFromShape(r));for(let u=0;un.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var oG={kernelName:wl,backendName:"cpu",kernelFunc:iG};function Rv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return k.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=k.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),lG=hu(di,hT),uG={kernelName:di,backendName:"cpu",kernelFunc:lG};function Km(e,t,n,a,r){let s=pn.isSliceContinous(a,t,n),i=k.sizeFromShape(n),o=k.computeStrides(a);if(s){let p=pn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?_.fromUint8ToStringArray(e):e,c=Le(a,r,l),u=Le(n,r);for(let p=0;pm+t[f]);u.set(c.get(...h),...d)}return r==="string"?_.fromStringArrayToUint8(u.values):u.values}function Ki(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;we(r,"slice");let[o,l]=pn.parseSliceParams(r,s,i);pn.assertParamsValid(r,o,l);let c=n.data.get(r.dataId).values,u=Km(c,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}var cG={kernelName:Cl,backendName:"cpu",kernelFunc:Ki},mT=Rt((e,t)=>{let n=e-t;return n*n}),pG=Zt(bi,mT),dG={kernelName:bi,backendName:"cpu",kernelFunc:pG};function fT(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),hG=Mv((e,t,n,a)=>({real:e-n,imag:t-a})),Ov=Zt(xi,gT,hG),mG={kernelName:xi,backendName:"cpu",kernelFunc:Ov};function yT(e,t){let n=new Array(e.rank);for(let r=0;rv.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=c.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew CU,1);var wT=it(Yo,e=>e>=0?e:Math.exp(e)-1),gG={kernelName:Yo,backendName:"cpu",kernelFunc:wT};function kT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;we([r],"leakyRelu");let i=k.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=k.getTypedArrayFromDType("float32",i);for(let c=0;ce<0?t*e:e);function IT(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;we([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=bG(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var xG={kernelName:ii,backendName:"cpu",kernelFunc:IT},NT=it(oi,e=>Math.max(0,e)),vG={kernelName:oi,backendName:"cpu",kernelFunc:NT},TT=it(ui,e=>Math.min(Math.max(0,e),6)),wG={kernelName:ui,backendName:"cpu",kernelFunc:TT};function Lv(e,t,n,a,r){if(n==="linear")return sr({inputs:{x:t},backend:e});if(n==="relu")return NT({inputs:{x:t},backend:e});if(n==="elu")return wT({inputs:{x:t},backend:e});if(n==="relu6")return TT({inputs:{x:t},backend:e});if(n==="prelu")return IT({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return kT({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function It(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=k.sizeFromShape(r.shape),o=k.inferFromImplicitShape(s,i),l=k.sizeFromShape(o);k.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let c=n.data.get(r.dataId);if(c.complexTensorInfos!=null){let u=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;u.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var kG={kernelName:Il,backendName:"cpu",kernelFunc:It};function ST(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;we([r,s],"matMul");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=It({inputs:{x:r},backend:n,attrs:{shape:x}}),C=It({inputs:{x:s},backend:n,attrs:{shape:N}}),$=i?T.shape[1]:T.shape[2],F=i?T.shape[2]:T.shape[1],O=o?C.shape[1]:C.shape[2],B=Math.max(g,y),W=n.data.get(T.dataId).values,G=n.data.get(C.dataId).values,q=k.computeStrides(T.shape),H=k.computeStrides(C.shape),[K,X,ne]=i?[q[0],1,q[1]]:[q[0],q[1],1],[J,se,Q]=o?[1,H[1],H[0]]:[H[1],1,H[0]],oe=F*O,ae=Le([B,F,O],T.dtype),pe=ae.values,ue=n.blockSize;for(let ge=0;geMath.acos(e)),CG={kernelName:Lo,backendName:"cpu",kernelFunc:SG},_G=it(zo,e=>Math.acosh(e)),EG={kernelName:zo,backendName:"cpu",kernelFunc:_G};function AG(e){let{inputs:t,backend:n}=e,a=t;we(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=N,v=x)}h[g]=v}return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var OG={kernelName:Ds,backendName:"cpu",kernelFunc:PG};function LG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;we(r,"argMin");let i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=ba({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],_.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[u,p]=_.computeOutAndReduceShapes(l.shape,i),d=k.sizeFromShape(u),h=k.makeZerosTypedArray(d,"int32"),m=k.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var zG={kernelName:fc,backendName:"cpu",kernelFunc:LG},BG=it(Bo,e=>Math.asin(e)),WG={kernelName:Bo,backendName:"cpu",kernelFunc:BG},VG=it(Wo,e=>Math.asinh(e)),UG={kernelName:Wo,backendName:"cpu",kernelFunc:VG},GG=it(Vo,e=>Math.atan(e)),HG={kernelName:Vo,backendName:"cpu",kernelFunc:GG},jG=Rt((e,t)=>Math.atan2(e,t)),qG=Zt(Go,jG),KG={kernelName:Go,backendName:"cpu",kernelFunc:qG},XG=it(Uo,e=>Math.atanh(e)),YG={kernelName:Uo,backendName:"cpu",kernelFunc:XG};function zv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,u=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],v=r.outShape[3];for(let x=0;xX?X=ue:s==="avg"&&(ne+=ue,J++)}if(isNaN(X))break}let se=W+G*v+C;g[se]=s==="avg"?ne/J:X}}}return f}function CT(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,c=a.dilationHeight,u=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gO&&(O=K,r?B=s?((g*a.inHeight+W)*a.inWidth+q)*a.inChannels+y:(W*a.inWidth+q)*a.inChannels+y:B=G*d+H)}}i.set(B,g,b,T,y)}}return i}function _T(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,c=r.dilationDepth,u=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Le(r.outShape,n),x=v.values,N=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],$=r.outShape[4];for(let F=0;Fke?ke=pt:s==="avg"&&(Se+=pt,Ce++),isNaN(ke))break}if(isNaN(ke))break}if(isNaN(ke))break}let Re=ye+W;x[Re]=s==="avg"?Se/Ce:ke}}}}return v}function ZG(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,u=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=G&&(G=Q,q=K*u*p+ne*u+se)}}}n.set(q,f,y,N,F,g)}}}return n}function JG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;we(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=sr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=zv(d,r.shape,r.dtype,h,u,"avg");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var QG={kernelName:Rs,backendName:"cpu",kernelFunc:JG};function eH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"avgPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=_T(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var tH={kernelName:gc,backendName:"cpu",kernelFunc:eH};function nH(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"avgPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=u.strideDepth,d=u.strideHeight,h=u.strideWidth,m=u.filterDepth,f=u.filterHeight,g=u.filterWidth,y=u.dilationDepth,b=u.dilationHeight,v=u.dilationWidth,x=u.effectiveFilterDepth,N=u.effectiveFilterHeight,T=u.effectiveFilterWidth,C=x-1-u.padInfo.front,$=T-1-u.padInfo.left,F=N-1-u.padInfo.top,O=Le(s.shape,"float32"),B=1/(m*f*g),W=n.bufferSync(r);for(let G=0;G=u.outDepth||Math.floor(ae)!==ae))for(let pe=0;pe=u.outHeight||Math.floor(ue)!==ue))for(let ge=0;ge=u.outWidth||Math.floor(ye)!==ye||(Q+=W.get(G,ae,ue,ye,q))}}}O.set(Q*B,G,H,K,X,q)}return n.makeTensorInfo(O.shape,O.dtype,O.values)}var aH={kernelName:Ld,backendName:"cpu",kernelFunc:nH};function rH(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;we([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=u.strideHeight,d=u.strideWidth,h=u.filterHeight,m=u.filterWidth,f=u.dilationHeight,g=u.dilationWidth,y=u.effectiveFilterHeight,b=u.effectiveFilterWidth,v=b-1-u.padInfo.left,x=y-1-u.padInfo.top,N=Le(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,$=Le(r.shape,"float32",C);for(let F=0;F=u.outHeight||Math.floor(X)!==X))for(let ne=0;ne=u.outWidth||Math.floor(J)!==J||(H+=$.get(F,X,J,O))}}N.set(H*T,F,B,W,O)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}var sH={kernelName:Od,backendName:"cpu",kernelFunc:rH};function iH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;k.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),we([r,o,l,s,i],"batchNorm");let{varianceEpsilon:c}=a;c==null&&(c=.001);let u=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(u.length),g=m.length,y=h.length,b=d.length,v=p.length,x=0,N=0,T=0,C=0;for(let $=0;$=g&&(x=0),N>=v&&(N=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var oH={kernelName:js,backendName:"cpu",kernelFunc:iH};function lH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;we([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=It({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ba({inputs:{x:h},backend:n,attrs:{perm:c}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Ki({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var uH={kernelName:yc,backendName:"cpu",kernelFunc:lH};function cH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,c=Av(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var pH={kernelName:zd,backendName:"cpu",kernelFunc:cH},dH=it(Ur,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let c=0;cf.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>k.sizeFromShape(f.shape)>0);if(o.length===1)return sr({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(_.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(x=>qi({inputs:{input:x},backend:n})),g=o.map(x=>mu({inputs:{input:x},backend:n})),y=fu({inputs:f,backend:n,attrs:{axis:s}}),b=fu({inputs:g,backend:n,attrs:{axis:s}}),v=zn({inputs:{real:y,imag:b},backend:n});return f.forEach(x=>n.disposeIntermediateTensorInfo(x)),g.forEach(x=>n.disposeIntermediateTensorInfo(x)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),v}let c=o.map(f=>{let g=k.sizeFromShape(f.shape.slice(s));return It({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),u=c.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=_.computeOutShape(c.map(f=>f.shape),1);let p=c[0].shape[0]===1,d=Fv(u,i,t[0].dtype,p),h=_.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return c.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var yH={kernelName:jo,backendName:"cpu",kernelFunc:fu};function ET(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a;we([r,s],"conv2d");let p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,v=d.dataFormat==="channelsLast",x=new Ot(d.outShape,r.dtype),N=k.computeStrides(r.shape),T=k.computeStrides(s.shape),C=N[0],$=v?N[1]:N[2],F=v?N[2]:1,O=v?1:N[1],B=x.strides[0],W=v?x.strides[1]:x.strides[2],G=v?x.strides[2]:1,q=v?1:x.strides[1],H=n.data.get(r.dataId).values,K=n.data.get(s.dataId).values,X=x.values;for(let ne=0;ne=d.inHeight)continue;let ge=pe*T[0],ye=J+ue*$;for(let ke=0;ke=d.inWidth)continue;let Ve=ge+Re*T[1],st=ye+Ke*F,lt=Ve;for(let He=0;He=c.inDepth)continue;let ne=K*F[0],J=B+X*$[1];for(let se=0;se=c.inHeight)continue;let ue=ne+ae*F[1],ge=J+pe*$[2];for(let ye=0;ye=c.inWidth)continue;let Ke=ue+Ce*F[2],Ve=ge+Re*c.inChannels,st=Ke;for(let lt=0;ltMath.cos(e)),AH={kernelName:zs,backendName:"cpu",kernelFunc:EH},FH=it(qo,e=>Math.cosh(e)),$H={kernelName:qo,backendName:"cpu",kernelFunc:FH};function DH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,[u,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,x=n.data.get(r.dataId).values,N=k.computeStrides(r.shape),T=k.computeStrides(y.shape);for(let C=0;C=u)continue;let q=f>1?(B-F)*(p-1)/(f-1):0,H=g>1?(W-O)*(d-1)/(g-1):0;for(let K=0;K1?F*(p-1)+K*q:.5*(F+B)*(p-1);if(X<0||X>p-1){for(let ne=0;ne1?O*(d-1)+Q*H:.5*(O+W)*(d-1);if(oe<0||oe>d-1){for(let ge=0;ge1?O*(d-1)+ne*H:.5*(O+W)*(d-1);if(J<0||J>d-1){for(let oe=0;oey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],c=r.shape[2],u=r.shape[3],p=l*s,d=c*s,h=u/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=_.computeConv2DInfo(r.shape,s.shape,i,d,o,c,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,v=b.left,x=b.top,N=h.outChannels/h.inChannels,T=new Ot(h.outShape,r.dtype),C=n.data.get(r.dataId).values,$=n.data.get(s.dataId).values,F=T.values;for(let O=0;O=h.inHeight)continue;let ne=K*p[0],J=B+X*u[1];for(let se=0;se=h.inWidth)continue;let ue=ne+ae*p[1],ge=J+pe*h.inChannels,ye=Q,ke=ue;for(let Se=0;Se{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,c=l.data.get(a.dataId).values,u=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:x,strideWidth:N,filterHeight:T,filterWidth:C,dilationHeight:$,dilationWidth:F,outShape:O}=_.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),B=k.sizeFromShape(O),W=O.length,G=k.getArrayFromDType(a.dtype,B);for(let q=0;q=0&&ae=0&&uese&&(se=ke)}}}let Q=k.locToIndex([q,H,X,J],W,k.computeStrides(O));G[Q]=se}}}return{dataId:l.write(k.toTypedArray(G,a.dtype),O,a.dtype),shape:O,dtype:a.dtype}}},XH={kernelName:Xd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:$,outShape:F}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let O=k.toNestedArray(F,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(r.shape,r.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=Q,se=ae)}}}B[J][se][X]+=O[W][G][H][X]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},YH={kernelName:Kd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:$,outShape:F}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===F.length,()=>`Error in ${Kd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let O=k.toNestedArray(F,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(a.shape,a.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=oe,se=pe)}}}B[W][J][se][X]+=O[W][G][H][X]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function ZH(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;we([a,r],"eluGrad");let s=new Float32Array(k.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(c+1)}return n.makeTensorInfo(r.shape,"float32",s)}var JH={kernelName:Yd,backendName:"cpu",kernelFunc:ZH},QH=Rt((e,t)=>e===t?1:0),FT=Zt(Jo,QH,null,"bool"),e6={kernelName:Jo,backendName:"cpu",kernelFunc:FT},t6=_.ERF_P,n6=_.ERF_A1,a6=_.ERF_A2,r6=_.ERF_A3,s6=_.ERF_A4,i6=_.ERF_A5,o6=it(Zo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+t6*n);return t*(1-((((i6*a+s6)*a+r6)*a+a6)*a+n6)*a*Math.exp(-n*n))}),l6={kernelName:Zo,backendName:"cpu",kernelFunc:o6};function Ym(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),It({inputs:{x:r},backend:n,attrs:{shape:o}})}var u6={kernelName:Qo,backendName:"cpu",kernelFunc:Ym},c6=Rt((e,t)=>e/t),Bv=Zt(Vs,c6),Wv={kernelName:Vs,backendName:"cpu",kernelFunc:Bv};function $T(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[r,s],u=k.sizeFromShape(c),p=k.getTypedArrayFromDType("float32",u),d=k.getTypedArrayFromDType("float32",u);for(let g=0;g{let{image:a}=e,r=n,s=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[i,o,l,c]=a.shape,u=r.data.get(a.dataId).values;for(let p=0;p=0&&vMath.floor(e/t)),v6=Zt(Hs,x6,null,"int32"),w6={kernelName:Hs,backendName:"cpu",kernelFunc:v6};function k6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=ET({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=kp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Lv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var I6={kernelName:Ii,backendName:"cpu",kernelFunc:k6};function N6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=AT({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=kp({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Lv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var T6={kernelName:Ni,backendName:"cpu",kernelFunc:N6};function S6(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=k.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,c,u,p]=_.prepareAndValidate(a,r);if(c===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([c,u],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/u)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),F6=Zt(qs,A6,null,"bool"),$6={kernelName:qs,backendName:"cpu",kernelFunc:F6};function D6(e){let{inputs:t,backend:n}=e,{input:a}=t,r=k.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=It({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=$T(o,!0,n),c=It({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),c}var R6={kernelName:Jd,backendName:"cpu",kernelFunc:D6},M6=it(il,e=>Number.isFinite(e)?1:0,"bool"),P6={kernelName:il,backendName:"cpu",kernelFunc:M6},O6=it(ol,e=>Math.abs(e)===Infinity?1:0,"bool"),L6={kernelName:ol,backendName:"cpu",kernelFunc:O6},z6=it(ll,e=>Number.isNaN(e)?1:0,"bool"),B6={kernelName:ll,backendName:"cpu",kernelFunc:z6},W6=Rt((e,t)=>e<=t?1:0),V6=Zt(cl,W6,null,"bool"),U6={kernelName:cl,backendName:"cpu",kernelFunc:V6};function G6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=sT(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var H6={kernelName:eh,backendName:"cpu",kernelFunc:G6},j6=it(pl,e=>Math.log1p(e)),q6={kernelName:pl,backendName:"cpu",kernelFunc:j6},K6=Rt((e,t)=>e&&t),X6=Zt(dl,K6,null,"bool"),Y6={kernelName:dl,backendName:"cpu",kernelFunc:X6},Z6=it(kc,e=>e?0:1,"bool"),J6={kernelName:kc,backendName:"cpu",kernelFunc:Z6},Q6=Rt((e,t)=>e||t),ej=Zt(Ic,Q6,null,"bool"),tj={kernelName:Ic,backendName:"cpu",kernelFunc:ej};function nj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;we(r,"LRN");let c=r.shape[3],u=c-1,p=n.data.get(r.dataId).values,d=k.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%c,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,u),v=0;for(;y<=b;y++){let x=p[y];v+=x*x}return v}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=sr({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=zv(d,r.shape,r.dtype,h,u,"max");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var lj={kernelName:Js,backendName:"cpu",kernelFunc:oj};function uj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"maxPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=_T(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var cj={kernelName:Tc,backendName:"cpu",kernelFunc:uj};function pj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"maxPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=n.bufferSync(s),d=ZG(p,u),h=u.strideDepth,m=u.strideHeight,f=u.strideWidth,g=u.dilationDepth,y=u.dilationHeight,b=u.dilationWidth,v=u.effectiveFilterDepth,x=u.effectiveFilterHeight,N=u.effectiveFilterWidth,T=v-1-u.padInfo.front,C=N-1-u.padInfo.left,$=x-1-u.padInfo.top,F=Le(s.shape,"float32"),O=n.bufferSync(r);for(let B=0;B=u.outDepth||Math.floor(Q)!==Q))for(let oe=0;oe=u.outHeight||Math.floor(ae)!==ae))for(let pe=0;pe=u.outWidth||Math.floor(ue)!==ue)continue;let ge=v*x*N-1-d.get(B,Q,ae,ue,W),ye=se*x*N+oe*N+pe,ke=ge===ye?1:0;ke!==0&&(J+=O.get(B,Q,ae,ue,W)*ke)}}}F.set(J,B,G,q,H,W)}return n.makeTensorInfo(F.shape,F.dtype,F.values)}var dj={kernelName:ah,backendName:"cpu",kernelFunc:pj};function hj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;we([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,CT(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,v=d.effectiveFilterHeight,x=d.effectiveFilterWidth,N=x-1-d.padInfo.left,T=v-1-d.padInfo.top,C=Le(o.shape,"float32"),$=n.data.get(r.dataId).values,F=Le(r.shape,"float32",$);for(let O=0;O=d.outHeight||Math.floor(ne)!==ne))for(let J=0;J=d.outWidth||Math.floor(se)!==se)continue;let Q=v*x-1-m.get(O,ne,se,B),oe=X*x+J,ae=Q===oe?1:0;ae!==0&&(K+=F.get(O,ne,se,B)*ae)}}C.set(K,O,W,G,B)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var mj={kernelName:nh,backendName:"cpu",kernelFunc:hj};function fj(e,t,n,a,r){let s=k.computeStrides(t),i=zv(e,t,n,s,r,"max"),o=CT(e,t,n,r,!0,a);return[i.values,o.values]}var gj={kernelName:rh,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;we(a,"MaxPoolWithArgmax");let c=l.data.get(a.dataId).values,u=_.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=fj(c,a.shape,a.dtype,o,u),h=l.write(p,u.outShape,a.dtype),m=l.write(d,u.outShape,a.dtype);return[{dataId:h,shape:u.outShape,dtype:a.dtype},{dataId:m,shape:u.outShape,dtype:"int32"}]}};function Zm(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"sum");let o;r.dtype==="bool"?o=hs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=sr({inputs:{x:r},backend:n});let l=o.shape.length,c=k.parseAxisParam(s,o.shape),u=_.getAxesPermutation(c,l),p=c,d=o;u!=null&&(d=ba({inputs:{x:o},backend:n,attrs:{perm:u}}),p=_.getInnerMostAxes(p.length,l)),_.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=_.computeOutAndReduceShapes(d.shape,p),f=_.upcastType(d.dtype,"int32"),g=Xm(n,h,f),y=k.sizeFromShape(m),b=n.data.get(g.dataId).values,v=n.data.get(d.dataId).values;for(let x=0;xn.disposeIntermediateTensorInfo(f)),m}var xj={kernelName:Qs,backendName:"cpu",kernelFunc:bj};function vj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"min");let o=k.parseAxisParam(s,r.shape),l=o,c=_.getAxesPermutation(l,r.shape.length),u=r;c!=null&&(u=ba({inputs:{x:r},backend:n,attrs:{perm:c}}),l=_.getInnerMostAxes(l.length,r.shape.length)),_.assertAxesAreInnerMostDims("min",l,u.shape.length);let[p,d]=_.computeOutAndReduceShapes(u.shape,l),h=k.sizeFromShape(d),m=k.makeZerosTypedArray(k.sizeFromShape(p),u.dtype),f=n.data.get(u.dataId).values;for(let y=0;yb[0]+r.shape[v]+b[1]),l=s.map(b=>b[0]),c=s.map((b,v)=>b[0]+r.shape[v]),u=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=k.computeStrides(r.shape),m=k.sizeFromShape(o),f=o.length,g=k.computeStrides(o),y=k.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=c[N]&&(v[N]=(c[N]-1)*2-v[N]+u);v=v.map((N,T)=>N-l[T]);let x=k.locToIndex(v,d,h);y[b]=p[x]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var Ij={kernelName:Sc,backendName:"cpu",kernelFunc:kj},Nj=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),Tj=Zt(hl,Nj),Sj={kernelName:hl,backendName:"cpu",kernelFunc:Tj},Cj=Ro(Ad());function RT(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=k.parseAxisParam([o],r.shape),c=DT({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),u=_.expandShapeToKeepDim(c.shape,l),p=It({inputs:{x:c},backend:n,attrs:{shape:u}}),d=Ov({inputs:{a:r,b:p},backend:n}),h=vT({inputs:{x:d},backend:n}),m=Zm({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Bv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var _j={kernelName:yi,backendName:"cpu",kernelFunc:RT};function Ej(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;we(r,"multinomial");let l=o?r:RT({inputs:{logits:r},backend:n,attrs:{dim:-1}}),c=l.shape[0],u=l.shape[1],p=n.data.get(l.dataId).values,d=[c,s],h=k.makeZerosTypedArray(k.sizeFromShape(d),"int32");for(let m=0;m=0&&u[p]{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Ym({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=fu({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var Gj={kernelName:vl,backendName:"cpu",kernelFunc:PT};function Hj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;we(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),c=n.data.get(r.dataId).values,u=k.sizeFromShape(r.shape),p=r.shape.length,d=k.computeStrides(r.shape),h=k.sizeFromShape(o),m=o.length,f=k.computeStrides(o),g=k.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yx+l[N]),v=k.locToIndex(b,m,f);g[v]=c[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var OT={kernelName:ri,backendName:"cpu",kernelFunc:Hj},jj=Rt((e,t)=>Math.pow(e,t)),qj=Zt(si,jj),Kj={kernelName:si,backendName:"cpu",kernelFunc:qj};function Xj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=Rv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var Yj={kernelName:Cc,backendName:"cpu",kernelFunc:Xj},Zj=it(kl,e=>1/e),Jj={kernelName:kl,backendName:"cpu",kernelFunc:Zj};function Qj(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;we(r,"resizeBilinear");let l=k.computeStrides(r.shape),[c,u]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(k.sizeFromShape([p,c,u,m])),y=[s&&c>1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=0,x=y[0]/b[0],N=y[1]/b[1];for(let T=0;T1?c-1:c,i&&h>1?u-1:u],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],v=n.data.get(s.dataId).values,x=0;for(let N=0;N1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=y[0]/b[0],x=y[1]/b[1],N=0;for(let T=0;T1?u-1:u,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],v=y[0]/b[0],x=y[1]/b[1],N=1/v,T=1/x,C=Math.ceil(N)*2+2,$=Math.ceil(T)*2+2;for(let F=0;F=h)continue;let ae=O+oe*l[1],pe=oe*v,ue=Math.min(u-1,i?Math.round(pe):Math.floor(pe));if(B===ue)for(let ge=0;ge<$;ge++){let ye=ge+ne;if(ye<0||ye>=m)continue;let ke=ae+ye*l[2],Se=ye*x,Ce=Math.min(p-1,i?Math.round(Se):Math.floor(Se));H===Ce&&(se+=g[ke+J])}}f[K+J]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var iq={kernelName:oh,backendName:"cpu",kernelFunc:sq};function oq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;we(r,"reverse");let i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return sr({inputs:{x:r},backend:n});let l=new Ot(r.shape,r.dtype),c=n.bufferSync(r);for(let u=0;ud[h]=r.shape[h]-1-d[h]),l.set(c.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var lq={kernelName:ci,backendName:"cpu",kernelFunc:oq},uq={kernelName:Ol,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[c,u,p,d]=a.shape,[h,m]=_.getImageCenter(i,u,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let v=0;v=0&&G=0&&q{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),pq={kernelName:pi,backendName:"cpu",kernelFunc:cq};function LT(e,t,n,a,r,s,i,o,l,c){let u=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(u,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:k.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?yq*e:gq*(Math.exp(e)-1)),xq={kernelName:Sl,backendName:"cpu",kernelFunc:bq},vq=it(mi,e=>1/(1+Math.exp(-e))),wq={kernelName:mi,backendName:"cpu",kernelFunc:vq},kq=it(El,e=>e<0?-1:e>0?1:0),Iq={kernelName:El,backendName:"cpu",kernelFunc:kq},Nq=it(hi,e=>Math.sin(e)),Tq={kernelName:hi,backendName:"cpu",kernelFunc:Nq},Sq=it(_l,e=>Math.sinh(e)),Cq={kernelName:_l,backendName:"cpu",kernelFunc:Sq},_q=11920928955078125e-23,zT=Math.log(_q)+2,Eq=it(Al,e=>{let t=e>-zT,n=e{let d=[...u];d[o]=p;let h=Ki({inputs:{x:r},backend:n,attrs:{begin:c,size:d}});return c[o]+=p,h})}var Pq={kernelName:Fl,backendName:"cpu",kernelFunc:Mq},Oq=it(fi,e=>Math.sqrt(e)),Lq={kernelName:fi,backendName:"cpu",kernelFunc:Oq},zq={kernelName:Ac,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;we(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),Wq={kernelName:Hr,backendName:"cpu",kernelFunc:Bq};function Vq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a;we(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=It({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Ki({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=It({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else{let T=n.bufferSync(v),C=fT(b,T,f,m);x=n.makeTensorInfo(C.shape,C.dtype,C.values)}let N=It({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var Uq={kernelName:$l,backendName:"cpu",kernelFunc:Vq},Gq=it(Dl,e=>Math.tan(e)),Hq={kernelName:Dl,backendName:"cpu",kernelFunc:Gq},jq=it(vi,e=>Math.tanh(e)),qq={kernelName:vi,backendName:"cpu",kernelFunc:jq};function Kq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;we(r,"tile");let i=yT(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var Xq={kernelName:Gr,backendName:"cpu",kernelFunc:Kq};function Yq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;we(r,"topk");let o=n.data.get(r.dataId).values,[l,c]=bT(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var Zq={kernelName:Rl,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;we(s,"unique");let i=a.data.get(s.dataId).values,{outputValues:o,outputShape:l,indices:c}=xT(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var Qq={kernelName:ch,backendName:"cpu",kernelFunc:Jq};function e5(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape.length,o=r.shape[s],l=new Array(i-1),c=0;for(let h=0;hn.disposeIntermediateTensorInfo(m)),h}var a5={kernelName:Fc,backendName:"cpu",kernelFunc:n5},r5=[TG,EU,CG,EG,MU,FG,DG,MG,OG,zG,WG,UG,HG,KG,YG,QG,tH,aH,sH,IG,oH,uH,pH,DU,OU,hH,AU,fH,yH,vH,kH,bH,SH,_H,NH,AH,$H,RH,PH,LH,BH,WH,UH,HH,qH,KH,YH,XH,Wv,gG,JH,e6,l6,LU,u6,BU,f6,y6,b6,VU,w6,I6,T6,C6,E6,GU,$6,FU,R6,gH,P6,L6,B6,yG,jU,U6,H6,KU,q6,Y6,J6,tj,aj,sj,YU,lj,cj,dj,mj,gj,ij,xj,wj,JU,Ij,Sj,Aj,eG,nG,Dj,Pj,zj,rG,Wj,Uj,Gj,OT,Kj,xG,oG,Yj,$U,Jj,vG,wG,kG,eq,nq,rq,iq,lq,uq,pq,uG,hq,fq,xq,wq,Iq,Tq,Cq,cG,_j,Aq,$q,Rq,Pq,Lq,zq,dG,Wq,Uq,mG,yj,Hq,qq,Xq,Zq,sG,Qq,t5,a5,Vj];for(let e of r5)Dc(e);var Xi={},Gv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function s5(e,t){Xi[e]=t}function ir(e){if(!(e in Xi)){let n=i5(e);if(n!==null)Xi[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Xi[e];return t.isContextLost()?(delete Xi[e],ir(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Xi[e])}function o5(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function i5(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=o5(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Xi[e]},!1),e===1?t.getContext("webgl",Gv)||t.getContext("experimental-webgl",Gv):t.getContext("webgl2",Gv)}var Ip;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Ip||(Ip={}));var ea;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ea||(ea={}));var nn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(nn||(nn={}));function Np(e,t){return[t,e]}function l5(e,t){return e*t}function Tp(e){let t=k.sizeFromShape(e),n=Math.ceil(t/4);return k.sizeToSquarishShape(n)}function gu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function u5(e,t){let[n,a]=gu(e,t);return n*a*4}function Hv(e,t){let n=e,a,r,s,i,o,l,c,u,p,d;return ee().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,c=4,u=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,c=4,u=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ne(e,t){let n=t();return ee().getBool("DEBUG")&&c5(e),n}function c5(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+p5(e,t))}var d5=596e-10,h5=65504;function m5(e){return!!(ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||d5e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function f5(e,t){let n=Cr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function y5(e,t){let n=Cr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw g5(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var b5=/ERROR: [0-9]+:([0-9]+):/g;function g5(e,t){let n=b5.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` +============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return _.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}makeOutput(e,t,n){let a=this.write(e,t,n);return qa().makeTensorFromDataId(a,t,n,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){we([e],"where");let t=this.readSync(e.dataId);return FU(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Rv.nextDataId=0;var eT={};Oe(eT,{addImpl:()=>nT,bincountImpl:()=>Mv,bincountReduceImpl:()=>aT,ceilImpl:()=>rT,concatImpl:()=>Pv,expImpl:()=>sT,expm1Impl:()=>iT,floorImpl:()=>oT,gatherV2Impl:()=>lT,greaterImpl:()=>uT,lessImpl:()=>cT,linSpaceImpl:()=>pT,logImpl:()=>dT,maxImpl:()=>hT,maximumImpl:()=>mT,minimumImpl:()=>fT,multiplyImpl:()=>Ov,negImpl:()=>gT,notEqualImpl:()=>yT,prodImpl:()=>bT,rangeImpl:()=>zv,rsqrtImpl:()=>xT,simpleAbsImpl:()=>tT,sliceImpl:()=>Zm,squaredDifferenceImpl:()=>vT,stridedSliceImpl:()=>wT,subImpl:()=>kT,tileImpl:()=>IT,topKImpl:()=>NT,transposeImpl:()=>Lv,uniqueImpl:()=>TT});function tT(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;we(t,"abs");let a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=tT(r),n.makeOutput(a,t.shape,"float32")},DU={kernelName:zo,backendName:"cpu",kernelFunc:$U};function Rt(e){return(t,n,a,r,s)=>{let i=_.assertAndGetBroadcastShape(t,n),o=i.length,l=k.computeStrides(i),c=k.sizeFromShape(i),u=k.getTypedArrayFromDType(s,c),p=t.length,d=n.length,h=k.computeStrides(t),m=k.computeStrides(n),f=_.getBroadcastDims(t,i),g=_.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yv[C]=0);let x=k.locToIndex(v,p,h),N=b.slice(-d);g.forEach(C=>N[C]=0);let T=k.locToIndex(N,d,m);u[y]=e(a[x],r[T])}return[u,i]}}function Bn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var RU={kernelName:Ud,backendName:"cpu",kernelFunc:Bn};function Jm(e,t,n="float32"){if(n==="complex64"){let r=Jm(e,t,"float32"),s=Jm(e,t,"float32");return Bn({inputs:{real:r,imag:s},backend:e})}let a=k.makeZerosTypedArray(k.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function ir(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var MU={kernelName:Xs,backendName:"cpu",kernelFunc:ir};function Xi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var PU={kernelName:uh,backendName:"cpu",kernelFunc:Xi};function hs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ir({inputs:{x:r},backend:n});let i=Jm(n,r.shape,r.dtype),o=hs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Bn({inputs:{real:o,imag:i},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Xi({inputs:{input:r},backend:n}),o=hs({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=ir({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32"){let i=n.data.get(r.dataId).values,o=Int32Array.from(i);return n.makeTensorInfo(r.shape,"int32",o)}if(s==="bool"){let i=n.data.get(r.dataId).values,o=k.toTypedArray([0],r.dtype),[l,c]=Rt((u,p)=>u!==p?1:0)(r.shape,[],i,o,"bool");return n.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var OU={kernelName:Ps,backendName:"cpu",kernelFunc:hs};function Zt(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;we([i,o],e);let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let c=hs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),u=l.data.get(c.dataId),p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag,h=l.data.get(p.dataId).values,m=l.data.get(d.dataId).values,f=hs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,v=l.data.get(y.dataId).values,x=l.data.get(b.dataId).values,[N,T,C]=n(i.shape,o.shape,h,m,v,x),F=l.makeTensorInfo(C,"float32",N),$=l.makeTensorInfo(C,"float32",T),P=Bn({inputs:{real:F,imag:$},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(F),l.disposeIntermediateTensorInfo($),P}else{let c=l.data.get(i.dataId).values,u=l.data.get(o.dataId).values,p=a||i.dtype,[d,h]=t(i.shape,o.shape,c,u,p);return l.makeTensorInfo(h,p,d)}}}function Bv(e){return(t,n,a,r,s,i)=>{let o=_.assertAndGetBroadcastShape(t,n),l=k.sizeFromShape(o),c=o.length,u=k.computeStrides(o),p=k.getTypedArrayFromDType("float32",l),d=k.getTypedArrayFromDType("float32",l),h=_.getBroadcastDims(t,o),m=_.getBroadcastDims(n,o),f=_.mergeRealAndImagArrays(a,r),g=_.mergeRealAndImagArrays(s,i),y=t.length,b=k.computeStrides(t),v=n.length,x=k.computeStrides(n);if(h.length+m.length===0)for(let N=0;NC[W]=0);let F=k.locToIndex(C,y,b),$=T.slice(-v);m.forEach(W=>$[W]=0);let P=k.locToIndex($,v,x),B=e(f[F*2],f[F*2+1],g[P*2],g[P*2+1]);p[N]=B.real,d[N]=B.imag}return[p,d,o]}}var nT=Rt((e,t)=>e+t),LU=Bv((e,t,n,a)=>({real:e+n,imag:t+a})),Ip=Zt(Ur,nT,LU),zU={kernelName:Ur,backendName:"cpu",kernelFunc:Ip};function Mv(e,t,n,a,r){let s=k.sizeFromShape(a),i=k.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function aT(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Le([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,c):t.size>0?i.set(i.get(o,c)+t.get(o,l),o,c):i.set(i.get(o,c)+1,o,c))}return i}function du(e){return(t,n,a)=>{let r=k.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=k.sizeFromShape(i.shape),u=n||i.dtype,p=k.getArrayFromDType(u,c);for(let d=0;d{let{x:i}=a;if(we(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,c=n||i.dtype,u=t(l,c,r);return o.makeTensorInfo(i.shape,c,u)}}var rT=du(e=>Math.ceil(e)),BU=hu(Os,rT),WU={kernelName:Os,backendName:"cpu",kernelFunc:BU};function Pv(e,t,n,a){let r=k.getArrayFromDType(n,k.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=k.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?_.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let c=0;cMath.exp(e)),ST=hu(Gs,sT),VU={kernelName:Gs,backendName:"cpu",kernelFunc:ST},iT=du(e=>Math.expm1(e)),UU=hu(tl,iT),GU={kernelName:tl,backendName:"cpu",kernelFunc:UU},oT=du(e=>Math.floor(e)),HU=hu(Hs,oT),jU={kernelName:Hs,backendName:"cpu",kernelFunc:HU};function lT(e,t,n){let a=Le(n,e.dtype);for(let r=0;re>t?1:0),qU=Zt(sl,uT,null,"bool"),KU={kernelName:sl,backendName:"cpu",kernelFunc:qU},cT=Rt((e,t)=>eMath.log(e)),ZU=hu(Zs,dT),JU={kernelName:Zs,backendName:"cpu",kernelFunc:ZU};function hT(e,t,n,a){let r=k.getTypedArrayFromDType(a,k.sizeFromShape(n));for(let s=0;so&&(o=c)}r[s]=o}return r}var mT=Rt((e,t)=>Math.max(e,t)),QU=Zt(Qs,mT),eG={kernelName:Qs,backendName:"cpu",kernelFunc:QU},fT=Rt((e,t)=>Math.min(e,t)),tG=Zt(ai,fT),nG={kernelName:ai,backendName:"cpu",kernelFunc:tG},Ov=Rt((e,t)=>e*t),aG=Bv((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Wv=Zt(ri,Ov,aG),rG={kernelName:ri,backendName:"cpu",kernelFunc:Wv};function gT(e,t,n){let a=k.createScalarValue(-1,n);return Ov([],t,a,e,n)}function sG(e){let{inputs:t,backend:n}=e,{x:a}=t;we(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=gT(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var iG={kernelName:ml,backendName:"cpu",kernelFunc:sG},yT=Rt((e,t)=>e!==t?1:0),oG=Zt(fl,yT,null,"bool"),lG={kernelName:fl,backendName:"cpu",kernelFunc:oG};function Lv(e,t,n,a,r){let s=t.length,i=k.sizeFromShape(t),o=k.computeStrides(t),l=k.computeStrides(r),c=k.getTypedArrayFromDType(n,k.sizeFromShape(r));for(let u=0;un.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var pG={kernelName:wl,backendName:"cpu",kernelFunc:cG};function zv(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return k.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=k.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),dG=hu(mi,xT),hG={kernelName:mi,backendName:"cpu",kernelFunc:dG};function Zm(e,t,n,a,r){let s=pn.isSliceContinous(a,t,n),i=k.sizeFromShape(n),o=k.computeStrides(a);if(s){let p=pn.computeFlatOffset(t,o);return r==="string"?e.slice(p,p+i):e.subarray(p,p+i)}let l=r==="string"?_.fromUint8ToStringArray(e):e,c=Le(a,r,l),u=Le(n,r);for(let p=0;pm+t[f]);u.set(c.get(...h),...d)}return r==="string"?_.fromStringArrayToUint8(u.values):u.values}function Yi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;we(r,"slice");let[o,l]=pn.parseSliceParams(r,s,i);pn.assertParamsValid(r,o,l);let c=n.data.get(r.dataId).values,u=Zm(c,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,u)}var mG={kernelName:Cl,backendName:"cpu",kernelFunc:Yi},vT=Rt((e,t)=>{let n=e-t;return n*n}),fG=Zt(vi,vT),gG={kernelName:vi,backendName:"cpu",kernelFunc:fG};function wT(e,t,n,a){let r=Le(e,t.dtype);for(let s=0;se-t),yG=Bv((e,t,n,a)=>({real:e-n,imag:t-a})),Vv=Zt(wi,kT,yG),bG={kernelName:wi,backendName:"cpu",kernelFunc:Vv};function IT(e,t){let n=new Array(e.rank);for(let r=0;rv.value-b.value);let f=p*a,g=l.subarray(f,f+a),y=c.subarray(f,f+a);for(let b=0;b{for(let g=0;gnew Rv,1);var CT=it(Zo,e=>e>=0?e:Math.exp(e)-1),vG={kernelName:Zo,backendName:"cpu",kernelFunc:CT};function _T(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;we([r],"leakyRelu");let i=k.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=k.getTypedArrayFromDType("float32",i);for(let c=0;ce<0?t*e:e);function ET(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;we([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=kG(a.shape,r.shape,s,i,a.dtype);return n.makeTensorInfo(l,a.dtype,o)}var IG={kernelName:li,backendName:"cpu",kernelFunc:ET},AT=it(ui,e=>Math.max(0,e)),NG={kernelName:ui,backendName:"cpu",kernelFunc:AT},FT=it(pi,e=>Math.min(Math.max(0,e),6)),TG={kernelName:pi,backendName:"cpu",kernelFunc:FT};function Uv(e,t,n,a,r){if(n==="linear")return ir({inputs:{x:t},backend:e});if(n==="relu")return AT({inputs:{x:t},backend:e});if(n==="elu")return CT({inputs:{x:t},backend:e});if(n==="relu6")return FT({inputs:{x:t},backend:e});if(n==="prelu")return ET({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return _T({inputs:{x:t},backend:e,attrs:{alpha:r}});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function It(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=k.sizeFromShape(r.shape),o=k.inferFromImplicitShape(s,i),l=k.sizeFromShape(o);k.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let c=n.data.get(r.dataId);if(c.complexTensorInfos!=null){let u=c.complexTensorInfos.real,p=c.complexTensorInfos.imag;u.shape=o,p.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var SG={kernelName:Il,backendName:"cpu",kernelFunc:It};function $T(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;we([r,s],"matMul");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=It({inputs:{x:r},backend:n,attrs:{shape:x}}),C=It({inputs:{x:s},backend:n,attrs:{shape:N}}),F=i?T.shape[1]:T.shape[2],$=i?T.shape[2]:T.shape[1],P=o?C.shape[1]:C.shape[2],B=Math.max(g,y),W=n.data.get(T.dataId).values,G=n.data.get(C.dataId).values,q=k.computeStrides(T.shape),j=k.computeStrides(C.shape),[X,K,ne]=i?[q[0],1,q[1]]:[q[0],q[1],1],[J,se,Q]=o?[1,j[1],j[0]]:[j[1],1,j[0]],oe=$*P,ae=Le([B,$,P],T.dtype),pe=ae.values,ue=n.blockSize;for(let ge=0;geMath.acos(e)),FG={kernelName:Bo,backendName:"cpu",kernelFunc:AG},$G=it(Wo,e=>Math.acosh(e)),DG={kernelName:Wo,backendName:"cpu",kernelFunc:$G};function RG(e){let{inputs:t,backend:n}=e,a=t;we(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Le(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=N,v=x)}h[g]=v}return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var WG={kernelName:Ds,backendName:"cpu",kernelFunc:BG};function VG(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;we(r,"argMin");let i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=xa({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],_.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[u,p]=_.computeOutAndReduceShapes(l.shape,i),d=k.sizeFromShape(u),h=k.makeZerosTypedArray(d,"int32"),m=k.sizeFromShape(p),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(u,"int32",h)}var UG={kernelName:mc,backendName:"cpu",kernelFunc:VG},GG=it(Vo,e=>Math.asin(e)),HG={kernelName:Vo,backendName:"cpu",kernelFunc:GG},jG=it(Uo,e=>Math.asinh(e)),qG={kernelName:Uo,backendName:"cpu",kernelFunc:jG},KG=it(Go,e=>Math.atan(e)),XG={kernelName:Go,backendName:"cpu",kernelFunc:KG},YG=Rt((e,t)=>Math.atan2(e,t)),ZG=Zt(jo,YG),JG={kernelName:jo,backendName:"cpu",kernelFunc:ZG},QG=it(Ho,e=>Math.atanh(e)),eH={kernelName:Ho,backendName:"cpu",kernelFunc:QG};function Gv(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,c=r.dilationWidth,u=r.effectiveFilterHeight,p=r.effectiveFilterWidth,d=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Le(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],v=r.outShape[3];for(let x=0;xK?K=ue:s==="avg"&&(ne+=ue,J++)}if(isNaN(K))break}let se=W+G*v+C;g[se]=s==="avg"?ne/J:K}}}return f}function DT(e,t,n,a,r=!1,s=!1){let i=Le(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,c=a.dilationHeight,u=a.dilationWidth,p=a.effectiveFilterHeight,d=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Le(t,n,e);for(let g=0;gP&&(P=X,r?B=s?((g*a.inHeight+W)*a.inWidth+q)*a.inChannels+y:(W*a.inWidth+q)*a.inChannels+y:B=G*d+j)}}i.set(B,g,b,T,y)}}return i}function RT(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,c=r.dilationDepth,u=r.dilationHeight,p=r.dilationWidth,d=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,v=Le(r.outShape,n),x=v.values,N=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],F=r.outShape[4];for(let $=0;$ke?ke=pt:s==="avg"&&(Se+=pt,Ce++),isNaN(ke))break}if(isNaN(ke))break}if(isNaN(ke))break}let Re=ye+W;x[Re]=s==="avg"?Se/Ce:ke}}}}return v}function tH(e,t){let n=Le(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,u=t.effectiveFilterHeight,p=t.effectiveFilterWidth,d=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=G&&(G=Q,q=X*u*p+ne*u+se)}}}n.set(q,f,y,N,$,g)}}}return n}function nH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;we(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=ir({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=Gv(d,r.shape,r.dtype,h,u,"avg");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var aH={kernelName:Rs,backendName:"cpu",kernelFunc:nH};function rH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"avgPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=RT(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"avg");return n.makeTensorInfo(d.shape,"float32",d.values)}var sH={kernelName:fc,backendName:"cpu",kernelFunc:rH};function iH(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"avgPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=u.strideDepth,d=u.strideHeight,h=u.strideWidth,m=u.filterDepth,f=u.filterHeight,g=u.filterWidth,y=u.dilationDepth,b=u.dilationHeight,v=u.dilationWidth,x=u.effectiveFilterDepth,N=u.effectiveFilterHeight,T=u.effectiveFilterWidth,C=x-1-u.padInfo.front,F=T-1-u.padInfo.left,$=N-1-u.padInfo.top,P=Le(s.shape,"float32"),B=1/(m*f*g),W=n.bufferSync(r);for(let G=0;G=u.outDepth||Math.floor(ae)!==ae))for(let pe=0;pe=u.outHeight||Math.floor(ue)!==ue))for(let ge=0;ge=u.outWidth||Math.floor(ye)!==ye||(Q+=W.get(G,ae,ue,ye,q))}}}P.set(Q*B,G,j,X,K,q)}return n.makeTensorInfo(P.shape,P.dtype,P.values)}var oH={kernelName:Wd,backendName:"cpu",kernelFunc:iH};function lH(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;we([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=u.strideHeight,d=u.strideWidth,h=u.filterHeight,m=u.filterWidth,f=u.dilationHeight,g=u.dilationWidth,y=u.effectiveFilterHeight,b=u.effectiveFilterWidth,v=b-1-u.padInfo.left,x=y-1-u.padInfo.top,N=Le(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,F=Le(r.shape,"float32",C);for(let $=0;$=u.outHeight||Math.floor(K)!==K))for(let ne=0;ne=u.outWidth||Math.floor(J)!==J||(j+=F.get($,K,J,P))}}N.set(j*T,$,B,W,P)}return n.makeTensorInfo(N.shape,N.dtype,N.values)}var uH={kernelName:Bd,backendName:"cpu",kernelFunc:lH};function cH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;k.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),we([r,o,l,s,i],"batchNorm");let{varianceEpsilon:c}=a;c==null&&(c=.001);let u=n.data.get(r.dataId).values,p=n.data.get(o.dataId).values,d=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(u.length),g=m.length,y=h.length,b=d.length,v=p.length,x=0,N=0,T=0,C=0;for(let F=0;F=g&&(x=0),N>=v&&(N=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var pH={kernelName:qs,backendName:"cpu",kernelFunc:cH};function dH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;we([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=It({inputs:{x:r},backend:n,attrs:{shape:l}}),m=xa({inputs:{x:h},backend:n,attrs:{perm:c}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Yi({inputs:{x:f},backend:n,attrs:{begin:p,size:d}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var hH={kernelName:gc,backendName:"cpu",kernelFunc:dH};function mH(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,c=Mv(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var fH={kernelName:Vd,backendName:"cpu",kernelFunc:mH},gH=it(Gr,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(k.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let c=0;cf.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(f=>k.sizeFromShape(f.shape)>0);if(o.length===1)return ir({inputs:{x:o[0]},backend:n});let l=o.map(f=>f.shape);if(_.assertParamsConsistent(l,s),o[0].dtype==="complex64"){let f=o.map(x=>Xi({inputs:{input:x},backend:n})),g=o.map(x=>mu({inputs:{input:x},backend:n})),y=fu({inputs:f,backend:n,attrs:{axis:s}}),b=fu({inputs:g,backend:n,attrs:{axis:s}}),v=Bn({inputs:{real:y,imag:b},backend:n});return f.forEach(x=>n.disposeIntermediateTensorInfo(x)),g.forEach(x=>n.disposeIntermediateTensorInfo(x)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),v}let c=o.map(f=>{let g=k.sizeFromShape(f.shape.slice(s));return It({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),u=c.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));i=_.computeOutShape(c.map(f=>f.shape),1);let p=c[0].shape[0]===1,d=Pv(u,i,t[0].dtype,p),h=_.computeOutShape(o.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,d);return c.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var wH={kernelName:qo,backendName:"cpu",kernelFunc:fu};function MT(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a;we([r,s],"conv2d");let p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h=d.filterHeight,m=d.filterWidth,f=d.dilationHeight,g=d.dilationWidth,y=d.padInfo.left,b=d.padInfo.top,v=d.dataFormat==="channelsLast",x=new Ot(d.outShape,r.dtype),N=k.computeStrides(r.shape),T=k.computeStrides(s.shape),C=N[0],F=v?N[1]:N[2],$=v?N[2]:1,P=v?1:N[1],B=x.strides[0],W=v?x.strides[1]:x.strides[2],G=v?x.strides[2]:1,q=v?1:x.strides[1],j=n.data.get(r.dataId).values,X=n.data.get(s.dataId).values,K=x.values;for(let ne=0;ne=d.inHeight)continue;let ge=pe*T[0],ye=J+ue*F;for(let ke=0;ke=d.inWidth)continue;let Ve=ge+Re*T[1],st=ye+Ke*$,lt=Ve;for(let He=0;He=c.inDepth)continue;let ne=X*$[0],J=B+K*F[1];for(let se=0;se=c.inHeight)continue;let ue=ne+ae*$[1],ge=J+pe*F[2];for(let ye=0;ye=c.inWidth)continue;let Ke=ue+Ce*$[2],Ve=ge+Re*c.inChannels,st=Ke;for(let lt=0;ltMath.cos(e)),RH={kernelName:Bs,backendName:"cpu",kernelFunc:DH},MH=it(Ko,e=>Math.cosh(e)),PH={kernelName:Ko,backendName:"cpu",kernelFunc:MH};function OH(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,[u,p,d,h]=r.shape,m=s.shape[0],[f,g]=o,y=Le([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,v=n.data.get(i.dataId).values,x=n.data.get(r.dataId).values,N=k.computeStrides(r.shape),T=k.computeStrides(y.shape);for(let C=0;C=u)continue;let q=f>1?(B-$)*(p-1)/(f-1):0,j=g>1?(W-P)*(d-1)/(g-1):0;for(let X=0;X1?$*(p-1)+X*q:.5*($+B)*(p-1);if(K<0||K>p-1){for(let ne=0;ne1?P*(d-1)+Q*j:.5*(P+W)*(d-1);if(oe<0||oe>d-1){for(let ge=0;ge1?P*(d-1)+ne*j:.5*(P+W)*(d-1);if(J<0||J>d-1){for(let oe=0;oey+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`),k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=r.shape[1],c=r.shape[2],u=r.shape[3],p=l*s,d=c*s,h=u/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*p*d*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${d}'`);let h=_.computeConv2DInfo(r.shape,s.shape,i,d,o,c,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,v=b.left,x=b.top,N=h.outChannels/h.inChannels,T=new Ot(h.outShape,r.dtype),C=n.data.get(r.dataId).values,F=n.data.get(s.dataId).values,$=T.values;for(let P=0;P=h.inHeight)continue;let ne=X*p[0],J=B+K*u[1];for(let se=0;se=h.inWidth)continue;let ue=ne+ae*p[1],ge=J+pe*h.inChannels,ye=Q,ke=ue;for(let Se=0;Se{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,c=l.data.get(a.dataId).values,u=a.shape.length,p=l.data.get(r.dataId).values,d=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:v,strideHeight:x,strideWidth:N,filterHeight:T,filterWidth:C,dilationHeight:F,dilationWidth:$,outShape:P}=_.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),B=k.sizeFromShape(P),W=P.length,G=k.getArrayFromDType(a.dtype,B);for(let q=0;q=0&&ae=0&&uese&&(se=ke)}}}let Q=k.locToIndex([q,j,K,J],W,k.computeStrides(P));G[Q]=se}}}return{dataId:l.write(k.toTypedArray(G,a.dtype),P,a.dtype),shape:P,dtype:a.dtype}}},QH={kernelName:Jd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:F,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===$.length,()=>`Error in ${Jd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let P=k.toNestedArray($,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(r.shape,r.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=Q,se=ae)}}}B[J][se][K]+=P[W][G][j][K]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},e6={kernelName:Zd,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,c=t,u=k.toNestedArray(a.shape,c.data.get(a.dataId).values),p=k.toNestedArray(r.shape,c.data.get(r.dataId).values),{batchSize:d,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:v,strideWidth:x,filterHeight:N,filterWidth:T,dilationHeight:C,dilationWidth:F,outShape:$}=_.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);k.assert(s.rank===$.length,()=>`Error in ${Zd}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let P=k.toNestedArray($,c.data.get(s.dataId).values),B=k.makeZerosNestedTypedArray(a.shape,a.dtype);for(let W=0;W=0&&oe=0&&pene&&(ne=ue,J=oe,se=pe)}}}B[W][J][se][K]+=P[W][G][j][K]}}}return{dataId:c.write(k.toTypedArray(B,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function t6(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;we([a,r],"eluGrad");let s=new Float32Array(k.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(c+1)}return n.makeTensorInfo(r.shape,"float32",s)}var n6={kernelName:Qd,backendName:"cpu",kernelFunc:t6},a6=Rt((e,t)=>e===t?1:0),OT=Zt(Qo,a6,null,"bool"),r6={kernelName:Qo,backendName:"cpu",kernelFunc:OT},s6=_.ERF_P,i6=_.ERF_A1,o6=_.ERF_A2,l6=_.ERF_A3,u6=_.ERF_A4,c6=_.ERF_A5,p6=it(Jo,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+s6*n);return t*(1-((((c6*a+u6)*a+l6)*a+o6)*a+i6)*a*Math.exp(-n*n))}),d6={kernelName:Jo,backendName:"cpu",kernelFunc:p6};function Qm(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),It({inputs:{x:r},backend:n,attrs:{shape:o}})}var h6={kernelName:el,backendName:"cpu",kernelFunc:Qm},m6=Rt((e,t)=>e/t),Hv=Zt(Us,m6),jv={kernelName:Us,backendName:"cpu",kernelFunc:Hv};function LT(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,c=[r,s],u=k.sizeFromShape(c),p=k.getTypedArrayFromDType("float32",u),d=k.getTypedArrayFromDType("float32",u);for(let g=0;g{let{image:a}=e,r=n,s=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[i,o,l,c]=a.shape,u=r.data.get(a.dataId).values;for(let p=0;p=0&&vMath.floor(e/t)),N6=Zt(js,I6,null,"int32"),T6={kernelName:js,backendName:"cpu",kernelFunc:N6};function S6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=MT({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=Ip({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Uv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var C6={kernelName:Ti,backendName:"cpu",kernelFunc:S6};function _6(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=PT({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d}});if(i){let g=f;f=Ip({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Uv(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var E6={kernelName:Si,backendName:"cpu",kernelFunc:_6};function A6(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=k.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,c,u,p]=_.prepareAndValidate(a,r);if(c===0)return n.makeTensorInfo(l,a.dtype,[]);let d=Le([c,u],a.dtype),h=n.data.get(r.dataId).values,m=n.data.get(a.dataId).values;for(let f=0;f=s/u)throw new Error(`Invalid indices: ${g} does not index into ${a.shape}`);for(let b=0;be>=t?1:0),M6=Zt(Ks,R6,null,"bool"),P6={kernelName:Ks,backendName:"cpu",kernelFunc:M6};function O6(e){let{inputs:t,backend:n}=e,{input:a}=t,r=k.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=It({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=LT(o,!0,n),c=It({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),c}var L6={kernelName:th,backendName:"cpu",kernelFunc:O6},z6=it(il,e=>Number.isFinite(e)?1:0,"bool"),B6={kernelName:il,backendName:"cpu",kernelFunc:z6},W6=it(ol,e=>Math.abs(e)===Infinity?1:0,"bool"),V6={kernelName:ol,backendName:"cpu",kernelFunc:W6},U6=it(ll,e=>Number.isNaN(e)?1:0,"bool"),G6={kernelName:ll,backendName:"cpu",kernelFunc:U6},H6=Rt((e,t)=>e<=t?1:0),j6=Zt(cl,H6,null,"bool"),q6={kernelName:cl,backendName:"cpu",kernelFunc:j6};function K6(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=pT(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var X6={kernelName:ah,backendName:"cpu",kernelFunc:K6},Y6=it(pl,e=>Math.log1p(e)),Z6={kernelName:pl,backendName:"cpu",kernelFunc:Y6},J6=Rt((e,t)=>e&&t),Q6=Zt(dl,J6,null,"bool"),ej={kernelName:dl,backendName:"cpu",kernelFunc:Q6},tj=it(wc,e=>e?0:1,"bool"),nj={kernelName:wc,backendName:"cpu",kernelFunc:tj},aj=Rt((e,t)=>e||t),rj=Zt(kc,aj,null,"bool"),sj={kernelName:kc,backendName:"cpu",kernelFunc:rj};function ij(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;we(r,"LRN");let c=r.shape[3],u=c-1,p=n.data.get(r.dataId).values,d=k.sizeFromShape(r.shape),h=new Float32Array(d);function m(f){let g=f%c,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,u),v=0;for(;y<=b;y++){let x=p[y];v+=x*x}return v}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l),p;if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))p=ir({inputs:{x:r},backend:n});else{let d=n.data.get(r.dataId).values,h=k.computeStrides(r.shape),m=Gv(d,r.shape,r.dtype,h,u,"max");p=n.makeTensorInfo(u.outShape,r.dtype,m.values)}return p}var dj={kernelName:ei,backendName:"cpu",kernelFunc:pj};function hj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a;we(r,"maxPool3d");let u=_.computePool3DInfo(r.shape,s,i,1,o,l,c),p=n.data.get(r.dataId).values,d=RT(p,r.shape,r.dtype,k.computeStrides(r.shape),u,"max");return n.makeTensorInfo(d.shape,"float32",d.values)}var mj={kernelName:Nc,backendName:"cpu",kernelFunc:hj};function fj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=a;we([r,s],"maxPool3DGrad");let u=_.computePool3DInfo(s.shape,i,o,1,l,c),p=n.bufferSync(s),d=tH(p,u),h=u.strideDepth,m=u.strideHeight,f=u.strideWidth,g=u.dilationDepth,y=u.dilationHeight,b=u.dilationWidth,v=u.effectiveFilterDepth,x=u.effectiveFilterHeight,N=u.effectiveFilterWidth,T=v-1-u.padInfo.front,C=N-1-u.padInfo.left,F=x-1-u.padInfo.top,$=Le(s.shape,"float32"),P=n.bufferSync(r);for(let B=0;B=u.outDepth||Math.floor(Q)!==Q))for(let oe=0;oe=u.outHeight||Math.floor(ae)!==ae))for(let pe=0;pe=u.outWidth||Math.floor(ue)!==ue)continue;let ge=v*x*N-1-d.get(B,Q,ae,ue,W),ye=se*x*N+oe*N+pe,ke=ge===ye?1:0;ke!==0&&(J+=P.get(B,Q,ae,ue,W)*ke)}}}$.set(J,B,G,q,j,W)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var gj={kernelName:ih,backendName:"cpu",kernelFunc:fj};function yj(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;we([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=n.data.get(o.dataId).values,m=Le(d.outShape,o.dtype,DT(h,o.shape,o.dtype,d).values),f=d.strideHeight,g=d.strideWidth,y=d.dilationHeight,b=d.dilationWidth,v=d.effectiveFilterHeight,x=d.effectiveFilterWidth,N=x-1-d.padInfo.left,T=v-1-d.padInfo.top,C=Le(o.shape,"float32"),F=n.data.get(r.dataId).values,$=Le(r.shape,"float32",F);for(let P=0;P=d.outHeight||Math.floor(ne)!==ne))for(let J=0;J=d.outWidth||Math.floor(se)!==se)continue;let Q=v*x-1-m.get(P,ne,se,B),oe=K*x+J,ae=Q===oe?1:0;ae!==0&&(X+=$.get(P,ne,se,B)*ae)}}C.set(X,P,W,G,B)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var bj={kernelName:sh,backendName:"cpu",kernelFunc:yj};function xj(e,t,n,a,r){let s=k.computeStrides(t),i=Gv(e,t,n,s,r,"max"),o=DT(e,t,n,r,!0,a);return[i.values,o.values]}var vj={kernelName:oh,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;we(a,"MaxPoolWithArgmax");let c=l.data.get(a.dataId).values,u=_.computePool2DInfo(a.shape,r,s,[1,1],i),[p,d]=xj(c,a.shape,a.dtype,o,u),h=l.write(p,u.outShape,a.dtype),m=l.write(d,u.outShape,a.dtype);return[{dataId:h,shape:u.outShape,dtype:a.dtype},{dataId:m,shape:u.outShape,dtype:"int32"}]}};function ef(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"sum");let o;r.dtype==="bool"?o=hs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=ir({inputs:{x:r},backend:n});let l=o.shape.length,c=k.parseAxisParam(s,o.shape),u=_.getAxesPermutation(c,l),p=c,d=o;u!=null&&(d=xa({inputs:{x:o},backend:n,attrs:{perm:u}}),p=_.getInnerMostAxes(p.length,l)),_.assertAxesAreInnerMostDims("sum",p,d.shape.length);let[h,m]=_.computeOutAndReduceShapes(d.shape,p),f=_.upcastType(d.dtype,"int32"),g=Jm(n,h,f),y=k.sizeFromShape(m),b=n.data.get(g.dataId).values,v=n.data.get(d.dataId).values;for(let x=0;xn.disposeIntermediateTensorInfo(f)),m}var Ij={kernelName:ti,backendName:"cpu",kernelFunc:kj};function Nj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;we(r,"min");let o=k.parseAxisParam(s,r.shape),l=o,c=_.getAxesPermutation(l,r.shape.length),u=r;c!=null&&(u=xa({inputs:{x:r},backend:n,attrs:{perm:c}}),l=_.getInnerMostAxes(l.length,r.shape.length)),_.assertAxesAreInnerMostDims("min",l,u.shape.length);let[p,d]=_.computeOutAndReduceShapes(u.shape,l),h=k.sizeFromShape(d),m=k.makeZerosTypedArray(k.sizeFromShape(p),u.dtype),f=n.data.get(u.dataId).values;for(let y=0;yb[0]+r.shape[v]+b[1]),l=s.map(b=>b[0]),c=s.map((b,v)=>b[0]+r.shape[v]),u=i==="reflect"?0:1,p=n.data.get(r.dataId).values,d=r.shape.length,h=k.computeStrides(r.shape),m=k.sizeFromShape(o),f=o.length,g=k.computeStrides(o),y=k.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=c[N]&&(v[N]=(c[N]-1)*2-v[N]+u);v=v.map((N,T)=>N-l[T]);let x=k.locToIndex(v,d,h);y[b]=p[x]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var Cj={kernelName:Tc,backendName:"cpu",kernelFunc:Sj},_j=Rt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),Ej=Zt(hl,_j),Aj={kernelName:hl,backendName:"cpu",kernelFunc:Ej},Fj=Po(Dd());function BT(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=k.parseAxisParam([o],r.shape),c=zT({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),u=_.expandShapeToKeepDim(c.shape,l),p=It({inputs:{x:c},backend:n,attrs:{shape:u}}),d=Vv({inputs:{a:r,b:p},backend:n}),h=ST({inputs:{x:d},backend:n}),m=ef({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=It({inputs:{x:m},backend:n,attrs:{shape:u}}),g=Hv({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var $j={kernelName:xi,backendName:"cpu",kernelFunc:BT};function Dj(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;we(r,"multinomial");let l=o?r:BT({inputs:{logits:r},backend:n,attrs:{dim:-1}}),c=l.shape[0],u=l.shape[1],p=n.data.get(l.dataId).values,d=[c,s],h=k.makeZerosTypedArray(k.sizeFromShape(d),"int32");for(let m=0;m=0&&u[p]{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=Qm({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=fu({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var Kj={kernelName:vl,backendName:"cpu",kernelFunc:VT};function Xj(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;we(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),c=n.data.get(r.dataId).values,u=k.sizeFromShape(r.shape),p=r.shape.length,d=k.computeStrides(r.shape),h=k.sizeFromShape(o),m=o.length,f=k.computeStrides(o),g=k.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yx+l[N]),v=k.locToIndex(b,m,f);g[v]=c[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var UT={kernelName:ii,backendName:"cpu",kernelFunc:Xj},Yj=Rt((e,t)=>Math.pow(e,t)),Zj=Zt(oi,Yj),Jj={kernelName:oi,backendName:"cpu",kernelFunc:Zj};function Qj(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=zv(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var eq={kernelName:Sc,backendName:"cpu",kernelFunc:Qj},tq=it(kl,e=>1/e),nq={kernelName:kl,backendName:"cpu",kernelFunc:tq};function aq(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;we(r,"resizeBilinear");let l=k.computeStrides(r.shape),[c,u]=o,[p,d,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(k.sizeFromShape([p,c,u,m])),y=[s&&c>1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=0,x=y[0]/b[0],N=y[1]/b[1];for(let T=0;T1?c-1:c,i&&h>1?u-1:u],g=[i&&d>1?d-1:d,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],v=n.data.get(s.dataId).values,x=0;for(let N=0;N1?d-1:d,s&&u>1?h-1:h],b=[s&&c>1?c-1:c,s&&u>1?u-1:u],v=y[0]/b[0],x=y[1]/b[1],N=0;for(let T=0;T1?u-1:u,i&&m>1?p-1:p],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],v=y[0]/b[0],x=y[1]/b[1],N=1/v,T=1/x,C=Math.ceil(N)*2+2,F=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let ae=P+oe*l[1],pe=oe*v,ue=Math.min(u-1,i?Math.round(pe):Math.floor(pe));if(B===ue)for(let ge=0;ge=m)continue;let ke=ae+ye*l[2],Se=ye*x,Ce=Math.min(p-1,i?Math.round(Se):Math.floor(Se));j===Ce&&(se+=g[ke+J])}}f[X+J]=se}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var cq={kernelName:ch,backendName:"cpu",kernelFunc:uq};function pq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;we(r,"reverse");let i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return ir({inputs:{x:r},backend:n});let l=new Ot(r.shape,r.dtype),c=n.bufferSync(r);for(let u=0;ud[h]=r.shape[h]-1-d[h]),l.set(c.get(...d),...p)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var dq={kernelName:di,backendName:"cpu",kernelFunc:pq},hq={kernelName:Ol,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=k.getTypedArrayFromDType(a.dtype,k.sizeFromShape(a.shape)),[c,u,p,d]=a.shape,[h,m]=_.getImageCenter(i,u,p),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let v=0;v=0&&G=0&&q{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),fq={kernelName:hi,backendName:"cpu",kernelFunc:mq};function GT(e,t,n,a,r,s,i,o,l,c){let u=[a/r,r],p=e.values,d=t.values;if(a===0)return Le(n,t.dtype);let h=Le(u,t.dtype);h.values.fill(l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1||r.shape.length===1?1:k.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?wq*e:vq*(Math.exp(e)-1)),Iq={kernelName:Sl,backendName:"cpu",kernelFunc:kq},Nq=it(gi,e=>1/(1+Math.exp(-e))),Tq={kernelName:gi,backendName:"cpu",kernelFunc:Nq},Sq=it(El,e=>e<0?-1:e>0?1:0),Cq={kernelName:El,backendName:"cpu",kernelFunc:Sq},_q=it(fi,e=>Math.sin(e)),Eq={kernelName:fi,backendName:"cpu",kernelFunc:_q},Aq=it(_l,e=>Math.sinh(e)),Fq={kernelName:_l,backendName:"cpu",kernelFunc:Aq},$q=11920928955078125e-23,HT=Math.log($q)+2,Dq=it(Al,e=>{let t=e>-HT,n=e{let d=[...u];d[o]=p;let h=Yi({inputs:{x:r},backend:n,attrs:{begin:c,size:d}});return c[o]+=p,h})}var Bq={kernelName:Fl,backendName:"cpu",kernelFunc:zq},Wq=it(yi,e=>Math.sqrt(e)),Vq={kernelName:yi,backendName:"cpu",kernelFunc:Wq},Uq={kernelName:Ec,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;we(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),Hq={kernelName:jr,backendName:"cpu",kernelFunc:Gq};function jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a;we(r,"stridedSlice");let{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=It({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Yi({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=It({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else{let T=n.bufferSync(v),C=wT(b,T,f,m);x=n.makeTensorInfo(C.shape,C.dtype,C.values)}let N=It({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var qq={kernelName:$l,backendName:"cpu",kernelFunc:jq},Kq=it(Dl,e=>Math.tan(e)),Xq={kernelName:Dl,backendName:"cpu",kernelFunc:Kq},Yq=it(ki,e=>Math.tanh(e)),Zq={kernelName:ki,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;we(r,"tile");let i=IT(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var Qq={kernelName:Hr,backendName:"cpu",kernelFunc:Jq};function e5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;we(r,"topk");let o=n.data.get(r.dataId).values,[l,c]=NT(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var t5={kernelName:Rl,backendName:"cpu",kernelFunc:e5};function n5(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;we(s,"unique");let i=a.data.get(s.dataId).values,{outputValues:o,outputShape:l,indices:c}=TT(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var a5={kernelName:hh,backendName:"cpu",kernelFunc:n5};function r5(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape.length,o=r.shape[s],l=new Array(i-1),c=0;for(let h=0;hn.disposeIntermediateTensorInfo(m)),h}var o5={kernelName:Ac,backendName:"cpu",kernelFunc:i5},l5=[EG,DU,FG,DG,zU,MG,OG,zG,WG,UG,HG,qG,XG,JG,eH,aH,sH,oH,uH,CG,pH,hH,fH,OU,WU,yH,RU,xH,wH,NH,SH,kH,AH,$H,_H,RH,PH,LH,BH,VH,GH,HH,qH,XH,ZH,JH,e6,QH,jv,vG,n6,r6,d6,VU,h6,GU,x6,w6,k6,jU,T6,C6,E6,F6,D6,KU,P6,MU,L6,vH,B6,V6,G6,wG,YU,q6,X6,JU,Z6,ej,nj,sj,oj,uj,eG,dj,mj,gj,bj,vj,cj,Ij,Tj,nG,Cj,Aj,Rj,rG,iG,Oj,Bj,Uj,lG,Hj,qj,Kj,UT,Jj,IG,pG,eq,PU,nq,NG,TG,SG,rq,iq,lq,cq,dq,hq,fq,hG,yq,xq,Iq,Tq,Cq,Eq,Fq,mG,$j,Rq,Pq,Lq,Bq,Vq,Uq,gG,Hq,qq,bG,wj,Xq,Zq,Qq,t5,uG,a5,s5,o5,jj];for(let e of l5)$c(e);var Zi={},Xv={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function u5(e,t){Zi[e]=t}function or(e){if(!(e in Zi)){let n=c5(e);if(n!==null)Zi[e]=n;else return console.log("Could not get context for WebGL version",e),null}let t=Zi[e];return t.isContextLost()?(delete Zi[e],or(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),Zi[e])}function p5(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function c5(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let t=p5(e);return t.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Zi[e]},!1),e===1?t.getContext("webgl",Xv)||t.getContext("experimental-webgl",Xv):t.getContext("webgl2",Xv)}var Np;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Np||(Np={}));var ea;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ea||(ea={}));var nn;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(nn||(nn={}));function Tp(e,t){return[t,e]}function d5(e,t){return e*t}function Sp(e){let t=k.sizeFromShape(e),n=Math.ceil(t/4);return k.sizeToSquarishShape(n)}function gu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function h5(e,t){let[n,a]=gu(e,t);return n*a*4}function Yv(e,t){let n=e,a,r,s,i,o,l,c,u,p,d;return ee().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,c=4,u=1,p=n.HALF_FLOAT,d=n.FLOAT):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,c=4,u=4,p=t!=null?t.HALF_FLOAT_OES:null,d=e.FLOAT),l=e.RGBA,{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:u,textureTypeHalfFloat:p,textureTypeFloat:d}}function Ne(e,t){let n=t();return ee().getBool("DEBUG")&&m5(e),n}function m5(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+f5(e,t))}var g5=596e-10,y5=65504;function b5(e){return!!(ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||g5e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function x5(e,t){let n=_r(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function w5(e,t){let n=_r(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ne(e,()=>e.shaderSource(n,t)),Ne(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw v5(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var k5=/ERROR: [0-9]+:([0-9]+):/g;function v5(e,t){let n=k5.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` `),s=r.length.toString().length+2,i=r.map((p,d)=>k.rightPad((d+1).toString(),s)+p),o=0;for(let p=0;pe.createProgram(),"Unable to create WebGLProgram.")}function v5(e,t){if(Ne(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function jv(e,t){if(Ne(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function w5(e,t){let n=Cr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function k5(e,t){let n=Cr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function I5(e){return Cr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function N5(e,t){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function T5(e){return Cr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function BT(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ne(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ne(e,()=>e.enableVertexAttribArray(o)),!0)}function C5(e,t,n){S5(e,n),Ne(e,()=>e.activeTexture(e.TEXTURE0+n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function _5(e,t,n){return Cr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function E5(e,t,n){return e.getUniformLocation(t,n)}function A5(e,t,n,a){Ne(e,()=>C5(e,t,a)),Ne(e,()=>e.uniform1i(n,a))}function qv(e,t,n){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function WT(e,t){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function ef(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+F5(e,t))}function F5(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Cr(e,t,n){let a=Ne(e,()=>t());if(a==null)throw new Error(n);return a}function S5(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function yu(e,t=2){return k.sizeFromShape(e.slice(0,e.length-t))}function bu(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Kv(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[yu(e),...bu(e)]),t}function $5(e,t=!1){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?k.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=k.squeezeShape(e).newShape);let a=k.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=yu(e),s=2,i=2;return e.length&&([s,i]=bu(e)),a=r*(s/2)*(i/2),k.sizeToSquarishShape(a).map(o=>o*2)}return k.sizeToSquarishShape(a)}function tf(e){return e%2==0}function nf(e,t){if(e=e.slice(-2),t=t.slice(-2),k.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||tf(n)&&tf(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&tf(e[0])&&tf(t[0])}var Xv,Yv;function D5(e){if(Xv==null){let t=ir(e);Xv=t.getParameter(t.MAX_TEXTURE_SIZE)}return Xv}function R5(e){if(Yv==null){let t=ir(e);Yv=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Yv)}function M5(e){if(e===0)return 0;let t,n=ir(e);return xa(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:xa(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function xa(e,t){return e.getExtension(t)!=null}function VT(e){try{if(ir(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function P5(e){if(e===0)return!1;let t=ir(e);if(e===1){if(!xa(t,"OES_texture_float"))return!1}else if(!xa(t,"EXT_color_buffer_float"))return!1;return Zv(t)}function L5(e){if(e===0)return!1;let t=ir(e);if(e===1){if(!xa(t,"OES_texture_float")||!xa(t,"WEBGL_color_buffer_float"))return!1}else{if(xa(t,"EXT_color_buffer_float"))return Zv(t);let n="EXT_color_buffer_half_float";if(xa(t,n)){let a=t.getExtension(n);return O5(t,a)}return!1}return Zv(t)}function Zv(e){let t=Hv(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function O5(e,t){let n=Hv(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function z5(e){return e!==2?!1:ir(e).fenceSync!=null}function Sp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ee=ee();Ee.registerFlag("HAS_WEBGL",()=>Ee.getNumber("WEBGL_VERSION")>0);Ee.registerFlag("WEBGL_VERSION",()=>VT(2)?2:VT(1)?1:0);Ee.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ee.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ee.get("WEBGL_VERSION")===2);Ee.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ee.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ee.registerFlag("WEBGL_PACK",()=>Ee.getBool("HAS_WEBGL"));Ee.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_CLIP",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ee.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_REDUCE",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_CONV_IM2COL",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>D5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>R5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ee.getNumber("WEBGL_VERSION");return e===0?0:M5(e)});Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ee.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!bh.isMobile());Ee.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>P5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ee.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ee.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ee.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>L5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_FENCE_API_ENABLED",()=>z5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ee.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ee.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});function mn(){let e,t,n,a,r,s,i,o,l,c;return ee().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` +`))}function I5(e){return _r(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function N5(e,t){if(Ne(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Zv(e,t){if(Ne(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function T5(e,t){let n=_r(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function S5(e,t){let n=_r(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),Ne(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function C5(e){return _r(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function _5(e,t){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function E5(e){return _r(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function jT(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),Ne(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),Ne(e,()=>e.enableVertexAttribArray(o)),!0)}function F5(e,t,n){A5(e,n),Ne(e,()=>e.activeTexture(e.TEXTURE0+n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function $5(e,t,n){return _r(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function D5(e,t,n){return e.getUniformLocation(t,n)}function R5(e,t,n,a){Ne(e,()=>F5(e,t,a)),Ne(e,()=>e.uniform1i(n,a))}function Jv(e,t,n){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function qT(e,t){Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),Ne(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function af(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+M5(e,t))}function M5(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function _r(e,t,n){let a=Ne(e,()=>t());if(a==null)throw new Error(n);return a}function A5(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function yu(e,t=2){return k.sizeFromShape(e.slice(0,e.length-t))}function bu(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Qv(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[yu(e),...bu(e)]),t}function P5(e,t=!1){let n=ee().getNumber("WEBGL_MAX_TEXTURE_SIZE");t&&(n=n*2,e=e.map((r,s)=>s>=e.length-2?k.nearestLargerEven(e[s]):e[s]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=k.squeezeShape(e).newShape);let a=k.sizeFromShape(e);if(e.length<=1&&a<=n)return[1,a];if(e.length===2&&e[0]<=n&&e[1]<=n)return e;if(e.length===3&&e[0]*e[1]<=n&&e[2]<=n)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=n&&e[1]*e[2]<=n)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n)return[e[0],e[1]*e[2]*e[3]];if(t){let r=yu(e),s=2,i=2;return e.length&&([s,i]=bu(e)),a=r*(s/2)*(i/2),k.sizeToSquarishShape(a).map(o=>o*2)}return k.sizeToSquarishShape(a)}function rf(e){return e%2==0}function sf(e,t){if(e=e.slice(-2),t=t.slice(-2),k.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||rf(n)&&rf(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&rf(e[0])&&rf(t[0])}var ew,tw;function O5(e){if(ew==null){let t=or(e);ew=t.getParameter(t.MAX_TEXTURE_SIZE)}return ew}function L5(e){if(tw==null){let t=or(e);tw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,tw)}function z5(e){if(e===0)return 0;let t,n=or(e);return va(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:va(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function va(e,t){return e.getExtension(t)!=null}function KT(e){try{if(or(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function B5(e){if(e===0)return!1;let t=or(e);if(e===1){if(!va(t,"OES_texture_float"))return!1}else if(!va(t,"EXT_color_buffer_float"))return!1;return nw(t)}function V5(e){if(e===0)return!1;let t=or(e);if(e===1){if(!va(t,"OES_texture_float")||!va(t,"WEBGL_color_buffer_float"))return!1}else{if(va(t,"EXT_color_buffer_float"))return nw(t);let n="EXT_color_buffer_half_float";if(va(t,n)){let a=t.getExtension(n);return W5(t,a)}return!1}return nw(t)}function nw(e){let t=Yv(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function W5(e,t){let n=Yv(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function U5(e){return e!==2?!1:or(e).fenceSync!=null}function Cp(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&k.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Ee=ee();Ee.registerFlag("HAS_WEBGL",()=>Ee.getNumber("WEBGL_VERSION")>0);Ee.registerFlag("WEBGL_VERSION",()=>KT(2)?2:KT(1)?1:0);Ee.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Ee.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Ee.get("WEBGL_VERSION")===2);Ee.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Ee.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Ee.registerFlag("WEBGL_PACK",()=>Ee.getBool("HAS_WEBGL"));Ee.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_CLIP",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Ee.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_PACK_REDUCE",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_LAZILY_UNPACK",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_CONV_IM2COL",()=>Ee.getBool("WEBGL_PACK"));Ee.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>O5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>L5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=Ee.getNumber("WEBGL_VERSION");return e===0?0:z5(e)});Ee.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Ee.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!wh.isMobile());Ee.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>B5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Ee.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Ee.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Ee.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>V5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_FENCE_API_ENABLED",()=>U5(Ee.getNumber("WEBGL_VERSION")));Ee.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Ee.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Ee.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});function mn(){let e,t,n,a,r,s,i,o,l,c;return ee().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=` bool isnan_custom(float val) { return (val > 0.0 || val < 0.0) ? false : val != 0.0; } @@ -86,11 +86,11 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:c}}function Yi(e,t,n="index"){let a=k.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Jv(e){let t=k.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:c}}function Ji(e,t,n="index"){let a=k.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function aw(e){let t=k.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}var UT=` +`}var XT=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -129,9 +129,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return c / 255.0; } -`,B5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Ip.DENSE;let t=Tp(e),n=mn();this.outputShape=e,this.userCode=` +`,G5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Np.DENSE;let t=Sp(e),n=mn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${Yi(["r","c","d"],e)} + ${Ji(["r","c","d"],e)} return ivec3(r, c, d); } @@ -150,9 +150,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},W5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Ip.DENSE;let t=Tp(e),n=mn();this.outputShape=e,this.userCode=` + `}},H5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Np.DENSE;let t=Sp(e),n=mn();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${Yi(["r","c","d"],e)} + ${Ji(["r","c","d"],e)} return ivec3(r, c, d); } @@ -171,23 +171,23 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = result; } - `}},V5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ea.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` - ${UT} + `}},j5=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ea.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` + ${XT} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},U5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ea.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` - ${UT} + `}},q5=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ea.DOWNLOAD;let t=mn();this.outputShape=e,this.userCode=` + ${XT} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},G5=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=mn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` - ${Jv(e)} + `}},K5=class{constructor(e,t,n=!1){this.variableNames=["A"];let a=mn(),[r,s]=t;this.outputShape=e;let i="result";n&&(i="floor(result * 255. + 0.5)"),this.userCode=` + ${aw(e)} void main() { ivec3 coords = getOutputCoords(); @@ -216,7 +216,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = vec4(${i}, 0., 0., 0.); } - `}},H5=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=mn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){let u=l*2+c;i+=` + `}},X5=class{constructor(e,t,n=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let a=mn(),[r,s]=t;this.outputShape=e;let i="",o="result";n&&(o="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){let u=l*2+c;i+=` localCoords = coords; if(localCoords[2] + ${c} < ${e[2]}) { localCoords[2] += ${c}; @@ -245,7 +245,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee } } `}this.userCode=` - ${Jv(e)} + ${aw(e)} void main() { ivec3 coords = getOutputCoords(); @@ -260,7 +260,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${a.output} = ${o}; } - `}};function j5(e){let t=mn(),n=`${t.version} + `}};function Y5(e){let t=mn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -269,22 +269,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return f5(e,n)}function q5(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return w5(e,t)}function K5(e){let t=new Uint16Array([0,1,2,2,1,3]);return k5(e,t)}function Cp(e,t,n,a,r,s){N5(t,n);let i=I5(e),o=e.TEXTURE_2D;return Ne(e,()=>e.bindTexture(o,i)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ne(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function GT(e){return e.internalFormatFloat}function X5(e,t,n,a){let[r,s]=Np(t,n);return Cp(e,r,s,GT(a),a.textureFormatFloat,e.FLOAT)}function HT(e){return e.internalFormatHalfFloat}function Y5(e,t,n,a){let[r,s]=Np(t,n);return Cp(e,r,s,HT(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function jT(e){return e.downloadTextureFormat}function Z5(e,t,n,a){let[r,s]=Np(t,n);return Cp(e,r,s,jT(a),e.RGBA,e.UNSIGNED_BYTE)}function qT(e){return e.internalFormatPackedFloat}function J5(e,t,n,a){let[r,s]=gu(t,n);return Cp(e,r,s,qT(a),e.RGBA,e.FLOAT)}function KT(e){return e.internalFormatPackedHalfFloat}function Q5(e,t,n,a){let[r,s]=gu(t,n);return Cp(e,r,s,KT(a),e.RGBA,a.textureTypeHalfFloat)}function e8(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),BT(e,t,"clipSpacePos",n,3,s,a)&&BT(e,t,"uv",n,2,s,r)}function t8(e,t,n,a,r,s){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function n8(e,t,n){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function a8(e,t,n,a){let r=e.createBuffer();Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ne(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function r8(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function s8(e,t,n,a){let[r,s]=Np(t,n),i=4,o=new Uint8Array(l5(t*n,i));return Ne(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function i8(e,t,n,a,r,s,i,o){let l=e,c=new Float32Array(u5(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function o8(e,t,n){let a=new Float32Array(t*n*4);return Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var u8=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=ee().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,s5(t,e)):this.gl=ir(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(ee().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Qm(this.gl,r),xa(this.gl,s))this.textureHalfFloatExtension=Qm(this.gl,s);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),xa(this.gl,a))this.colorBufferHalfFloatExtension=Qm(this.gl,a);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",xa(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(xa(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=q5(this.gl),this.indexBuffer=K5(this.gl),this.framebuffer=T5(this.gl),this.textureConfig=Hv(this.gl,this.textureHalfFloatExtension)}get debug(){return ee().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ne(e,()=>e.finish()),Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ne(e,()=>e.deleteFramebuffer(this.framebuffer)),Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ne(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),X5(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),Y5(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),Z5(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),n8(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),t8(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),Q5(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),J5(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(WT(this.gl,this.framebuffer),this.outputTexture=null),Ne(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>s8(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return i8(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return r8(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=a8(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ee().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>o8(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=y5(t,e),a=j5(t),r=x5(t);return Ne(t,()=>t.attachShader(r,a)),Ne(t,()=>t.attachShader(r,n)),v5(t,r),this.debug&&jv(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=e8(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ne(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&jv(this.gl,this.program),Ne(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?_5(this.gl,e,t):E5(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ne(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),A5(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=gu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&jv(this.gl,this.program),ef(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ne(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Qm(this.gl,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await k.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=l8(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&k.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),qv(this.gl,e,this.framebuffer),this.debug&&ef(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(qv(this.gl,this.outputTexture,this.framebuffer),this.debug&&ef(this.gl)):WT(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;qv(a,e,this.framebuffer),this.debug&&ef(a),this.outputTexture=e,Ne(a,()=>a.viewport(0,0,t,n)),Ne(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function l8(e){let t=0;for(;t{let m=k.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` -`),i=e.map(h=>c8(h,t,a)).join(` -`),o=t.texShape,l=mn(),c=h8(l),u,p,d=g8(l);return t.isPacked?(u=p8(t.logicalShape,o),p=f8(l)):(u=d8(t.logicalShape,o),p=m8(l)),a&&(d+=y8),[d,c,p,s,u,i,n].join(` -`)}function xu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return x8(e);case 1:return v8(e);case 2:return w8(e);case 3:return k8(e);case 4:return I8(e);case 5:return N8(e);case 6:return T8(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function YT(e){switch(e.shapeInfo.logicalShape.length){case 0:return S8(e);case 1:return C8(e);case 2:return _8(e);case 3:return E8(e);default:return A8(e)}}function c8(e,t,n=!1){let a="";n?a+=YT(e):a+=xu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=F8(e,t):a+=$8(e,t)),a}function p8(e,t){switch(e.length){case 0:return ZT();case 1:return D8(e,t);case 2:return P8(e,t);case 3:return R8(e,t);default:return M8(e,t)}}function d8(e,t){switch(e.length){case 0:return ZT();case 1:return O8(e,t);case 2:return V8(e,t);case 3:return L8(e,t);case 4:return z8(e,t);case 5:return B8(e,t);case 6:return W8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function h8(e){return` + }`;return x5(e,n)}function Z5(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return T5(e,t)}function J5(e){let t=new Uint16Array([0,1,2,2,1,3]);return S5(e,t)}function _p(e,t,n,a,r,s){_5(t,n);let i=C5(e),o=e.TEXTURE_2D;return Ne(e,()=>e.bindTexture(o,i)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),Ne(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),Ne(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null)),i}function YT(e){return e.internalFormatFloat}function Q5(e,t,n,a){let[r,s]=Tp(t,n);return _p(e,r,s,YT(a),a.textureFormatFloat,e.FLOAT)}function ZT(e){return e.internalFormatHalfFloat}function e8(e,t,n,a){let[r,s]=Tp(t,n);return _p(e,r,s,ZT(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function JT(e){return e.downloadTextureFormat}function t8(e,t,n,a){let[r,s]=Tp(t,n);return _p(e,r,s,JT(a),e.RGBA,e.UNSIGNED_BYTE)}function QT(e){return e.internalFormatPackedFloat}function n8(e,t,n,a){let[r,s]=gu(t,n);return _p(e,r,s,QT(a),e.RGBA,e.FLOAT)}function eS(e){return e.internalFormatPackedHalfFloat}function a8(e,t,n,a){let[r,s]=gu(t,n);return _p(e,r,s,eS(a),e.RGBA,a.textureTypeHalfFloat)}function r8(e,t,n){let a=0,r=3*4,s=3*4+2*4;return Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),jT(e,t,"clipSpacePos",n,3,s,a)&&jT(e,t,"uv",n,2,s,r)}function s8(e,t,n,a,r,s){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function i8(e,t,n){Ne(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):Ne(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),Ne(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function o8(e,t,n,a){let r=e.createBuffer();Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return Ne(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),Ne(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function l8(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function u8(e,t,n,a){let[r,s]=Tp(t,n),i=4,o=new Uint8Array(d5(t*n,i));return Ne(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function c8(e,t,n,a,r,s,i,o){let l=e,c=new Float32Array(h5(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function p8(e,t,n){let a=new Float32Array(t*n*4);return Ne(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var h8=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=ee().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,u5(t,e)):this.gl=or(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(ee().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=nf(this.gl,r),va(this.gl,s))this.textureHalfFloatExtension=nf(this.gl,s);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),va(this.gl,a))this.colorBufferHalfFloatExtension=nf(this.gl,a);else if(ee().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",va(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(va(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=Z5(this.gl),this.indexBuffer=J5(this.gl),this.framebuffer=E5(this.gl),this.textureConfig=Yv(this.gl,this.textureHalfFloatExtension)}get debug(){return ee().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ne(e,()=>e.finish()),Ne(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ne(e,()=>e.deleteFramebuffer(this.framebuffer)),Ne(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ne(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ne(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),Q5(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),e8(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),t8(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),i8(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),s8(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),a8(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),n8(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(qT(this.gl,this.framebuffer),this.outputTexture=null),Ne(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>u8(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return c8(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return l8(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=o8(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(ee().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>p8(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl,n=w5(t,e),a=Y5(t),r=I5(t);return Ne(t,()=>t.attachShader(r,a)),Ne(t,()=>t.attachShader(r,n)),N5(t,r),this.debug&&Zv(t,r),this.vertexAttrsAreBound||(this.setProgram(r),this.vertexAttrsAreBound=r8(t,this.program,this.vertexBuffer)),r}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ne(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Zv(this.gl,this.program),Ne(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?$5(this.gl,e,t):D5(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ne(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),R5(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=gu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Zv(this.gl,this.program),af(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ne(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=nf(this.gl,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await k.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=d8(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&k.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Jv(this.gl,e,this.framebuffer),this.debug&&af(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Jv(this.gl,this.outputTexture,this.framebuffer),this.debug&&af(this.gl)):qT(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;Jv(a,e,this.framebuffer),this.debug&&af(a),this.outputTexture=e,Ne(a,()=>a.viewport(0,0,t,n)),Ne(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),Ne(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function d8(e){let t=0;for(;t{let m=k.sizeFromShape(h.shapeInfo.logicalShape);h.shapeInfo.isUniform?r.push(`uniform float ${h.name}${m>1?`[${m}]`:""};`):(r.push(`uniform sampler2D ${h.name};`),r.push(`uniform int offset${h.name};`))});let s=r.join(` +`),i=e.map(h=>m8(h,t,a)).join(` +`),o=t.texShape,l=mn(),c=y8(l),u,p,d=v8(l);return t.isPacked?(u=f8(t.logicalShape,o),p=x8(l)):(u=g8(t.logicalShape,o),p=b8(l)),a&&(d+=w8),[d,c,p,s,u,i,n].join(` +`)}function xu(e){let t=e.shapeInfo.logicalShape;switch(t.length){case 0:return I8(e);case 1:return N8(e);case 2:return T8(e);case 3:return S8(e);case 4:return C8(e);case 5:return _8(e);case 6:return E8(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function nS(e){switch(e.shapeInfo.logicalShape.length){case 0:return A8(e);case 1:return F8(e);case 2:return $8(e);case 3:return D8(e);default:return R8(e)}}function m8(e,t,n=!1){let a="";n?a+=nS(e):a+=xu(e);let r=e.shapeInfo.logicalShape,s=t.logicalShape;return r.length<=s.length&&(n?a+=M8(e,t):a+=P8(e,t)),a}function f8(e,t){switch(e.length){case 0:return aS();case 1:return O8(e,t);case 2:return B8(e,t);case 3:return L8(e,t);default:return z8(e,t)}}function g8(e,t){switch(e.length){case 0:return aS();case 1:return W8(e,t);case 2:return j8(e,t);case 3:return V8(e,t);case 4:return U8(e,t);case 5:return G8(e,t);case 6:return H8(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function y8(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function m8(e){return` + `}function b8(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function f8(e){return` + `}function x8(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function g8(e){return`${e.version} + `}function v8(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -339,10 +339,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return fract((p3.x + p3.y) * p3.z); } - ${U8} - ${G8} - ${H8} - `}var U8=` + ${q8} + ${K8} + ${X8} + `}var q8=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -354,7 +354,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,G8=` +`,K8=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -362,7 +362,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,H8=` +`,X8=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -371,7 +371,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,y8=` +`,w8=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -382,11 +382,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function ZT(){return` +`;function aS(){return` int getOutputCoords() { return 0; } - `}function D8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` + `}function O8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${n[1]}.0); } @@ -400,7 +400,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function O8(e,t){return t[0]===1?` + `}function W8(e,t){return t[0]===1?` int getOutputCoords() { return int(resultUV.x * ${t[1]}.0); } @@ -414,7 +414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function R8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` + `}function L8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[2]/2),r=a*Math.ceil(e[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); @@ -428,7 +428,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function L8(e,t){let n=Yi(["r","c","d"],e);return` + `}function V8(e,t){let n=Ji(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -436,7 +436,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function M8(e,t){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],a=Math.ceil(e[e.length-1]/2),r=a*Math.ceil(e[e.length-2]/2),s=r,i="",o="b, r, c";for(let l=2;l=1?u="coords = 0;":u=o.map(g=>`coords.${p[g+c]} = 0;`).join(` + `}function M8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=tS(e.shapeInfo.logicalShape,t.logicalShape),l=ft(i),c=i-s,u,p=["x","y","z","w","u","v"];s===0?u="":i<2&&o.length>=1?u="coords = 0;":u=o.map(g=>`coords.${p[g+c]} = 0;`).join(` `);let d="";i<2&&s>0?d="coords":d=e.shapeInfo.logicalShape.map((g,y)=>`coords.${p[y+c]}`).join(", ");let h="return outputValue;",m=k.sizeFromShape(e.shapeInfo.logicalShape)===1,f=k.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -816,22 +816,22 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${d}); ${h} } - `}function $8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&k.arraysEqual(i,s))return` + `}function P8(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&k.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let c=ft(l),u=XT(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&u.length>=1?d="coords = 0;":d=u.map(f=>`coords.${h[f+p]} = 0;`).join(` + `;let c=ft(l),u=tS(e.shapeInfo.logicalShape,t.logicalShape),p=l-o,d,h=["x","y","z","w","u","v"];o===0?d="":l<2&&u.length>=1?d="coords = 0;":d=u.map(f=>`coords.${h[f+p]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+p]}`).join(", "),` float ${r}() { ${c} coords = getOutputCoords(); ${d} return get${a}(${m}); } - `}function ft(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function wu(e,t){let n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function ku(e,t){return t.map(n=>e[n]).join(", ")}function j8(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=b8(s,o,r,t.packedInputs),c=e.createProgram(l),u=null,p=e.getUniformLocation(c,"NAN",!1);ee().getNumber("WEBGL_VERSION")===1&&(u=e.getUniformLocation(c,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!k.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!k.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function q8(e,t,n,a,r){JT(t.inShapeInfos,n),JT([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),ee().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let c=t.program.variableNames[l],u=t.uniformLocations[c],p=t.uniformLocations[`offset${c}`];if(u!=null){if(o.isUniform){if(k.sizeFromShape(o.shape)<2)e.gl.uniform1f(u,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(u,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,u,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function K8(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:X8,bincountImpl:QT,bincountReduceImpl:Y8,ceilImpl:Z8,concatImpl:J8,expImpl:Q8,expm1Impl:eK,floorImpl:tK,gatherV2Impl:nK,greaterImpl:aK,lessImpl:rK,linSpaceImpl:sK,logImpl:iK,maxImpl:oK,maximumImpl:lK,minimumImpl:uK,multiplyImpl:cK,negImpl:pK,prodImpl:dK,rangeImpl:hK,rsqrtImpl:mK,simpleAbsImpl:eS,sliceImpl:fK,stridedSliceImpl:gK,subImpl:yK,tileImpl:bK,topKImpl:xK,transposeImpl:Qv,uniqueImpl:vK}=KN;function tS(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function fn(e,t){return t===1?[e]:tS(e,t)}function wK(e,t){if(e===1)return"rc";let n="";for(let a=0;ae[n]).join(", ")}function Y8(e,t,n,a){let r=t.userCode,s=n.map((h,m)=>{let f={logicalShape:h.shape,texShape:h.isUniform?null:h.texData.texShape,isUniform:h.isUniform,isPacked:h.isUniform?!1:h.texData.isPacked,flatOffset:null};return h.texData!=null&&h.texData.slice!=null&&h.texData.slice.flatOffset>0&&(f.flatOffset=h.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),i=s.map(h=>h.shapeInfo),o={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},l=k8(s,o,r,t.packedInputs),c=e.createProgram(l),u=null,p=e.getUniformLocation(c,"NAN",!1);ee().getNumber("WEBGL_VERSION")===1&&(u=e.getUniformLocation(c,"INFINITY",!1));let d={};for(let h=0;h{let r=n.logicalShape,s=t[a],i=s.shape;if(!k.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!k.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function Z8(e,t,n,a,r){rS(t.inShapeInfos,n),rS([t.outShapeInfo],[a]);let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s,i[0],i[1]):e.setOutputMatrixTexture(s,i[0],i[1]),e.setProgram(t.webGLProgram),ee().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((o,l)=>{let c=t.program.variableNames[l],u=t.uniformLocations[c],p=t.uniformLocations[`offset${c}`];if(u!=null){if(o.isUniform){if(k.sizeFromShape(o.shape)<2)e.gl.uniform1f(u,o.uniformValues[0]);else{let d=o.uniformValues;d instanceof Float32Array||(d=new Float32Array(d)),e.gl.uniform1fv(u,d)}return}o.texData.slice!=null&&p!=null&&e.gl.uniform1i(p,o.texData.slice.flatOffset),e.setInputMatrixTexture(o.texData.texture,u,l)}}),r!=null&&r(e,t.webGLProgram),e.executeProgram()}function J8(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0,l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r,s}var{addImpl:Q8,bincountImpl:sS,bincountReduceImpl:eK,ceilImpl:tK,concatImpl:nK,expImpl:aK,expm1Impl:rK,floorImpl:sK,gatherV2Impl:iK,greaterImpl:oK,lessImpl:lK,linSpaceImpl:uK,logImpl:cK,maxImpl:pK,maximumImpl:dK,minimumImpl:hK,multiplyImpl:mK,negImpl:fK,prodImpl:gK,rangeImpl:yK,rsqrtImpl:bK,simpleAbsImpl:iS,sliceImpl:xK,stridedSliceImpl:vK,subImpl:wK,tileImpl:kK,topKImpl:IK,transposeImpl:rw,uniqueImpl:NK}=eT;function oS(e,t){return["x","y","z","w","u","v"].slice(0,t).map(n=>`${e}.${n}`)}function fn(e,t){return t===1?[e]:oS(e,t)}function TK(e,t){if(e===1)return"rc";let n="";for(let a=0;a ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r ${t[0]}`;let a="";for(let r=e-2;r= ${t[r]}`,r= ${t}; bool rEdge = rp1 >= ${n}; - `}function NK(e,t){let n=e.length,a=SK(n,t);return n===1?`getA(rc), + `}function _K(e,t){let n=e.length,a=AK(n,t);return n===1?`getA(rc), rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${a[0]}), cEdge ? 0. : getA(${a[1]}), rEdge ? 0. : getA(${a[2]}), - rEdge || cEdge ? 0. : getA(${a[3]})`}var nS=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${a[3]})`}var lS=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2==1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -868,8 +868,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${CK(t)} - ${Jv(e)} + ${FK(t)} + ${aw(e)} void main() { ivec3 rc = getOutputCoords(); @@ -884,12 +884,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function CK(e){return` + `}};function FK(e){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${Yi(["r","c","d"],e)} + ${Ji(["r","c","d"],e)} return ivec3(r, c, d); } - `}var _K=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=rS(t,n),r=sS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=aS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===nn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===nn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===nn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===nn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===nn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=rS(n,a),s=sS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=aS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=ee().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function EK(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function aS(e,t,n,a,r){let s=AK(t,a),i;if(r){let[l,c]=gu(e[0],e[1]);i=l*c}else{let[l,c]=Np(e[0],e[1]);i=l*c}let o=EK(n,s);return i*o}function AK(e,t){switch(e){case nn.PACKED_2X2_FLOAT32:return qT(t);case nn.PACKED_2X2_FLOAT16:return KT(t);case nn.UNPACKED_FLOAT32:return GT(t);case nn.UNPACKED_FLOAT16:return HT(t);case nn.PACKED_4X1_UNSIGNED_BYTE:return jT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function FK(e){return ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?nn.PACKED_2X2_FLOAT32:nn.UNPACKED_FLOAT32:e?nn.PACKED_2X2_FLOAT16:nn.UNPACKED_FLOAT16}function rS(e,t){if(e===ea.UPLOAD)return nn.PACKED_2X2_FLOAT32;if(e===ea.RENDER||e==null)return FK(t);if(e===ea.DOWNLOAD||e===ea.PIXELS)return nn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function sS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ms=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}var $K=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=cS(t,n),r=pS(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=uS(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===nn.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===nn.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===nn.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===nn.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===nn.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=cS(n,a),s=pS(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=uS(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=ee().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function DK(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function uS(e,t,n,a,r){let s=RK(t,a),i;if(r){let[l,c]=gu(e[0],e[1]);i=l*c}else{let[l,c]=Tp(e[0],e[1]);i=l*c}let o=DK(n,s);return i*o}function RK(e,t){switch(e){case nn.PACKED_2X2_FLOAT32:return QT(t);case nn.PACKED_2X2_FLOAT16:return eS(t);case nn.UNPACKED_FLOAT32:return YT(t);case nn.UNPACKED_FLOAT16:return ZT(t);case nn.PACKED_4X1_UNSIGNED_BYTE:return JT(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function MK(e){return ee().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?nn.PACKED_2X2_FLOAT32:nn.UNPACKED_FLOAT32:e?nn.PACKED_2X2_FLOAT16:nn.UNPACKED_FLOAT16}function cS(e,t){if(e===ea.UPLOAD)return nn.PACKED_2X2_FLOAT32;if(e===ea.RENDER||e==null)return MK(t);if(e===ea.DOWNLOAD||e===ea.PIXELS)return nn.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function pS(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ms=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` float unaryOperation(float x) { ${t} } @@ -900,11 +900,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ma="if (isnan(x)) return x;",$K="return x;",iS="return abs(x);",DK="return (x >= 0.0) ? x : (exp(x) - 1.0);",RK=Ma+` + `}},Pa="if (isnan(x)) return x;",PK="return x;",dS="return abs(x);",OK="return (x >= 0.0) ? x : (exp(x) - 1.0);",LK=Pa+` return (x < 0.0) ? 0.0 : x; -`,MK=Ma+` +`,zK=Pa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,af="return x;",PK="return x;",OK=` +`,of="return x;",BK="return x;",WK=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -913,7 +913,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,LK=` +`,VK=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -923,7 +923,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,zK=` +`,UK=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -944,14 +944,14 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},BK=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=fn("rc",t),a=ft(t),r=wK(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},GK=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,n=fn("rc",t),a=ft(t),r=TK(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},WK=Qa.whereImpl,VK=1e-7,UK=1e-4,ew={};function GK(e){return e in ew||(ew[e]={}),ew[e]}var HK=128,jK=600;function qK(){return ee().global.screen==null?1024:ee().global.screen.height*ee().global.screen.width*window.devicePixelRatio*jK/1024/1024}var XK=class extends dc{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!ee().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=ir(ee().getNumber("WEBGL_VERSION"));this.binaryCache=GK(ee().getNumber("WEBGL_VERSION")),this.gpgpu=new u8(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new _K(this.gpgpu),this.numMBBeforeWarning=qK(),this.texData=new Fd(this,Jr())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((ee().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ee().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:ea.UPLOAD,refCount:1,complexParentRefCount:0}),a}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}decComplexRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.complexParentRefCount>0&&t.refCount--}}move(e,t,n,a){if(ee().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:ea.UPLOAD,refCount:1,complexParentRefCount:0})}disposeIntermediateTensorInfo(e){let t=e.dataId;if(this.texData.has(t)){let n=this.texData.get(t);n.refCount--,n.refCount<1&&this.disposeData(t)}}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new Iu(i,af):p=new ms(i,af);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,c;l&&(c=k.now());let u;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);u=_.mergeRealAndImagArrays(p,d)}else u=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=k.now()-c),this.convertAndCacheOnCPU(e,u)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new Iu(a,af):h=new ms(a,af);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ee().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ee().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(s!=="complex64"&&ee().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let h=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...Tp(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let u;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];u=_.mergeRealAndImagArrays(m,f)}else if(l==null)u=this.getValuesFromTexture(e);else{let h=k.sizeFromShape(a);u=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}c!=null&&this.disposeIntermediateTensorInfo(c);let p=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;to.query)).filter(o=>o!=null),s=k.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=k.sum(o),i.getExtraProfileInfo=()=>o.map((l,c)=>({name:s[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:k.now(),endMs:null}}endTimer(e){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=k.now(),e)}async getQueryTime(e){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;if(this.texData.get(e).complexParentRefCount>0){this.texData.get(e).refCount--;return}this.releaseGPUData(e);let{complexTensorInfos:t}=this.texData.get(e);t!=null&&(this.texData.get(t.real.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.real),this.texData.get(t.imag.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.imag)),this.texData.delete(e)}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ee().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Jr().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=HK){let n=this.getCPUBackend();return!ee().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&k.sizeFromShape(a.shape)0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return Jr().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new BK(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new TK(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[yu(e.shape),...bu(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[yu(t),...bu(t)],s=new nS(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=Kv(a),i;n?i=new W5(s):i=new B5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===Ip.DENSE){let m=Tp(e.outputShape);i.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),k.sizeFromShape(s.shape)===0)return i.values=k.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&k.sizeFromShape(m.shape)<=ee().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!=!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),o.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!nf(f.shape,m.shape)){let g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),o.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(s.dataId);let c={shape:s.shape,texData:i,isUniform:!1},u=K8(e,l,c),p=this.getAndSaveBinary(u,()=>j8(this.gpgpu,e,l,c)),d=this.activeTimers!=null,h;if(d&&(h=this.startTimer()),q8(this.gpgpu,p,l,c,a),o.forEach(m=>this.disposeIntermediateTensorInfo(m)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)})),!ee().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let m=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),m}return s}compileAndRun(e,t,n,a,r=!1){n=n||t[0].dtype;let s=this.runWebGLProgram(e,t,n,a,r);return Jr().makeTensorFromDataId(s.dataId,s.shape,s.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ee().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=D(()=>{if(!ee().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=ee().getBool("DEBUG");ee().set("DEBUG",!1);let t=this.abs(de(1e-8)).dataSync()[0];if(ee().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?VK:UK}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,c;l&&(c=k.now());let u=t.texShape;if(u==null&&(u=$5(n,o),t.texShape=u),r!=null){let p=Kv(n),d,h=u[1],m=u[0],f=r instanceof Uint8Array;o?([h,m]=gu(u[0],u[1]),d=new H5(p,[m,h],f)):d=new G5(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=ea.PIXELS:this.texData.get(g.dataId).usage=ea.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),v=this.texData.get(b.dataId);t.texture=v.texture,t.texShape=v.texShape,t.isPacked=v.isPacked,t.usage=v.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=k.now()-c)}else{let p=this.acquireTexture(u,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=KK(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*k.bytesPerElement(t)}};function KK(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew XK,2);var oS=` + `}},HK=er.whereImpl,jK=1e-7,qK=1e-4,sw={};function KK(e){return e in sw||(sw[e]={}),sw[e]}var XK=128,YK=600;function ZK(){return ee().global.screen==null?1024:ee().global.screen.height*ee().global.screen.width*window.devicePixelRatio*YK/1024/1024}var iw=class extends pc{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!ee().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=or(ee().getNumber("WEBGL_VERSION"));this.binaryCache=KK(ee().getNumber("WEBGL_VERSION")),this.gpgpu=new h8(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new $K(this.gpgpu),this.numMBBeforeWarning=ZK(),this.texData=new Rd(this,qa())}nextDataId(){return iw.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,n){if((ee().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||ee().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:ea.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(ee().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:ea.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let p;o?p=new Iu(i,of):p=new ms(i,of);let d=this.runWebGLProgram(p,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(d.dataId);return this.disposeIntermediateTensorInfo(d),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,c;l&&(c=k.now());let u;if(a==="complex64"){let p=this.readSync(r.real.dataId),d=this.readSync(r.imag.dataId);u=_.mergeRealAndImagArrays(p,d)}else u=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=k.now()-c),this.convertAndCacheOnCPU(e,u)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new Iu(a,of):h=new ms(a,of);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(!ee().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&ee().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(s!=="complex64"&&ee().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let h=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(h.texture,...Sp(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let u;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];u=_.mergeRealAndImagArrays(m,f)}else if(l==null)u=this.getValuesFromTexture(e);else{let h=k.sizeFromShape(a);u=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}c!=null&&this.disposeIntermediateTensorInfo(c);let p=this.convertAndCacheOnCPU(e,u),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(h=>h(p)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&qa().removeDataId(e,this),this.pendingDeletes--),p}bufferSync(e){let t=this.readSync(e.dataId),n=t;if(e.dtype==="string")try{n=t.map(a=>k.decodeString(a))}catch(a){throw new Error("Failed to decode encoded string bytes into utf-8")}return Le(e.shape,e.dtype,n)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=k.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=k.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=k.sum(o),i.getExtraProfileInfo=()=>o.map((l,c)=>({name:s[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:k.now(),endMs:null}}endTimer(e){return ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=k.now(),e)}async getQueryTime(e){if(ee().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return ee().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=qa().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=XK){let n=this.getCPUBackend();return!ee().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&n==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),n!=null&&e.every(a=>this.texData.get(a.dataId).texture==null&&k.sizeFromShape(a.shape)0&&k.isString(n[0])){let r=n.map(s=>k.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){let{dataId:a}=this.makeTensorInfo(e,t,n);return qa().makeTensorFromDataId(a,e,t,this)}unpackTensor(e){let t=new GK(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new EK(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[yu(e.shape),...bu(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[yu(t),...bu(t)],s=new lS(r,n),i=!0,o=this.runWebGLProgram(s,[a],e.dtype,null,i);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e){let t=this.texData.get(e),{isPacked:n,shape:a,dtype:r}=t,s=Qv(a),i;n?i=new H5(s):i=new G5(s);let o=!0,l=this.runWebGLProgram(i,[{shape:s,dtype:r,dataId:e}],r,null,o);return{dtype:r,shape:a,dataId:l.dataId}}runWebGLProgram(e,t,n,a,r=!1){let s=this.makeTensorInfo(e.outputShape,n),i=this.texData.get(s.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===Np.DENSE){let m=Sp(e.outputShape);i.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),k.sizeFromShape(s.shape)===0)return i.values=k.getTypedArrayFromDType(s.dtype,0),s;let o=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&k.sizeFromShape(m.shape)<=ee().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!=!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),o.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!sf(f.shape,m.shape)){let g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),o.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(s.dataId);let c={shape:s.shape,texData:i,isUniform:!1},u=J8(e,l,c),p=this.getAndSaveBinary(u,()=>Y8(this.gpgpu,e,l,c)),d=this.activeTimers!=null,h;if(d&&(h=this.startTimer()),Z8(this.gpgpu,p,l,c,a),o.forEach(m=>this.disposeIntermediateTensorInfo(m)),d&&(h=this.endTimer(h),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(h)})),!ee().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&r===!1){let m=this.unpackTensor(s);return this.disposeIntermediateTensorInfo(s),m}return s}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(ee().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=D(()=>{if(!ee().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=ee().getBool("DEBUG");ee().set("DEBUG",!1);let t=this.abs(de(1e-8)).dataSync()[0];if(ee().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?jK:qK}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,c;l&&(c=k.now());let u=t.texShape;if(u==null&&(u=P5(n,o),t.texShape=u),r!=null){let p=Qv(n),d,h=u[1],m=u[0],f=r instanceof Uint8Array;o?([h,m]=gu(u[0],u[1]),d=new X5(p,[m,h],f)):d=new K5(p,[m,h],f);let g=this.makeTensorInfo([m,h],a);f?this.texData.get(g.dataId).usage=ea.PIXELS:this.texData.get(g.dataId).usage=ea.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),h,m,r);let y=!0,b=this.runWebGLProgram(d,[g],a,null,y),v=this.texData.get(b.dataId);t.texture=v.texture,t.texShape=v.texShape,t.isPacked=v.isPacked,t.usage=v.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(b.dataId),t.values=null,l&&(this.uploadWaitMs+=k.now()-c)}else{let p=this.acquireTexture(u,i,a,o);t.texture=p}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=JK(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*k.bytesPerElement(t)}};iw.nextDataId=0;function JK(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew iw,2);var hS=` if (isnan(a)) return a; if (isnan(b)) return b; `,Nu=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` @@ -964,12 +964,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},rf=` + `}},lf=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`,_p=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=_.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||k.sizeFromShape(this.outputShape)===1)s=` +`,Ep=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=_.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length,s="";if(a)if(r===0||k.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1001,21 +1001,21 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function Bn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var ZK={kernelName:sl,backendName:"webgl",kernelFunc:Bn};function fs(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Bn({inputs:{x:a},backend:n}),l=n.texData.get(o.dataId);l.complexParentRefCount++;let c=Bn({inputs:{x:r},backend:n}),u=n.texData.get(c.dataId);return u.complexParentRefCount++,i.complexTensorInfos={real:o,imag:c},s}var JK={kernelName:Bd,backendName:"webgl",kernelFunc:fs},lS="return (a < 0.) ? b * a : a;",uS=` + `}};function Wn(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var eX={kernelName:Xs,backendName:"webgl",kernelFunc:Wn};function fs(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=Wn({inputs:{x:a},backend:n}),l=Wn({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var tX={kernelName:Ud,backendName:"webgl",kernelFunc:fs},mS="return (a < 0.) ? b * a : a;",fS=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function QK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",k.createScalarValue(s,"float32")),o=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new _p(uS,r.shape,i.shape):new Nu(lS,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var eX={kernelName:Ks,backendName:"webgl",kernelFunc:QK},cS="return (a < 0.) ? b * a : a;",pS=` +`;function nX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",k.createScalarValue(s,"float32")),o=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ep(fS,r.shape,i.shape):new Nu(mS,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],r.dtype);return n.disposeIntermediateTensorInfo(i),l}var aX={kernelName:Ys,backendName:"webgl",kernelFunc:nX},gS="return (a < 0.) ? b * a : a;",yS=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function tX(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new _p(pS,a.shape,r.shape):new Nu(cS,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var nX={kernelName:ii,backendName:"webgl",kernelFunc:tX},dS="if (isnan(x)) return x;",aX=` +`;function rX(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ep(yS,a.shape,r.shape):new Nu(gS,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)}var sX={kernelName:li,backendName:"webgl",kernelFunc:rX},bS="if (isnan(x)) return x;",iX=` if (isnan(a)) return a; if (isnan(b)) return b; -`,rX=` +`,oX=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function Ze({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let c=ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,u;return c?u=new Iu(i.shape,t):u=new ms(i.shape,e),o.runWebGLProgram(u,[i],l)}}function an({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:c}=i,u=o;if(a&&l.dtype==="complex64"){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(v=>{let[x,N]=v,T={dataId:x.dataId,dtype:x.dtype,shape:l.shape},C={dataId:N.dataId,dtype:N.dtype,shape:c.shape},$=new Nu(e,l.shape,c.shape);return u.runWebGLProgram($,[T,C],ca(x.dtype,N.dtype))}),b=fs({inputs:{real:g,imag:y},backend:u});return u.disposeIntermediateTensorInfo(g),u.disposeIntermediateTensorInfo(y),b}let p=s||ca(l.dtype,c.dtype);if(u.shouldExecuteOnCPU([l,c])&&r!=null){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=r(l.shape,c.shape,m.values,f.values,p),b=u.makeTensorInfo(y,p),v=u.texData.get(b.dataId);return v.values=g,b}let d=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new _p(t,l.shape,c.shape,n):h=new Nu(e,l.shape,c.shape),u.runWebGLProgram(h,[l,c],p)}}function sf(e,t=!1){if(e==="linear")return t?PK:$K;if(e==="relu")return t?LK:RK;if(e==="elu")return t?OK:DK;if(e==="relu6")return t?zK:MK;if(e==="prelu")return t?pS:cS;if(e==="leakyrelu")return t?uS:lS;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var hS=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let c=a?e[1]:e[2],u=Math.ceil(c/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function Ze({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let p=o.texData.get(i.dataId),d=n(p.values,l);return o.makeTensorInfo(i.shape,l,d)}let c=ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,u;return c?u=new Iu(i.shape,t):u=new ms(i.shape,e),o.runWebGLProgram(u,[i],l)}}function an({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:c}=i,u=o;if(a&&l.dtype==="complex64"){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(v=>{let[x,N]=v,T={dataId:x.dataId,dtype:x.dtype,shape:l.shape},C={dataId:N.dataId,dtype:N.dtype,shape:c.shape},F=new Nu(e,l.shape,c.shape);return u.runWebGLProgram(F,[T,C],pa(x.dtype,N.dtype))}),b=fs({inputs:{real:g,imag:y},backend:u});return u.disposeIntermediateTensorInfo(g),u.disposeIntermediateTensorInfo(y),b}let p=s||pa(l.dtype,c.dtype);if(u.shouldExecuteOnCPU([l,c])&&r!=null){let m=u.texData.get(l.dataId),f=u.texData.get(c.dataId),[g,y]=r(l.shape,c.shape,m.values,f.values,p),b=u.makeTensorInfo(y,p),v=u.texData.get(b.dataId);return v.values=g,b}let d=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return d?h=new Ep(t,l.shape,c.shape,n):h=new Nu(e,l.shape,c.shape),u.runWebGLProgram(h,[l,c],p)}}function uf(e,t=!1){if(e==="linear")return t?BK:PK;if(e==="relu")return t?VK:LK;if(e==="elu")return t?WK:OK;if(e==="relu6")return t?UK:zK;if(e==="prelu")return t?yS:gS;if(e==="leakyrelu")return t?fS:mS;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var xS=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n;let c=a?e[1]:e[2],u=Math.ceil(c/2),p=a?"i * 2, rc.y":"rc.y, i * 2",d=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1054,7 +1054,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},mS={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},fS=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},vS={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},wS=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=_.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1067,7 +1067,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},gS="return a * b;";function yS(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=_.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),c=new fS(mS.REAL,a.shape,r.shape),u=new fS(mS.IMAG,a.shape,r.shape),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=fs({inputs:{real:d,imag:h},backend:n});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[c,u]=cK(a.shape,r.shape,o.values,l.values,s),p=n.makeTensorInfo(u,s),d=n.texData.get(p.dataId);return d.values=c,p}let i;return ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new _p(gS,a.shape,r.shape):i=new Nu(gS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var sX={kernelName:ni,backendName:"webgl",kernelFunc:yS};function iX(e,t,n){let a=[yu(e.shape),...bu(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[yu(t),...bu(t)],i=new nS(s,a),o=!0,l=n.runWebGLProgram(i,[r],e.dtype,null,o);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function be(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=k.sizeFromShape(r.shape),l=k.inferFromImplicitShape(s,o),c=k.sizeFromShape(l);k.assert(o===c,()=>`The new shape (${l}) has ${c} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let u=i.texData.get(r.dataId);return u.isPacked&&!nf(r.shape,l)&&!(u.texture!==null&&nf(u.shape,l))?iX(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var oX={kernelName:Il,backendName:"webgl",kernelFunc:be},bS=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let u=1/t;l=`sumValue += dot(values * ${k.isInt(u)?u.toPrecision(2):u}, ones);`}let c="";r%n>0&&(c=` + `}},kS="return a * b;";function IS(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=_.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),c=new wS(vS.REAL,a.shape,r.shape),u=new wS(vS.IMAG,a.shape,r.shape),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=fs({inputs:{real:d,imag:h},backend:n});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[c,u]=mK(a.shape,r.shape,o.values,l.values,s),p=n.makeTensorInfo(u,s),d=n.texData.get(p.dataId);return d.values=c,p}let i;return ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Ep(kS,a.shape,r.shape):i=new Nu(kS,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var lX={kernelName:ri,backendName:"webgl",kernelFunc:IS};function uX(e,t,n){let a=[yu(e.shape),...bu(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[yu(t),...bu(t)],i=new lS(s,a),o=!0,l=n.runWebGLProgram(i,[r],e.dtype,null,o);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function be(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=k.sizeFromShape(r.shape),l=k.inferFromImplicitShape(s,o),c=k.sizeFromShape(l);k.assert(o===c,()=>`The new shape (${l}) has ${c} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let u=i.texData.get(r.dataId);return u.isPacked&&!sf(r.shape,l)&&!(u.texture!==null&&sf(u.shape,l))?uX(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var cX={kernelName:Il,backendName:"webgl",kernelFunc:be},NS=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let u=1/t;l=`sumValue += dot(values * ${k.isInt(u)?u.toPrecision(2):u}, ones);`}let c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1120,7 +1120,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},lX=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,u=n%4,p=` + `}},pX=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,u=n%4,p=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1205,12 +1205,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function uX(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=_.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function Ji(e,t,n,a){let r=uX(e.shape),s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=ft(this.rank),r=tS("rc",this.rank),s=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=ft(this.rank),r=oS("rc",this.rank),s=new Array(this.rank);for(let c=0;c=2&&u>=2&&v,()=>`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 (${f}) and (${g}).`);let x=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);k.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let N=n?[y,p,h]:[y,h,p],T=a?[b,m,d]:[b,d,m],C=be({inputs:{x:e},backend:r,attrs:{shape:N}}),$=be({inputs:{x:t},backend:r,attrs:{shape:T}}),F=[C,$],O=Math.max(y,b),B=n?C.shape[1]:C.shape[2],W=s!=null,G=i!=null,q=l==="leakyrelu",H=l!=null?sf(l,!0):null,K=W||G||q||H!=null,X;if((h===1||m===1)&&B>xS&&K===!1){let J=C,se=$;n&&(J=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),F.push(J)),a&&(se=Sn({inputs:{x:$},backend:r,attrs:{perm:[0,2,1]}}),F.push(se));let Q=m!==1,oe=m===1,ae=J;Q&&(ae=be({inputs:{x:J},backend:r,attrs:{shape:[O,B,1]}}),F.push(ae));let pe=m===1?2:1,ue=se;oe&&(ue=be({inputs:{x:se},backend:r,attrs:{shape:[O,1,B]}}),F.push(ue));let ge=yS({inputs:{a:ae,b:ue},backend:r});X=tw({inputs:{x:ge},backend:r,attrs:{axis:pe,keepDims:!0}}),F.push(ge)}else{let J=ca(e.dtype,t.dtype),se=new hS(N,T,[O,h,m],n,a,W,H,G,q),Q=[C,$];if(s!=null&&Q.push(s),G&&Q.push(i),q){let oe=r.makeTensorInfo([],"float32",k.createScalarValue(o,"float32"));Q.push(oe),F.push(oe)}X=r.runWebGLProgram(se,Q,J)}let ne=be({inputs:{x:X},backend:r,attrs:{shape:x}});F.push(X);for(let J of F)r.disposeIntermediateTensorInfo(J);return ne}function gX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a;return lf({a:r,b:s,transposeA:l,transposeB:c,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:u})}var yX={kernelName:ki,backendName:"webgl",kernelFunc:gX},vS="return abs(x);";function bX(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=eS(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new Iu(a.shape,vS):r=new ms(a.shape,vS),n.runWebGLProgram(r,[a],a.dtype)}var xX={kernelName:Oo,backendName:"webgl",kernelFunc:bX},vX=Ma+` + `}};function cf(e,t,n){let a=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new fX(e.shape,t):new mX(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function gX(e,t,n,a){let r=t,s=e.shape.length,i=k.parseAxisParam(r,e.shape),o=i,l=_.getAxesPermutation(o,s),c=l!=null,u=e;c&&(u=cf(e,l,a),o=_.getInnerMostAxes(o.length,s)),_.assertAxesAreInnerMostDims("sum",o,s);let[p,d]=_.computeOutAndReduceShapes(u.shape,o),h=p;n&&(h=_.expandShapeToKeepDim(p,i));let m=k.sizeFromShape(d),f=k.sizeFromShape(e.shape)/m,g=be({inputs:{x:u},attrs:{shape:[f,m]},backend:a}),y=vh(e.dtype),b=eo(g,y,"sum",a),v=be({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),c&&a.disposeIntermediateTensorInfo(u),v}function ow(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return gX(r,s,i,n)}var yX={kernelName:bi,backendName:"webgl",kernelFunc:ow};function Sn(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let u=0;u=2&&u>=2&&v,()=>`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 (${f}) and (${g}).`);let x=(y>b?e.shape.slice(0,-2):t.shape.slice(0,-2)).concat([h,m]);k.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let N=n?[y,p,h]:[y,h,p],T=a?[b,m,d]:[b,d,m],C=be({inputs:{x:e},backend:r,attrs:{shape:N}}),F=be({inputs:{x:t},backend:r,attrs:{shape:T}}),$=[C,F],P=Math.max(y,b),B=n?C.shape[1]:C.shape[2],W=s!=null,G=i!=null,q=l==="leakyrelu",j=l!=null?uf(l,!0):null,X=W||G||q||j!=null,K;if((h===1||m===1)&&B>TS&&X===!1){let J=C,se=F;n&&(J=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),$.push(J)),a&&(se=Sn({inputs:{x:F},backend:r,attrs:{perm:[0,2,1]}}),$.push(se));let Q=m!==1,oe=m===1,ae=J;Q&&(ae=be({inputs:{x:J},backend:r,attrs:{shape:[P,B,1]}}),$.push(ae));let pe=m===1?2:1,ue=se;oe&&(ue=be({inputs:{x:se},backend:r,attrs:{shape:[P,1,B]}}),$.push(ue));let ge=IS({inputs:{a:ae,b:ue},backend:r});K=ow({inputs:{x:ge},backend:r,attrs:{axis:pe,keepDims:!0}}),$.push(ge)}else{let J=pa(e.dtype,t.dtype),se=new xS(N,T,[P,h,m],n,a,W,j,G,q),Q=[C,F];if(s!=null&&Q.push(s),G&&Q.push(i),q){let oe=r.makeTensorInfo([],"float32",k.createScalarValue(o,"float32"));Q.push(oe),$.push(oe)}K=r.runWebGLProgram(se,Q,J)}let ne=be({inputs:{x:K},backend:r,attrs:{shape:x}});$.push(K);for(let J of $)r.disposeIntermediateTensorInfo(J);return ne}function xX(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a;return pf({a:r,b:s,transposeA:l,transposeB:c,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:p,activation:u})}var vX={kernelName:Ni,backendName:"webgl",kernelFunc:xX},SS="return abs(x);";function wX(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=iS(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new Iu(a.shape,SS):r=new ms(a.shape,SS),n.runWebGLProgram(r,[a],a.dtype)}var kX={kernelName:zo,backendName:"webgl",kernelFunc:wX},IX=Pa+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,wX=Ze({opSnippet:vX}),kX={kernelName:Lo,backendName:"webgl",kernelFunc:wX},IX=Ma+` +`,NX=Ze({opSnippet:IX}),TX={kernelName:Bo,backendName:"webgl",kernelFunc:NX},SX=Pa+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,NX=Ze({opSnippet:IX}),TX={kernelName:zo,backendName:"webgl",kernelFunc:NX},wS="return a + b;",SX=an({opSnippet:wS,packedOpSnippet:wS,supportsComplex:!0,cpuKernelImpl:X8}),CX={kernelName:Vr,backendName:"webgl",kernelFunc:SX},_X=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,CX=Ze({opSnippet:SX}),_X={kernelName:Wo,backendName:"webgl",kernelFunc:CX},CS="return a + b;",EX=an({opSnippet:CS,packedOpSnippet:CS,supportsComplex:!0,cpuKernelImpl:Q8}),AX={kernelName:Ur,backendName:"webgl",kernelFunc:EX},FX=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1242,7 +1242,7 @@ return log(x + sqrt(x * x - 1.0));`,NX=Ze({opSnippet:IX}),TX={kernelName:zo,back float result = ${a}; setOutput(result); } - `}},EX=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},$X=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1250,7 +1250,7 @@ return log(x + sqrt(x * x - 1.0));`,NX=Ze({opSnippet:IX}),TX={kernelName:zo,back vec4 result = ${a}; setOutput(result); } - `}};function uf(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Bn({inputs:{x:a[0]},backend:n});if(a.length>ee().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=uf({inputs:a.slice(0,o),backend:n}),c=uf({inputs:a.slice(o),backend:n});return uf({inputs:[l,c],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ca(o,l)),s=a.map(o=>o.shape),i=ee().getBool("WEBGL_PACK")?new EX(a[0].shape,s):new _X(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var AX={kernelName:$s,backendName:"webgl",kernelFunc:uf};function FX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Sn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("all",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Ji(f,f.dtype,"all",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var $X={kernelName:Md,backendName:"webgl",kernelFunc:FX};function DX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Sn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("any",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=Ji(f,f.dtype,"any",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var RX={kernelName:Pd,backendName:"webgl",kernelFunc:DX},MX=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function df(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return Wn({inputs:{x:a[0]},backend:n});if(a.length>ee().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=df({inputs:a.slice(0,o),backend:n}),c=df({inputs:a.slice(o),backend:n});return df({inputs:[l,c],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>pa(o,l)),s=a.map(o=>o.shape),i=ee().getBool("WEBGL_PACK")?new $X(a[0].shape,s):new FX(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var DX={kernelName:$s,backendName:"webgl",kernelFunc:df};function RX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Sn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("all",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=eo(f,f.dtype,"all",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var MX={kernelName:Ld,backendName:"webgl",kernelFunc:RX};function PX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=r;u!=null&&(p=Sn({inputs:{x:r},backend:n,attrs:{perm:u}}),c=_.getInnerMostAxes(c.length,o)),_.assertAxesAreInnerMostDims("any",c,o);let[d,h]=_.computeOutAndReduceShapes(p.shape,c),m=k.sizeFromShape(h),f=be({inputs:{x:p},backend:n,attrs:{shape:[-1,m]}}),g=eo(f,f.dtype,"any",n),y;if(i){let b=_.expandShapeToKeepDim(d,l);y=be({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=be({inputs:{x:g},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),u!=null&&n.disposeIntermediateTensorInfo(p),y}var OX={kernelName:zd,backendName:"webgl",kernelFunc:PX},LX=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1270,7 +1270,7 @@ return log(x + sqrt(x * x - 1.0));`,NX=Ze({opSnippet:IX}),TX={kernelName:zo,back } setOutput(float(bestIndex)); } - `}},PX=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,k.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ft(o),c=fn("coords",o),u,p;if(s===1){p=o+1;let C=ft(p);u=` + `}},zX=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,k.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=ft(o),c=fn("coords",o),u,p;if(s===1){p=o+1;let C=ft(p);u=` ${C} sourceLocR = ${C}(${c.join()}, 0); ++${c[o-1]}; ${C} sourceLocG = ${C}(${c.join()}, 0); @@ -1332,23 +1332,23 @@ return log(x + sqrt(x * x - 1.0));`,NX=Ze({opSnippet:IX}),TX={kernelName:zo,back } setOutput(bestIndex); } - `}};function kS(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=_.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new MX(o,n,a==null),c=[t];a!=null&&c.push(a);let u=e.runWebGLProgram(l,c,"int32");if(u.shape[1]===1)return u;let p=kS(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}function IS(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=_.computeOptimalWindowSize(s),o=new PX(r,i,n,a==null),l=a==null?[t]:[t,a],c=e.runWebGLProgram(o,l,"int32");if(c.shape.length===t.shape.length){let u=IS(e,t,n,c);return e.disposeIntermediateTensorInfo(c),u}return c}function NS(e,t,n,a){let r=[n];if(_.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!ee().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=_.computeOutAndReduceShapes(t.shape,r),l=k.sizeFromShape(o),c=be({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(c);let u=kS(e,c,a);s.push(u);let p=be({inputs:{x:u},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return IS(e,t,a)}function OX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let u=NS(n,l,i[0],"max");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var LX={kernelName:Ds,backendName:"webgl",kernelFunc:OX};function zX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let u=NS(n,l,i[0],"min");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var BX={kernelName:fc,backendName:"webgl",kernelFunc:zX},WX=Ma+` + `}};function _S(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=_.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new LX(o,n,a==null),c=[t];a!=null&&c.push(a);let u=e.runWebGLProgram(l,c,"int32");if(u.shape[1]===1)return u;let p=_S(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}function ES(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=_.computeOptimalWindowSize(s),o=new zX(r,i,n,a==null),l=a==null?[t]:[t,a],c=e.runWebGLProgram(o,l,"int32");if(c.shape.length===t.shape.length){let u=ES(e,t,n,c);return e.disposeIntermediateTensorInfo(c),u}return c}function AS(e,t,n,a){let r=[n];if(_.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!ee().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],[i,o]=_.computeOutAndReduceShapes(t.shape,r),l=k.sizeFromShape(o),c=be({inputs:{x:t},backend:e,attrs:{shape:[-1,l]}});s.push(c);let u=_S(e,c,a);s.push(u);let p=be({inputs:{x:u},backend:e,attrs:{shape:i}});return s.forEach(d=>e.disposeIntermediateTensorInfo(d)),p}return ES(e,t,a)}function BX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let u=AS(n,l,i[0],"max");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var WX={kernelName:Ds,backendName:"webgl",kernelFunc:BX};function VX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=k.parseAxisParam(s,r.shape),o=_.getAxesPermutation(i,r.shape.length),l=r,c=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),c.push(l),i=_.getInnerMostAxes(i.length,l.shape.length)),_.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let u=AS(n,l,i[0],"min");return c.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var UX={kernelName:mc,backendName:"webgl",kernelFunc:VX},GX=Pa+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,VX=Ze({opSnippet:WX}),UX={kernelName:Bo,backendName:"webgl",kernelFunc:VX},GX=Ma+"return log(x + sqrt(x * x + 1.0));",HX=Ze({opSnippet:GX}),jX={kernelName:Wo,backendName:"webgl",kernelFunc:HX},qX=Ma+` +`,HX=Ze({opSnippet:GX}),jX={kernelName:Vo,backendName:"webgl",kernelFunc:HX},qX=Pa+"return log(x + sqrt(x * x + 1.0));",KX=Ze({opSnippet:qX}),XX={kernelName:Uo,backendName:"webgl",kernelFunc:KX},YX=Pa+` return atan(x); -`,KX=Ze({opSnippet:qX}),XX={kernelName:Vo,backendName:"webgl",kernelFunc:KX},YX=aX+` +`,ZX=Ze({opSnippet:YX}),JX={kernelName:Go,backendName:"webgl",kernelFunc:ZX},QX=iX+` return atan(a, b); -`,ZX=` +`,eY=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+rX+` + `+oX+` return result; -`,JX=an({opSnippet:YX,packedOpSnippet:ZX}),QX={kernelName:Go,backendName:"webgl",kernelFunc:JX},eY=Ma+` +`,tY=an({opSnippet:QX,packedOpSnippet:eY}),nY={kernelName:jo,backendName:"webgl",kernelFunc:tY},aY=Pa+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelName:Uo,backendName:"webgl",kernelFunc:tY},Ep=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,rY=Ze({opSnippet:aY}),sY={kernelName:Ho,backendName:"webgl",kernelFunc:rY},Ap=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterHeight,p=e.effectiveFilterWidth,d=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${d}, ${h}); @@ -1489,7 +1489,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(${v}); } - `}},nw=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,c=e.dilationDepth,u=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",v="0.0";if(b||(v="-1.0 / 1e-20"),n){let F=">=";this.userCode=` + `}},lw=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,c=e.dilationDepth,u=e.dilationHeight,p=e.dilationWidth,d=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",v="0.0";if(b||(v="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1540,7 +1540,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${F} currMinMaxValue) { + if (value ${$} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${h} * ${m} + @@ -1551,7 +1551,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let x="max",N=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(N="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,$=` + `;return}let x="max",N=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(N="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,F=` if (${b}) { avgValue += dot(values, ones); } else { @@ -1616,7 +1616,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam getValue(batch, xD, xR, xC + 3 * ${p}, ch) ); - ${$} + ${F} } int xC = xCCorner + ${T}; @@ -1628,7 +1628,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam initializationValue ); - ${$} + ${F} } else if (${C===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1637,7 +1637,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam initializationValue ); - ${$} + ${F} } else if (${C===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1646,13 +1646,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam initializationValue ); - ${$} + ${F} } } setOutput(${N}); } } - `}};function aY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Sp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Bn({inputs:{x:r},backend:n});let p=new Ep(u,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var rY={kernelName:Rs,backendName:"webgl",kernelFunc:aY};function sY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,l,c),d=new nw(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var iY={kernelName:gc,backendName:"webgl",kernelFunc:sY},oY=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=o-1-e.padInfo.top,u=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` + `}};function iY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Cp(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Wn({inputs:{x:r},backend:n});let p=new Ap(u,"avg",!1);return n.runWebGLProgram(p,[r],"float32")}var oY={kernelName:Rs,backendName:"webgl",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,l,c),d=new lw(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var uY={kernelName:fc,backendName:"webgl",kernelFunc:lY},cY=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=o-1-e.padInfo.top,u=l-1-e.padInfo.left,p=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${c}, ${u}); const float avgMultiplier = float(${p}); @@ -1694,7 +1694,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},lY=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=u-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},pY=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.effectiveFilterDepth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,h=u-1-e.padInfo.front,m=p-1-e.padInfo.top,f=d-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -1750,7 +1750,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}};function uY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new lY(d);return n.runWebGLProgram(h,[r],i.dtype)}var cY={kernelName:Ld,backendName:"webgl",kernelFunc:uY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Sp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=new oY(u);return n.runWebGLProgram(p,[r],i.dtype)}var dY={kernelName:Od,backendName:"webgl",kernelFunc:pY};function hY(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return lf({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var mY={kernelName:Ms,backendName:"webgl",kernelFunc:hY},fY=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function dY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new pY(d);return n.runWebGLProgram(h,[r],i.dtype)}var hY={kernelName:Wd,backendName:"webgl",kernelFunc:dY};function mY(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Cp([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:c}=a,u=_.computePool2DInfo(i.shape,o,l,1,c),p=new cY(u);return n.runWebGLProgram(p,[r],i.dtype)}var fY={kernelName:Bd,backendName:"webgl",kernelFunc:mY};function gY(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return pf({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var yY={kernelName:Ms,backendName:"webgl",kernelFunc:gY},bY=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},gY=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},xY=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],_.assertAndGetBroadcastShape(e,t),_.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(_.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(_.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -1773,7 +1773,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam setOutput((x - mean) * inv + offset); } - `}},yY=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;k.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=[a,r,s],u=null;i!=null&&(u=i.shape,c.push(i));let p=null;o!=null&&(p=o.shape,c.push(o));let d=ee().getBool("WEBGL_PACK_NORMALIZATION")?new gY(a.shape,r.shape,s.shape,u,p,l):new fY(a.shape,r.shape,s.shape,u,p,l);return t.runWebGLProgram(d,c,c[0].dtype)},bY={kernelName:js,backendName:"webgl",kernelFunc:yY},vY=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=`uniform int start[${this.rank}];`,a=xY(this.rank),r,s=e.map((i,o)=>`sourceLoc.${aw[o]} = start[${o}] + coords.${aw[o]};`);r=` + `}},vY=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;k.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),k.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),k.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=[a,r,s],u=null;i!=null&&(u=i.shape,c.push(i));let p=null;o!=null&&(p=o.shape,c.push(o));let d=ee().getBool("WEBGL_PACK_NORMALIZATION")?new xY(a.shape,r.shape,s.shape,u,p,l):new bY(a.shape,r.shape,s.shape,u,p,l);return t.runWebGLProgram(d,c,c[0].dtype)},wY={kernelName:qs,backendName:"webgl",kernelFunc:vY},IY=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=`uniform int start[${this.rank}];`,a=kY(this.rank),r,s=e.map((i,o)=>`sourceLoc.${uw[o]} = start[${o}] + coords.${uw[o]};`);r=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${s.join(` @@ -1784,7 +1784,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${r} setOutput(getSource(${a})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},aw=["x","y","z","w","u","v"];function xY(e){if(e===1)return"sourceLoc";if(e<=6)return aw.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var wY=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=fn("coords",this.rank),a=fn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},uw=["x","y","z","w","u","v"];function kY(e){if(e===1)return"sourceLoc";if(e<=6)return uw.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var NY=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=ft(this.rank),n=fn("coords",this.rank),a=fn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -1814,7 +1814,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${o} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function kY(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.complexParentRefCount=0,i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=pn.computeFlatOffset(t,k.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Ap(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=pn.parseSliceParams(r,s,i);if(pn.assertParamsValid(r,o,l),k.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=fK(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:c}=n.texData.get(r.dataId),u=pn.isSliceContinous(r.shape,o,l);if(c||!u){let p=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new wY(l):new vY(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),kY(r,o,l,n)}var IY={kernelName:Cl,backendName:"webgl",kernelFunc:Ap},NY=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;k.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,v)=>b*v),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=[],m=be({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:c}}),g=be({inputs:{x:f},backend:n,attrs:{shape:u}}),y=Ap({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},TY={kernelName:yc,backendName:"webgl",kernelFunc:NY};function SY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),c=QT(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var CY={kernelName:zd,backendName:"webgl",kernelFunc:SY},_Y="return float(a != b);",TS=an({opSnippet:_Y,dtype:"bool"}),EY={kernelName:fl,backendName:"webgl",kernelFunc:TS};function Fp(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Bn({inputs:{x:r.complexTensorInfos.real},backend:n})}var AY={kernelName:ih,backendName:"webgl",kernelFunc:Fp},FY="return float(int(x));";function $Y(e,t){let n=new ms(e.shape,FY),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function rw(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Bn({inputs:{x:r},backend:n});let i=vt(r.shape),o=rw({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=fs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=Fp({inputs:{input:r},backend:n}),o=rw({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=Bn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return $Y(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",k.getTypedArrayFromDType("bool",1)),o=TS({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var DY={kernelName:Ps,backendName:"webgl",kernelFunc:rw},SS="return ceil(x);",RY=Ze({opSnippet:SS,packedOpSnippet:SS,cpuKernelImpl:Z8}),MY={kernelName:Ho,backendName:"webgl",kernelFunc:RY},PY=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,n)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(n,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function TY(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=pn.computeFlatOffset(t,k.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Fp(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=pn.parseSliceParams(r,s,i);if(pn.assertParamsValid(r,o,l),k.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let p=n.texData.get(r.dataId),d=xK(p.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,d)}let{isPacked:c}=n.texData.get(r.dataId),u=pn.isSliceContinous(r.shape,o,l);if(c||!u){let p=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new NY(l):new IY(l),d=p.getCustomSetupFunc(o);return n.runWebGLProgram(p,[r],r.dtype,d)}return n.uploadToGPU(r.dataId),TY(r,o,l,n)}var SY={kernelName:Cl,backendName:"webgl",kernelFunc:Fp},CY=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;k.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,v)=>b*v),l=_.getReshaped(r.shape,s,o),c=_.getPermuted(l.length,s.length),u=_.getReshapedPermuted(r.shape,s,o),p=_.getSliceBeginCoords(i,s.length),d=_.getSliceSize(u,i,s.length),h=[],m=be({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:c}}),g=be({inputs:{x:f},backend:n,attrs:{shape:u}}),y=Fp({inputs:{x:g},backend:n,attrs:{begin:p,size:d}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},_Y={kernelName:gc,backendName:"webgl",kernelFunc:CY};function EY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),c=sS(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,c)}var AY={kernelName:Vd,backendName:"webgl",kernelFunc:EY},FY="return float(a != b);",FS=an({opSnippet:FY,dtype:"bool"}),$Y={kernelName:fl,backendName:"webgl",kernelFunc:FS};function $p(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Wn({inputs:{x:r.complexTensorInfos.real},backend:n})}var DY={kernelName:uh,backendName:"webgl",kernelFunc:$p},RY="return float(int(x));";function MY(e,t){let n=new ms(e.shape,RY),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function cw(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return Wn({inputs:{x:r},backend:n});let i=vt(r.shape),o=cw({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=fs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=$p({inputs:{input:r},backend:n}),o=cw({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!k.hasEncodingLoss(r.dtype,s)){let i=Wn({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(s==="int32")return MY(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",k.getTypedArrayFromDType("bool",1)),o=FS({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var PY={kernelName:Ps,backendName:"webgl",kernelFunc:cw},$S="return ceil(x);",OY=Ze({opSnippet:$S,packedOpSnippet:$S,cpuKernelImpl:tK}),LY={kernelName:Os,backendName:"webgl",kernelFunc:OY},zY=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1827,7 +1827,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},OY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}},BY=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1841,7 +1841,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function LY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;ee().getBool("WEBGL_PACK_CLIP")?o=new OY(r.shape):o=new PY(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var zY={kernelName:Ur,backendName:"webgl",kernelFunc:LY},BY=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(n,a)=>{this.minLoc==null&&(this.minLoc=n.getUniformLocationNoThrow(a,"minVal"),this.maxLoc=n.getUniformLocationNoThrow(a,"maxVal")),n.gl.uniform1f(this.minLoc,e),n.gl.uniform1f(this.maxLoc,t)}}};function WY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;ee().getBool("WEBGL_PACK_CLIP")?o=new BY(r.shape):o=new zY(r.shape);let l=o.getCustomSetupFunc(s,i);return n.runWebGLProgram(o,[r],r.dtype,l)}var VY={kernelName:Gr,backendName:"webgl",kernelFunc:WY},UY=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1854,7 +1854,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function CS(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function WY(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new BY(a.shape),i=[CS(a,r.complexTensorInfos.real),CS(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var VY={kernelName:bc,backendName:"webgl",kernelFunc:WY},UY=class{constructor(e){this.outputShape=[],this.outputShape=_.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${cf(i,l,f)}), - vec2(${cf(c,l,f)})); + getT${m}(${hf(i,l,f)}), + vec2(${hf(c,l,f)})); }`}let d=o.length,h=o[o.length-1];p+=` return getChannel( - getT${d}(${cf(i,l,h)}), - vec2(${cf(c,l,h)}));`,this.userCode=` + getT${d}(${hf(i,l,h)}), + vec2(${hf(c,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${p} } @@ -1900,7 +1900,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(result); } - `}};function cf(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function pf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Bn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var HY={kernelName:Qd,backendName:"webgl",kernelFunc:pf};function Tu(e,t,n){let a=e[0].dtype;if(a==="complex64"){let c=e.map(m=>Fp({inputs:{input:m},backend:n})),u=e.map(m=>pf({inputs:{input:m},backend:n})),p=Tu(c,t,n),d=Tu(u,t,n),h=fs({inputs:{real:p,imag:d},backend:n});return c.forEach(m=>n.disposeIntermediateTensorInfo(m)),u.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:c,outShape:u}=_S(e,t,n),p=c.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=c[0].shape[0]===1,h=J8(p,u,a,d),m=_.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>ee().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let c=Math.floor(e.length/2),u=Tu(e.slice(0,c),t,n),p=Tu(e.slice(c),t,n),d=Tu([u,p],t,n);return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),d}if(ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let c=new GY(e.map(u=>u.shape),t);return n.runWebGLProgram(c,e,a)}let{tensors2D:r,outShape:s}=_S(e,t,n),i=new UY(r.map(c=>c.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(c=>n.disposeIntermediateTensorInfo(c));let l=be({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function _S(e,t,n){let a=_.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>be({inputs:{x:r},attrs:{shape:[-1,k.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function ES(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=k.parseAxisParam(r,t[0].shape)[0],i=_.computeOutShape(t.map(c=>c.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(c=>k.sizeFromShape(c.shape)>0);if(o.length===1)return Bn({inputs:{x:o[0]},backend:n});let l=o.map(c=>c.shape);return _.assertParamsConsistent(l,s),Tu(o,s,n)}var jY={kernelName:jo,backendName:"webgl",kernelFunc:ES},AS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,u=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,v="",x="";n&&(a?v=`float activation(float a) { + `}};function hf(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function mf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return Wn({inputs:{x:r.complexTensorInfos.imag},backend:n})}var KY={kernelName:nh,backendName:"webgl",kernelFunc:mf};function Tu(e,t,n){let a=e[0].dtype;if(a==="complex64"){let c=e.map(m=>$p({inputs:{input:m},backend:n})),u=e.map(m=>mf({inputs:{input:m},backend:n})),p=Tu(c,t,n),d=Tu(u,t,n),h=fs({inputs:{real:p,imag:d},backend:n});return c.forEach(m=>n.disposeIntermediateTensorInfo(m)),u.forEach(m=>n.disposeIntermediateTensorInfo(m)),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),h}if(a==="string"){let{tensors2D:c,outShape:u}=RS(e,t,n),p=c.map(g=>({vals:n.readSync(g.dataId),shape:g.shape})),d=c[0].shape[0]===1,h=nK(p,u,a,d),m=_.computeOutShape(e.map(g=>g.shape),t),f=n.makeTensorInfo(m,a,h);return c.forEach(g=>n.disposeIntermediateTensorInfo(g)),f}if(e.length>ee().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let c=Math.floor(e.length/2),u=Tu(e.slice(0,c),t,n),p=Tu(e.slice(c),t,n),d=Tu([u,p],t,n);return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),d}if(ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].shape.length>1){let c=new qY(e.map(u=>u.shape),t);return n.runWebGLProgram(c,e,a)}let{tensors2D:r,outShape:s}=RS(e,t,n),i=new jY(r.map(c=>c.shape)),o=n.runWebGLProgram(i,r,a);r.forEach(c=>n.disposeIntermediateTensorInfo(c));let l=be({inputs:{x:o},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(o),l}function RS(e,t,n){let a=_.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>be({inputs:{x:r},attrs:{shape:[-1,k.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function MS(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=k.parseAxisParam(r,t[0].shape)[0],i=_.computeOutShape(t.map(c=>c.shape),s);if(k.sizeFromShape(i)===0)return n.makeTensorInfo(i,t[0].dtype,[]);let o=t.filter(c=>k.sizeFromShape(c.shape)>0);if(o.length===1)return Wn({inputs:{x:o[0]},backend:n});let l=o.map(c=>c.shape);return _.assertParamsConsistent(l,s),Tu(o,s,n)}var XY={kernelName:qo,backendName:"webgl",kernelFunc:MS},PS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,c=e.dilationHeight,u=e.dilationWidth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,v="",x="";n&&(a?v=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?v=`float activation(float a) { @@ -2034,7 +2034,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${x} setOutput(result); } - `}},qY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},YY=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,u=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2122,7 +2122,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},KY=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:c,dilationHeight:u,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=mn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,v="";for(let x=0;x<=1;x++)for(let N=0;N<=1;N++)v+=` + `}},ZY=class{constructor(e,t,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:a,inChannels:r,strideWidth:s,strideHeight:i,padInfo:o,outWidth:l,dilationWidth:c,dilationHeight:u,dataFormat:p}=n,{left:d,top:h}=o,m=r*a,f=mn(),g=p==="channelsLast",y=g?0:1,b=g?1:2,v="";for(let x=0;x<=1;x++)for(let N=0;N<=1;N++)v+=` blockIndex = rc.y + ${N}; pos = rc.x + ${x}; @@ -2166,7 +2166,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${f.output} = result; } - `}};function FS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,c=a.texData.get(e.dataId),u=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&u>xS,v=l[2]%2!=0&&!!c.isPacked;if(b||!ee().getBool("WEBGL_LAZILY_UNPACK")||!ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!v){let x=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],N=be({inputs:{x:e},backend:a,attrs:{shape:[1,x,n.inChannels]}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),C=lf({a:N,b:T,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=be({inputs:{x:C},backend:a,attrs:{shape:n.outShape}}),y.push(N),y.push(T),y.push(C)}else{let x=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),N={dataId:e.dataId,shape:[1,x,n.inChannels],dtype:e.dtype},T=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,k.assert(nf(c.shape,N.shape),()=>`packed reshape ${c.shape} to ${N.shape} isn't free`);let C=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(C);let $=lf({a:N,b:C,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),F=a.texData.get($.dataId);k.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=T,F.shape=n.outShape,g=Bn({inputs:{x:$},backend:a}),g.shape=n.outShape,y.push($)}for(let x of y)a.disposeIntermediateTensorInfo(x);return g}function $S({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:c,inChannels:u,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*c*u,g=d*p,y=[f,g],b=!0,v=!1,x=[],N=be({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,f,k.sizeFromShape(t.shape)/f]}});x.push(N),x.push(T);let C=new KY(y,N.shape,n),$=a.runWebGLProgram(C,[N],"float32"),F=be({inputs:{x:$},backend:a,attrs:{shape:[1,y[0],y[1]]}});x.push($),x.push(F);let O=r!=null,B=s!=null,W=o==="leakyrelu",G=o?sf(o,!0):null,q=new hS(F.shape,T.shape,[1,g,n.outChannels],b,v,O,G,B,W),H=[F,T];if(r&&H.push(r),B&&H.push(s),W){let J=a.makeTensorInfo([],"float32",k.createScalarValue(i,"float32"));H.push(J),x.push(J)}let K=a.runWebGLProgram(q,H,"float32"),X=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],ne=be({inputs:{x:K},backend:a,attrs:{shape:X}});x.push(K);for(let J of x)a.disposeIntermediateTensorInfo(J);return ne}function XY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=FS({x:r,filter:s,convInfo:d,backend:n});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=$S({x:r,filter:s,convInfo:d,backend:n});else{let f=new AS(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=be({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var YY={kernelName:Os,backendName:"webgl",kernelFunc:XY},ZY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function OS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,c=a.texData.get(e.dataId),u=n.inChannels,p=l[0]*l[1]*l[2],d=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[],b=(p===1||d===1)&&u>TS,v=l[2]%2!=0&&!!c.isPacked;if(b||!ee().getBool("WEBGL_LAZILY_UNPACK")||!ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!v){let x=h?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],N=be({inputs:{x:e},backend:a,attrs:{shape:[1,x,n.inChannels]}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),C=pf({a:N,b:T,transposeA:m,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=be({inputs:{x:C},backend:a,attrs:{shape:n.outShape}}),y.push(N),y.push(T),y.push(C)}else{let x=h?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),N={dataId:e.dataId,shape:[1,x,n.inChannels],dtype:e.dtype},T=c.shape;c.shape=c.shape.slice(),c.shape[c.shape.length-2]++,k.assert(sf(c.shape,N.shape),()=>`packed reshape ${c.shape} to ${N.shape} isn't free`);let C=be({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(C);let F=pf({a:N,b:C,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),$=a.texData.get(F.dataId);k.assert($.isPacked,()=>"batchMatMul result is expected to be packed"),c.shape=T,$.shape=n.outShape,g=Wn({inputs:{x:F},backend:a}),g.shape=n.outShape,y.push(F)}for(let x of y)a.disposeIntermediateTensorInfo(x);return g}function LS({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:c,inChannels:u,outWidth:p,outHeight:d,dataFormat:h}=n,m=h==="channelsLast",f=l*c*u,g=d*p,y=[f,g],b=!0,v=!1,x=[],N=be({inputs:{x:e},backend:a,attrs:{shape:e.shape.slice(1)}}),T=be({inputs:{x:t},backend:a,attrs:{shape:[1,f,k.sizeFromShape(t.shape)/f]}});x.push(N),x.push(T);let C=new ZY(y,N.shape,n),F=a.runWebGLProgram(C,[N],"float32"),$=be({inputs:{x:F},backend:a,attrs:{shape:[1,y[0],y[1]]}});x.push(F),x.push($);let P=r!=null,B=s!=null,W=o==="leakyrelu",G=o?uf(o,!0):null,q=new xS($.shape,T.shape,[1,g,n.outChannels],b,v,P,G,B,W),j=[$,T];if(r&&j.push(r),B&&j.push(s),W){let J=a.makeTensorInfo([],"float32",k.createScalarValue(i,"float32"));j.push(J),x.push(J)}let X=a.runWebGLProgram(q,j,"float32"),K=m?[1,d,p,n.outChannels]:[1,n.outChannels,d,p],ne=be({inputs:{x:X},backend:a,attrs:{shape:K}});x.push(X);for(let J of x)a.disposeIntermediateTensorInfo(J);return ne}function JY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!1,p),h;if(d.filterHeight===1&&d.filterWidth===1&&d.dilationHeight===1&&d.dilationWidth===1&&d.strideHeight===1&&d.strideWidth===1&&(d.padInfo.type==="SAME"||d.padInfo.type==="VALID"))h=OS({x:r,filter:s,convInfo:d,backend:n});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)h=LS({x:r,filter:s,convInfo:d,backend:n});else{let f=new PS(d);h=n.runWebGLProgram(f,[r,s],"float32")}let m=be({inputs:{x:h},backend:n,attrs:{shape:d.outShape}});return n.disposeIntermediateTensorInfo(h),m}var QY={kernelName:Ls,backendName:"webgl",kernelFunc:JY},e7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2208,7 +2208,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},JY=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,c=s?2:3,u=s?3:1;this.userCode=` + `}},t7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,c=s?2:3,u=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2261,7 +2261,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},QY=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},n7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2303,7 +2303,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},e7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,c=a-1-e.padInfo.left;this.userCode=` + `}},a7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,c=a-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${o}, ${l}, ${c}); void main() { @@ -2360,12 +2360,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}};function t7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,u,i,1,o,c,!1,p),h=new ZY(d);return n.runWebGLProgram(h,[r,s],"float32")}var n7={kernelName:Wd,backendName:"webgl",kernelFunc:t7};function a7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(c),d=_.computeConv2DInfo(i,s.shape,o,1,l,u,!1,p),h=new JY(d);return n.runWebGLProgram(h,[r,s],"float32")}var r7={kernelName:Ls,backendName:"webgl",kernelFunc:a7};function s7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeConv3DInfo(r.shape,s.shape,i,l,o),u=new qY(c);return n.runWebGLProgram(u,[r,s],"float32")}var i7={kernelName:xc,backendName:"webgl",kernelFunc:s7};function o7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,c=_.computeConv3DInfo(r.shape,l,i,1,o),u=new QY(c);return n.runWebGLProgram(u,[r,s],"float32")}var l7={kernelName:Vd,backendName:"webgl",kernelFunc:o7};function u7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,c=_.computeConv3DInfo(l,s.shape,o,1,i),u=new e7(c);return n.runWebGLProgram(u,[r,s],"float32")}var c7={kernelName:Ud,backendName:"webgl",kernelFunc:u7},p7=dS+` + `}};function r7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=_.convertConv2DDataFormat(l),d=_.computeConv2DInfo(r.shape,u,i,1,o,c,!1,p),h=new e7(d);return n.runWebGLProgram(h,[r,s],"float32")}var s7={kernelName:Gd,backendName:"webgl",kernelFunc:r7};function i7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=_.convertConv2DDataFormat(c),d=_.computeConv2DInfo(i,s.shape,o,1,l,u,!1,p),h=new t7(d);return n.runWebGLProgram(h,[r,s],"float32")}var o7={kernelName:zs,backendName:"webgl",kernelFunc:i7};function l7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeConv3DInfo(r.shape,s.shape,i,l,o),u=new YY(c);return n.runWebGLProgram(u,[r,s],"float32")}var u7={kernelName:bc,backendName:"webgl",kernelFunc:l7};function c7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,c=_.computeConv3DInfo(r.shape,l,i,1,o),u=new n7(c);return n.runWebGLProgram(u,[r,s],"float32")}var p7={kernelName:Hd,backendName:"webgl",kernelFunc:c7};function d7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,c=_.computeConv3DInfo(l,s.shape,o,1,i),u=new a7(c);return n.runWebGLProgram(u,[r,s],"float32")}var h7={kernelName:jd,backendName:"webgl",kernelFunc:d7},m7=bS+` return cos(x); -`,d7=Ze({opSnippet:p7}),h7={kernelName:zs,backendName:"webgl",kernelFunc:d7},m7=` +`,f7=Ze({opSnippet:m7}),g7={kernelName:Bs,backendName:"webgl",kernelFunc:f7},y7=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,f7=Ze({opSnippet:m7}),g7={kernelName:qo,backendName:"webgl",kernelFunc:f7},y7=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[c]=t,[u,p]=n;this.outputShape=[c,u,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=u>1?[`${(i-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,v,x]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,b7=Ze({opSnippet:y7}),x7={kernelName:Ko,backendName:"webgl",kernelFunc:b7},v7=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[c]=t,[u,p]=n;this.outputShape=[c,u,p,l];let d=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=u>1?[`${(i-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,v,x]=p>1?[`${(o-1)/(p-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${b}); void main() { @@ -2426,21 +2426,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam setOutput(newValue); } } - `}},b7=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,u=new y7(r.shape,s.shape,o,l,c);return n.runWebGLProgram(u,[r,s,i],"float32")},x7={kernelName:Ko,backendName:"webgl",kernelFunc:b7},MS=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${DS(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` + `}},w7=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:c}=a,u=new v7(r.shape,s.shape,o,l,c);return n.runWebGLProgram(u,[r,s,i],"float32")},k7={kernelName:Xo,backendName:"webgl",kernelFunc:w7},WS=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=e;let a=e.length,r=t?"0.0":`getX(${zS(a,"coords")})`,s=e[e.length-1],i="",o="";t?(i=n?`end != ${s-1}`:"end != 0",o=n?"end + 1":"end - 1"):(i=n?`end + pow2 < ${s}`:"end >= pow2",o=n?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { ${ft(a)} coords = getOutputCoords(); - int end = ${RS(a,"coords")}; + int end = ${BS(a,"coords")}; float val = ${r}; int pow2 = int(pow(2.0, index)); if (${i}) { int idx = ${o}; - ${RS(a,"coords")} = idx; - val += getX(${DS(a,"coords")}); + ${BS(a,"coords")} = idx; + val += getX(${zS(a,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function DS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function RS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function v7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,c=_.getAxesPermutation([s],l),u=r;c!=null&&(u=Sn({inputs:{x:r},backend:n,attrs:{perm:c}}));let p=_.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=r.shape[p],h=Bn({inputs:{x:u},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new MS(u.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new MS(u.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(c!=null){let m=_.getUndoAxesPermutation(c),f=Sn({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(u),f}return h}var w7={kernelName:Bs,backendName:"webgl",kernelFunc:v7};function k7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),c=n.readSync(s.dataId),u=QT(l,c,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}else if(r.shape.length===2){let l=n.bufferSync(r),c=n.bufferSync(s),u=Y8(l,c,i,o);return n.makeTensorInfo(u.shape,s.dtype,u.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var I7={kernelName:Gd,backendName:"webgl",kernelFunc:k7},N7=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.index==null&&(this.index=t.getUniformLocation(n,"index")),t.gl.uniform1f(this.index,e)}}};function zS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function BS(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function I7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length,c=_.getAxesPermutation([s],l),u=r;c!=null&&(u=Sn({inputs:{x:r},backend:n,attrs:{perm:c}}));let p=_.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${r.shape.length-1} but got axis=${s}`);let d=u.shape[p],h=Wn({inputs:{x:u},backend:n});for(let m=0;m<=Math.ceil(Math.log2(d))-1;m++){let f=new WS(u.shape,!1,o),g=f.getCustomSetupFunc(m),y=h;h=n.runWebGLProgram(f,[h],h.dtype,g),n.disposeIntermediateTensorInfo(y)}if(i){let m=new WS(u.shape,i,o),f=h;h=n.runWebGLProgram(m,[h],h.dtype),n.disposeIntermediateTensorInfo(f)}if(c!=null){let m=_.getUndoAxesPermutation(c),f=Sn({inputs:{x:h},backend:n,attrs:{perm:m}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(u),f}return h}var N7={kernelName:Ws,backendName:"webgl",kernelFunc:I7};function T7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),c=n.readSync(s.dataId),u=sS(l,c,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}else if(r.shape.length===2){let l=n.bufferSync(r),c=n.bufferSync(s),u=eK(l,c,i,o);return n.makeTensorInfo(u.shape,s.dtype,u.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var S7={kernelName:qd,backendName:"webgl",kernelFunc:T7},C7=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2459,7 +2459,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function T7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new N7(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var S7={kernelName:Xo,backendName:"webgl",kernelFunc:T7},PS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function _7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=new C7(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var E7={kernelName:Yo,backendName:"webgl",kernelFunc:_7},VS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=e.outChannels/e.inChannels,g="",y="";n&&(a?g=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?g=`float activation(float a) { @@ -2515,7 +2515,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${y} setOutput(result); } - `}},OS=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;let s=e.inHeight,i=e.inWidth,o=e.padInfo.top,l=e.padInfo.left,c=e.strideHeight,u=e.strideWidth,p=e.dilationHeight,d=e.dilationWidth,h=e.filterHeight,m=e.filterWidth,f=m,g="int xR; int xC; int xCOffset;";for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=_.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!0),d;return ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new OS(p):d=new PS(p),n.runWebGLProgram(d,[r,s],"float32")}var _7={kernelName:Ws,backendName:"webgl",kernelFunc:C7},E7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` + `}};function A7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:c}=a,u=l;u==null&&(u=[1,1]),k.assert(_.eitherStridesOrDilationsAreOne(i,u),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=_.computeConv2DInfo(r.shape,s.shape,i,u,o,c,!0),d;return ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?d=new US(p):d=new VS(p),n.runWebGLProgram(d,[r,s],"float32")}var F7={kernelName:Vs,backendName:"webgl",kernelFunc:A7},$7=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2703,7 +2703,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},A7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},D7=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -2748,13 +2748,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}};function F7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,filterShape:u}=a,p=_.computeConv2DInfo(r.shape,u,i,o,l,c,!0),d=new E7(p);return n.runWebGLProgram(d,[r,s],"float32")}var $7={kernelName:Hd,backendName:"webgl",kernelFunc:F7};function D7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,inputShape:u}=a,p=_.computeConv2DInfo(u,s.shape,i,o,l,c,!0),d=new A7(p);return n.runWebGLProgram(d,[r,s],"float32")}var R7={kernelName:jd,backendName:"webgl",kernelFunc:D7},M7=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function R7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,filterShape:u}=a,p=_.computeConv2DInfo(r.shape,u,i,o,l,c,!0),d=new $7(p);return n.runWebGLProgram(d,[r,s],"float32")}var M7={kernelName:Kd,backendName:"webgl",kernelFunc:R7};function P7(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:c,inputShape:u}=a,p=_.computeConv2DInfo(u,s.shape,i,o,l,c,!0),d=new D7(p);return n.runWebGLProgram(d,[r,s],"float32")}var O7={kernelName:Xd,backendName:"webgl",kernelFunc:P7},L7=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function P7(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=k.sizeFromShape(a.shape),i=be({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new M7(s),l=n.runWebGLProgram(o,[i],i.dtype),c=be({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),c}var O7={kernelName:qd,backendName:"webgl",kernelFunc:P7},L7=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:c}=e,{top:u,left:p}=a;this.userCode=` + `}};function z7(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=k.sizeFromShape(a.shape),i=be({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new L7(s),l=n.runWebGLProgram(o,[i],i.dtype),c=be({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),c}var B7={kernelName:Yd,backendName:"webgl",kernelFunc:z7},W7=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:c}=e,{top:u,left:p}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${u}, ${p}); const float neg_infinity = -3.4e38; @@ -2792,7 +2792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam float result = curVal; setOutput(result); } - `}};function z7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),u,p=new L7(c);u=n.runWebGLProgram(p,[r,s],"float32");let d=be({inputs:{x:u},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(u),d}var B7={kernelName:vc,backendName:"webgl",kernelFunc:z7},W7="return (x >= 0.0) ? x : (exp(x) - 1.0);",V7=` + `}};function V7(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,c=_.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),u,p=new W7(c);u=n.runWebGLProgram(p,[r,s],"float32");let d=be({inputs:{x:u},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(u),d}var U7={kernelName:xc,backendName:"webgl",kernelFunc:V7},G7="return (x >= 0.0) ? x : (exp(x) - 1.0);",H7=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -2801,12 +2801,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,U7=Ze({opSnippet:W7,packedOpSnippet:V7}),G7={kernelName:Yo,backendName:"webgl",kernelFunc:U7},H7="return (b >= 1.0) ? a : a * (b + 1.0);",j7=` +`,j7=Ze({opSnippet:G7,packedOpSnippet:H7}),q7={kernelName:Zo,backendName:"webgl",kernelFunc:j7},K7="return (b >= 1.0) ? a : a * (b + 1.0);",X7=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,q7=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new _p(j7,a.shape,r.shape):new Nu(H7,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},K7={kernelName:Yd,backendName:"webgl",kernelFunc:q7},X7=` +`,Y7=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=ee().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ep(X7,a.shape,r.shape):new Nu(K7,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},Z7={kernelName:Qd,backendName:"webgl",kernelFunc:Y7},J7=` return vec4(equal(a, b)); -`,Y7="return float(a == b);",Z7=an({opSnippet:Y7,packedOpSnippet:X7,dtype:"bool"}),J7={kernelName:Jo,backendName:"webgl",kernelFunc:Z7},Q7=` +`,Q7="return float(a == b);",eZ=an({opSnippet:Q7,packedOpSnippet:J7,dtype:"bool"}),tZ={kernelName:Qo,backendName:"webgl",kernelFunc:eZ},nZ=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -2821,7 +2821,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,eZ=Ze({opSnippet:Q7}),tZ={kernelName:Zo,backendName:"webgl",kernelFunc:eZ},LS="return exp(x);",zS=Ze({opSnippet:LS,packedOpSnippet:LS,cpuKernelImpl:Q8}),nZ={kernelName:Us,backendName:"webgl",kernelFunc:zS};function sw(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(k.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),be({inputs:{x:s},backend:a,attrs:{shape:o}})}var aZ={kernelName:Qo,backendName:"webgl",kernelFunc:sw},BS="return exp(x) - 1.0;",rZ=Ze({opSnippet:BS,packedOpSnippet:BS,cpuKernelImpl:eK}),sZ={kernelName:el,backendName:"webgl",kernelFunc:rZ},WS=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,aZ=Ze({opSnippet:nZ}),rZ={kernelName:Jo,backendName:"webgl",kernelFunc:aZ},GS="return exp(x);",HS=Ze({opSnippet:GS,packedOpSnippet:GS,cpuKernelImpl:aK}),sZ={kernelName:Gs,backendName:"webgl",kernelFunc:HS};function pw(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(k.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),be({inputs:{x:s},backend:a,attrs:{shape:o}})}var iZ={kernelName:el,backendName:"webgl",kernelFunc:pw},jS="return exp(x) - 1.0;",oZ=Ze({opSnippet:jS,packedOpSnippet:jS,cpuKernelImpl:rK}),lZ={kernelName:tl,backendName:"webgl",kernelFunc:oZ},qS=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -2854,13 +2854,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function VS(e,t,n){let a=n.texData.get(e.dataId),r=k.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=be({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,c=new WS("real",l,t),u=new WS("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=fs({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=be({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function iZ(e){let{inputs:t,backend:n}=e,{input:a}=t;return VS(a,!1,n)}var oZ={kernelName:Zd,backendName:"webgl",kernelFunc:iZ},lZ=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function KS(e,t,n){let a=n.texData.get(e.dataId),r=k.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=be({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,c=new qS("real",l,t),u=new qS("imag",l,t),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],d=n.runWebGLProgram(c,p,"float32"),h=n.runWebGLProgram(u,p,"float32"),m=fs({inputs:{real:d,imag:h},backend:n});n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h);let f=be({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function uZ(e){let{inputs:t,backend:n}=e,{input:a}=t;return KS(a,!1,n)}var cZ={kernelName:eh,backendName:"webgl",kernelFunc:uZ},pZ=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function iw(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||k.inferDtype(r),s==="string"){let i=k.getArrayFromDType(s,k.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new lZ(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var uZ={kernelName:wc,backendName:"webgl",kernelFunc:iw},cZ=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,n)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(n,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function dw(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||k.inferDtype(r),s==="string"){let i=k.getArrayFromDType(s,k.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new pZ(a,r),o=i.getCustomSetupFunc(r);return t.runWebGLProgram(i,[],s,o)}}var dZ={kernelName:vc,backendName:"webgl",kernelFunc:dw},hZ=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -2874,7 +2874,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(outputValue); } - `}},pZ={kernelName:tl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new cZ(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},US="return floor(x);",dZ=Ze({opSnippet:US,packedOpSnippet:US,cpuKernelImpl:tK}),hZ={kernelName:Gs,backendName:"webgl",kernelFunc:dZ},mZ=` + `}},mZ={kernelName:nl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new hZ(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},XS="return floor(x);",fZ=Ze({opSnippet:XS,packedOpSnippet:XS,cpuKernelImpl:sK}),gZ={kernelName:Hs,backendName:"webgl",kernelFunc:fZ},yZ=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -2884,7 +2884,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } else { return NAN; } -`,fZ=` +`,bZ=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -2905,7 +2905,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,gZ=an({opSnippet:mZ,packedOpSnippet:fZ,dtype:"int32"}),yZ={kernelName:Hs,backendName:"webgl",kernelFunc:gZ},bZ=class{constructor(e){this.variableNames=["A"];let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,xZ=an({opSnippet:yZ,packedOpSnippet:bZ,dtype:"int32"}),vZ={kernelName:js,backendName:"webgl",kernelFunc:xZ},wZ=class{constructor(e){this.variableNames=["A"];let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2927,7 +2927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},xZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},kZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=mn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2961,7 +2961,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${t.output} = result; } - `}},wZ={kernelName:ph,backendName:"webgl",kernelFunc:vZ},Su;function vZ(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap,[c,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,c],d=[u,c,s];(o||i||l)&&(Su==null&&(Su=document.createElement("canvas").getContext("2d")),Su.canvas.width=c,Su.canvas.height=u,Su.drawImage(r,0,0,c,u),r=Su.canvas);let h=n.makeTensorInfo(p,"int32");n.texData.get(h.dataId).usage=ea.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),r);let m=ee().getBool("WEBGL_PACK")?new xZ(d):new bZ(d),f=n.runWebGLProgram(m,[h],"int32");return n.disposeData(h.dataId),f}function kZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=_.convertConv2DDataFormat(u),g=_.computeConv2DInfo(r.shape,s.shape,l,p,c,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=FS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=$S({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let x=i!=null,N=o!=null,T=h==="leakyrelu",C=h?sf(h,!1):null,$=new AS(g,x,C,N,T),F=[r,s];if(i&&F.push(i),o&&F.push(o),T){let O=n.makeTensorInfo([],"float32",k.createScalarValue(m,"float32"));F.push(O),b.push(O)}y=n.runWebGLProgram($,F,"float32")}let v=be({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var IZ={kernelName:Ii,backendName:"webgl",kernelFunc:kZ};function NZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=u;f==null&&(f=[1,1]),k.assert(_.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=_.computeConv2DInfo(r.shape,s.shape,l,f,c,p,!0),y=ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?sf(d,y):null,v=[r,s],x=i!=null,N=o!=null,T=d==="leakyrelu";if(x&&v.push(i),N&&v.push(o),T){let F=n.makeTensorInfo([],"float32",k.createScalarValue(h,"float32"));v.push(F),m.push(F)}let C;y?C=new OS(g,x,b,N,T):C=new PS(g,x,b,N,T);let $=n.runWebGLProgram(C,v,"float32");return m.forEach(F=>n.disposeIntermediateTensorInfo(F)),$}var TZ={kernelName:Ni,backendName:"webgl",kernelFunc:NZ},SZ=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=ft(t.length),r=ft(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` + `}},NZ={kernelName:mh,backendName:"webgl",kernelFunc:IZ},Su;function IZ(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap,[c,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,c],d=[u,c,s];(o||i||l)&&(Su==null&&(Su=document.createElement("canvas").getContext("2d")),Su.canvas.width=c,Su.canvas.height=u,Su.drawImage(r,0,0,c,u),r=Su.canvas);let h=n.makeTensorInfo(p,"int32");n.texData.get(h.dataId).usage=ea.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(h.dataId),r);let m=ee().getBool("WEBGL_PACK")?new kZ(d):new wZ(d),f=n.runWebGLProgram(m,[h],"int32");return n.disposeData(h.dataId),f}function TZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dataFormat:u,dilations:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=a,f=_.convertConv2DDataFormat(u),g=_.computeConv2DInfo(r.shape,s.shape,l,p,c,d,!1,f),y,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=OS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(ee().getBool("WEBGL_CONV_IM2COL")&&r.shape[0]===1)y=LS({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let x=i!=null,N=o!=null,T=h==="leakyrelu",C=h?uf(h,!1):null,F=new PS(g,x,C,N,T),$=[r,s];if(i&&$.push(i),o&&$.push(o),T){let P=n.makeTensorInfo([],"float32",k.createScalarValue(m,"float32"));$.push(P),b.push(P)}y=n.runWebGLProgram(F,$,"float32")}let v=be({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var SZ={kernelName:Ti,backendName:"webgl",kernelFunc:TZ};function CZ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dimRoundingMode:p,activation:d,leakyreluAlpha:h}=a,m=[],f=u;f==null&&(f=[1,1]),k.assert(_.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=_.computeConv2DInfo(r.shape,s.shape,l,f,c,p,!0),y=ee().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=d?uf(d,y):null,v=[r,s],x=i!=null,N=o!=null,T=d==="leakyrelu";if(x&&v.push(i),N&&v.push(o),T){let $=n.makeTensorInfo([],"float32",k.createScalarValue(h,"float32"));v.push($),m.push($)}let C;y?C=new US(g,x,b,N,T):C=new VS(g,x,b,N,T);let F=n.runWebGLProgram(C,v,"float32");return m.forEach($=>n.disposeIntermediateTensorInfo($)),F}var _Z={kernelName:Si,backendName:"webgl",kernelFunc:CZ},EZ=class{constructor(e,t,n){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=n;let a=ft(t.length),r=ft(n.length),s=this.sliceDim>1?"strides[j]":"strides";this.userCode=` ${a} strides = ${a}(${this.strides}); void main() { ${r} coords = getOutputCoords(); @@ -2972,21 +2972,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(getX(flattenIndex, coords[1])); } - `}};function CZ(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,c,u]=_.prepareAndValidate(a,r),p=be({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=be({inputs:{x:a},backend:n,attrs:{shape:[k.sizeFromShape(a.shape)/c,c]}}),h=new SZ(i,u,[l,c]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var _Z={kernelName:al,backendName:"webgl",kernelFunc:CZ},AZ=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ft(this.rank),a=EZ(e,2);this.userCode=` + `}};function AZ(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=r.shape,i=s[s.length-1],[o,l,c,u]=_.prepareAndValidate(a,r),p=be({inputs:{x:r},backend:n,attrs:{shape:[l,i]}}),d=be({inputs:{x:a},backend:n,attrs:{shape:[k.sizeFromShape(a.shape)/c,c]}}),h=new EZ(i,u,[l,c]),m=n.runWebGLProgram(h,[d,p],d.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(m),f}var FZ={kernelName:rl,backendName:"webgl",kernelFunc:AZ},DZ=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let n=ft(this.rank),a=$Z(e,2);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${a})); } - `}};function EZ(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(N)),n.makeTensorInfo(c.outputShape,x.dtype,x.values)}let f=new AZ(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=be({inputs:{x:g},backend:n,attrs:{shape:c.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var $Z={kernelName:nl,backendName:"webgl",kernelFunc:FZ},DZ="return float(a > b);",RZ=` + `}};function $Z(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;rn.disposeIntermediateTensorInfo(N)),n.makeTensorInfo(c.outputShape,x.dtype,x.values)}let f=new DZ(d.shape,m),g=n.runWebGLProgram(f,[d,h],d.dtype);p.push(g);let y=be({inputs:{x:g},backend:n,attrs:{shape:c.outputShape}});return p.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var MZ={kernelName:al,backendName:"webgl",kernelFunc:RZ},PZ="return float(a > b);",OZ=` return vec4(greaterThan(a, b)); -`,MZ=an({opSnippet:DZ,packedOpSnippet:RZ,cpuKernelImpl:aK,dtype:"bool"}),PZ={kernelName:rl,backendName:"webgl",kernelFunc:MZ},OZ="return float(a >= b);",LZ=` +`,LZ=an({opSnippet:PZ,packedOpSnippet:OZ,cpuKernelImpl:oK,dtype:"bool"}),zZ={kernelName:sl,backendName:"webgl",kernelFunc:LZ},BZ="return float(a >= b);",WZ=` return vec4(greaterThanEqual(a, b)); -`,zZ=an({opSnippet:OZ,packedOpSnippet:LZ,dtype:"bool"}),BZ={kernelName:qs,backendName:"webgl",kernelFunc:zZ};function WZ(e){let{inputs:t,backend:n}=e,{input:a}=t;return VS(a,!0,n)}var VZ={kernelName:Jd,backendName:"webgl",kernelFunc:WZ},UZ="return float(!isnan(x) && !isinf(x));",GZ=Ze({opSnippet:UZ,dtype:"bool"}),HZ={kernelName:il,backendName:"webgl",kernelFunc:GZ},jZ="return float(isinf(x));",qZ=Ze({opSnippet:jZ,dtype:"bool"}),KZ={kernelName:ol,backendName:"webgl",kernelFunc:qZ},XZ="return float(isnan(x));",YZ=Ze({opSnippet:XZ,dtype:"bool"}),ZZ={kernelName:ll,backendName:"webgl",kernelFunc:YZ},JZ="return float(a < b);",QZ=` +`,VZ=an({opSnippet:BZ,packedOpSnippet:WZ,dtype:"bool"}),UZ={kernelName:Ks,backendName:"webgl",kernelFunc:VZ};function GZ(e){let{inputs:t,backend:n}=e,{input:a}=t;return KS(a,!0,n)}var HZ={kernelName:th,backendName:"webgl",kernelFunc:GZ},jZ="return float(!isnan(x) && !isinf(x));",qZ=Ze({opSnippet:jZ,dtype:"bool"}),KZ={kernelName:il,backendName:"webgl",kernelFunc:qZ},XZ="return float(isinf(x));",YZ=Ze({opSnippet:XZ,dtype:"bool"}),ZZ={kernelName:ol,backendName:"webgl",kernelFunc:YZ},JZ="return float(isnan(x));",QZ=Ze({opSnippet:JZ,dtype:"bool"}),e9={kernelName:ll,backendName:"webgl",kernelFunc:QZ},t9="return float(a < b);",n9=` return vec4(lessThan(a, b)); -`,e9=an({opSnippet:JZ,packedOpSnippet:QZ,cpuKernelImpl:rK,dtype:"bool"}),t9={kernelName:ul,backendName:"webgl",kernelFunc:e9},n9="return float(a <= b);",a9=` +`,a9=an({opSnippet:t9,packedOpSnippet:n9,cpuKernelImpl:lK,dtype:"bool"}),r9={kernelName:ul,backendName:"webgl",kernelFunc:a9},s9="return float(a <= b);",i9=` return vec4(lessThanEqual(a, b)); -`,r9=an({opSnippet:n9,packedOpSnippet:a9,dtype:"bool"}),s9={kernelName:cl,backendName:"webgl",kernelFunc:r9};function i9(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=sK(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var o9={kernelName:eh,backendName:"webgl",kernelFunc:i9},l9=`if (x < 0.0) return NAN; - return log(x);`,u9=` +`,o9=an({opSnippet:s9,packedOpSnippet:i9,dtype:"bool"}),l9={kernelName:cl,backendName:"webgl",kernelFunc:o9};function u9(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=uK(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var c9={kernelName:ah,backendName:"webgl",kernelFunc:u9},p9=`if (x < 0.0) return NAN; + return log(x);`,d9=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -2995,16 +2995,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam result.a = isNaN.a == 1.0 ? NAN : result.a; return result; -`,c9=Ze({opSnippet:l9,packedOpSnippet:u9,cpuKernelImpl:iK}),p9={kernelName:Xs,backendName:"webgl",kernelFunc:c9},d9="return log(1.0 + x);",h9=Ze({opSnippet:d9}),m9={kernelName:pl,backendName:"webgl",kernelFunc:h9},f9="return float(a >= 1.0 && b >= 1.0);",g9=` +`,h9=Ze({opSnippet:p9,packedOpSnippet:d9,cpuKernelImpl:cK}),m9={kernelName:Zs,backendName:"webgl",kernelFunc:h9},f9="return log(1.0 + x);",g9=Ze({opSnippet:f9}),y9={kernelName:pl,backendName:"webgl",kernelFunc:g9},b9="return float(a >= 1.0 && b >= 1.0);",x9=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,y9=an({opSnippet:f9,packedOpSnippet:g9,dtype:"bool"}),b9={kernelName:dl,backendName:"webgl",kernelFunc:y9},x9="return float(!(x >= 1.0));",v9=Ze({opSnippet:x9}),w9={kernelName:kc,backendName:"webgl",kernelFunc:v9},k9="return float(a >= 1.0 || b >= 1.0);",I9=` +`,v9=an({opSnippet:b9,packedOpSnippet:x9,dtype:"bool"}),w9={kernelName:dl,backendName:"webgl",kernelFunc:v9},k9="return float(!(x >= 1.0));",I9=Ze({opSnippet:k9}),N9={kernelName:wc,backendName:"webgl",kernelFunc:I9},T9="return float(a >= 1.0 || b >= 1.0);",S9=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,N9=an({opSnippet:k9,packedOpSnippet:I9,dtype:"bool"}),T9={kernelName:Ic,backendName:"webgl",kernelFunc:N9},S9=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,C9=an({opSnippet:T9,packedOpSnippet:S9,dtype:"bool"}),_9={kernelName:kc,backendName:"webgl",kernelFunc:C9},E9=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3023,7 +3023,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam float val = x * ${o}; setOutput(val); } - `}},C9=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},A9=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3085,7 +3085,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},_9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,c=ee().getBool("WEBGL_PACK_NORMALIZATION")?new C9(r.shape,s,i,o,l):new S9(r.shape,s,i,o,l);return n.runWebGLProgram(c,[r],r.dtype)},E9={kernelName:Nc,backendName:"webgl",kernelFunc:_9},A9=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},F9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,c=ee().getBool("WEBGL_PACK_NORMALIZATION")?new A9(r.shape,s,i,o,l):new E9(r.shape,s,i,o,l);return n.runWebGLProgram(c,[r],r.dtype)},$9={kernelName:Ic,backendName:"webgl",kernelFunc:F9},D9=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3140,14 +3140,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(result); } - `}},F9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:c,beta:u}=a,p=new A9(r.shape,o,l,c,u);return n.runWebGLProgram(p,[r,s,i],r.dtype)},$9={kernelName:th,backendName:"webgl",kernelFunc:F9};function D9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Ji(i,e.dtype,"max",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function GS(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,v=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:c,beta:u}=a,p=new D9(r.shape,o,l,c,u);return n.runWebGLProgram(p,[r,s,i],r.dtype)},M9={kernelName:rh,backendName:"webgl",kernelFunc:R9};function P9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=eo(i,e.dtype,"max",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function YS(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=k.parseAxisParam(s,r.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=n.shouldExecuteOnCPU([r]),h=r;if(p){if(d){let b=n.texData.get(h.dataId).values,v=new Array(o);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Bn({inputs:{x:r},backend:n});let p=new Ep(u,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var B9={kernelName:Js,backendName:"webgl",kernelFunc:z9};function W9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,c,l),d=new nw(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var V9={kernelName:Tc,backendName:"webgl",kernelFunc:W9},U9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,B9=an({opSnippet:L9,packedOpSnippet:z9,cpuKernelImpl:dK}),W9={kernelName:Qs,backendName:"webgl",kernelFunc:B9};function V9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Cp(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,c=1;k.assert(_.eitherStridesOrDilationsAreOne(i,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let u=_.computePool2DInfo(r.shape,s,i,c,o,l);if(u.filterWidth===1&&u.filterHeight===1&&k.arraysEqual(u.inShape,u.outShape))return Wn({inputs:{x:r},backend:n});let p=new Ap(u,"max",!1);return n.runWebGLProgram(p,[r],r.dtype)}var U9={kernelName:ei,backendName:"webgl",kernelFunc:V9};function G9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:c}=a,u=[1,1,1],p=_.computePool3DInfo(r.shape,s,i,u,o,c,l),d=new lw(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var H9={kernelName:Nc,backendName:"webgl",kernelFunc:G9},j9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3193,7 +3193,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}},G9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,u=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=c-1-e.padInfo.left,h=o*l*c-1;this.userCode=` + `}},q9=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,u=o-1-e.padInfo.front,p=l-1-e.padInfo.top,d=c-1-e.padInfo.left,h=o*l*c-1;this.userCode=` const ivec3 pads = ivec3(${u}, ${p}, ${d}); void main() { @@ -3257,14 +3257,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam } setOutput(dotProd); } - `}};function H9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:c,dimRoundingMode:u}=a,p=[1,1,1],d=_.computePool3DInfo(i.shape,o,l,p,c,u),h=new nw(d,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new G9(d),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var j9={kernelName:ah,backendName:"webgl",kernelFunc:H9};function q9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;Sp([s,i],"maxPoolGrad");let{filterSize:l,strides:c,pad:u,dimRoundingMode:p}=a,d=_.computePool2DInfo(o.shape,l,c,1,u,p),h=!0,m=new Ep(d,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new U9(d),y=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),y}var K9={kernelName:nh,backendName:"webgl",kernelFunc:q9};function X9(e,t,n,a){let r=new Ep(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new Ep(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var Y9={kernelName:rh,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;k.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let c=[1,1];k.assert(_.eitherStridesOrDilationsAreOne(s,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${c}'`);let u=_.computePool2DInfo(a.shape,r,s,c,i),[p,d]=X9(a,o,u,l);return[p,d]}};function Z9(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Ji(i,"float32","mean",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var J9={kernelName:Qs,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=k.parseAxisParam(s,a.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let v=i.texData.get(m.dataId).values,x=new Array(o);for(let C=0;C{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;k.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let c=[1,1];k.assert(_.eitherStridesOrDilationsAreOne(s,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${c}'`);let u=_.computePool2DInfo(a.shape,r,s,c,i),[p,d]=J9(a,o,u,l);return[p,d]}};function eJ(e,t,n,a){let r=k.sizeFromShape(t),s=k.sizeFromShape(e.shape)/r,i=be({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=eo(i,"float32","mean",a),l=be({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var tJ={kernelName:ti,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=k.parseAxisParam(s,a.shape),c=l,u=_.getAxesPermutation(c,o),p=u!=null,d=i.shouldExecuteOnCPU([a]),h=[],m=a;if(p){if(d){let v=i.texData.get(m.dataId).values,x=new Array(o);for(let C=0;Cc[0]+e[u]+c[1]);let a=e.length,r=ft(a),s=t.map(c=>c[0]).join(","),i=t.map((c,u)=>c[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,iJ=an({opSnippet:rJ,packedOpSnippet:sJ,cpuKernelImpl:hK}),oJ={kernelName:ai,backendName:"webgl",kernelFunc:iJ},lJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((c,u)=>c[0]+e[u]+c[1]);let a=e.length,r=ft(a),s=t.map(c=>c[0]).join(","),i=t.map((c,u)=>c[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3293,7 +3293,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},iJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ft(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=fn("rc",a),l=fn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` + `}},uJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=ft(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=fn("rc",a),l=fn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=n==="reflect"?0:1,d="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${p}; @@ -3349,13 +3349,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam ${d} setOutput(result); } - `}},oJ=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new iJ(a.shape,r,s):new sJ(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},lJ={kernelName:Sc,backendName:"webgl",kernelFunc:oJ},uJ=`if (b == 0.0) return NAN; - return mod(a, b);`,cJ=` + `}},cJ=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new uJ(a.shape,r,s):new lJ(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},pJ={kernelName:Tc,backendName:"webgl",kernelFunc:cJ},dJ=`if (b == 0.0) return NAN; + return mod(a, b);`,hJ=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); - `+rf+` + `+lf+` return result; -`,pJ=an({opSnippet:uJ,packedOpSnippet:cJ}),dJ={kernelName:hl,backendName:"webgl",kernelFunc:pJ},hJ=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` +`,mJ=an({opSnippet:dJ,packedOpSnippet:hJ}),fJ={kernelName:hl,backendName:"webgl",kernelFunc:mJ},gJ=class{constructor(e,t,n){this.variableNames=["probs"],this.outputShape=[e,n],this.userCode=` uniform float seed; void main() { @@ -3377,11 +3377,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,tY=Ze({opSnippet:eY}),nY={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},mJ=` + `}getCustomSetupFunc(e){return(t,n)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(n,"seed")),t.gl.uniform1f(this.seedLoc,e)}}},yJ=` if (a == b) { return 1.0; }; -return a / b;`,fJ=` +return a / b;`,bJ=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3399,14 +3399,14 @@ return a / b;`,fJ=` } return result; -`,HS=an({opSnippet:mJ,packedOpSnippet:fJ,checkOutOfBounds:!0}),gJ={kernelName:Vs,backendName:"webgl",kernelFunc:HS},jS="return a - b;",qS=an({opSnippet:jS,packedOpSnippet:jS,supportsComplex:!0,cpuKernelImpl:yK}),yJ={kernelName:xi,backendName:"webgl",kernelFunc:qS};function KS(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=k.parseAxisParam([s],r.shape),o=GS({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=_.expandShapeToKeepDim(o.shape,i),c=be({inputs:{x:o},backend:n,attrs:{shape:l}}),u=qS({inputs:{a:r,b:c},backend:n}),p=zS({inputs:{x:u},backend:n}),d=tw({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=be({inputs:{x:d},backend:n,attrs:{shape:l}}),m=HS({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var bJ={kernelName:yi,backendName:"webgl",kernelFunc:KS};function xJ(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:KS({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),c=l.shape[0],u=l.shape[1],p=new hJ(c,u,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var vJ={kernelName:sh,backendName:"webgl",kernelFunc:xJ},XS="return -x;";function wJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=pK(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new Iu(a.shape,XS):r=new ms(a.shape,XS),n.runWebGLProgram(r,[a],a.dtype)}var kJ={kernelName:ml,backendName:"webgl",kernelFunc:wJ},IJ=Qa.nonMaxSuppressionV3Impl;function NJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,c=n.readSync(r.dataId),u=n.readSync(s.dataId),{selectedIndices:p}=IJ(c,u,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var TJ={kernelName:gl,backendName:"webgl",kernelFunc:NJ},SJ=Qa.nonMaxSuppressionV4Impl;function CJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=SJ(u,p,i,o,l,c);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var _J={kernelName:yl,backendName:"webgl",kernelFunc:CJ},EJ=Qa.nonMaxSuppressionV5Impl;function AJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=c,{selectedIndices:g,selectedScores:y}=EJ(u,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var FJ={kernelName:bl,backendName:"webgl",kernelFunc:AJ},$J=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`,ZS=an({opSnippet:yJ,packedOpSnippet:bJ,checkOutOfBounds:!0}),xJ={kernelName:Us,backendName:"webgl",kernelFunc:ZS},JS="return a - b;",QS=an({opSnippet:JS,packedOpSnippet:JS,supportsComplex:!0,cpuKernelImpl:wK}),vJ={kernelName:wi,backendName:"webgl",kernelFunc:QS};function e2(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=k.parseAxisParam([s],r.shape),o=YS({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=_.expandShapeToKeepDim(o.shape,i),c=be({inputs:{x:o},backend:n,attrs:{shape:l}}),u=QS({inputs:{a:r,b:c},backend:n}),p=HS({inputs:{x:u},backend:n}),d=ow({inputs:{x:p},backend:n,attrs:{axis:i,keepDims:!1}}),h=be({inputs:{x:d},backend:n,attrs:{shape:l}}),m=ZS({inputs:{a:p,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(h),m}var wJ={kernelName:xi,backendName:"webgl",kernelFunc:e2};function kJ(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:e2({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),c=l.shape[0],u=l.shape[1],p=new gJ(c,u,s),d=p.getCustomSetupFunc(i),h=n.runWebGLProgram(p,[l],"int32",d);return o||n.disposeIntermediateTensorInfo(l),h}var IJ={kernelName:lh,backendName:"webgl",kernelFunc:kJ},t2="return -x;";function NJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=fK(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return ee().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new Iu(a.shape,t2):r=new ms(a.shape,t2),n.runWebGLProgram(r,[a],a.dtype)}var TJ={kernelName:ml,backendName:"webgl",kernelFunc:NJ},SJ=er.nonMaxSuppressionV3Impl;function CJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,c=n.readSync(r.dataId),u=n.readSync(s.dataId),{selectedIndices:p}=SJ(c,u,i,o,l);return n.makeTensorInfo([p.length],"int32",new Int32Array(p))}var _J={kernelName:gl,backendName:"webgl",kernelFunc:CJ},EJ=er.nonMaxSuppressionV4Impl;function AJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d,validOutputs:h}=EJ(u,p,i,o,l,c);return[n.makeTensorInfo([d.length],"int32",new Int32Array(d)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var FJ={kernelName:yl,backendName:"webgl",kernelFunc:AJ},$J=er.nonMaxSuppressionV5Impl;function DJ(e){_.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:c}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=i,h=o,m=l,f=c,{selectedIndices:g,selectedScores:y}=$J(u,p,d,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var RJ={kernelName:bl,backendName:"webgl",kernelFunc:DJ},MJ=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},DJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=k.sizeFromShape(r.shape),c=new $J(l,s,i,o),u=be({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(c,[u],r.dtype);n.disposeIntermediateTensorInfo(u);let d=[...r.shape,s],h=be({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},RJ={kernelName:ai,backendName:"webgl",kernelFunc:DJ};function df(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=Fp({inputs:{input:a},backend:n}),s=df({inputs:{x:r},backend:n}),i=pf({inputs:{input:a},backend:n}),o=df({inputs:{x:i},backend:n}),l=fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return iw({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var MJ={kernelName:Pl,backendName:"webgl",kernelFunc:df};function YS(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=Fp({inputs:{input:a},backend:n}),s=YS({inputs:{x:r},backend:n}),i=pf({inputs:{input:a},backend:n}),o=df({inputs:{x:i},backend:n}),l=fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return iw({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var PJ={kernelName:xl,backendName:"webgl",kernelFunc:YS};function OJ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return sw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=sw({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=ES({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var LJ={kernelName:vl,backendName:"webgl",kernelFunc:OJ},zJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);let a=e.length,r=ft(a),s=t.map(l=>l[0]).join(","),i=t.map((l,c)=>l[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},PJ=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=k.sizeFromShape(r.shape),c=new MJ(l,s,i,o),u=be({inputs:{x:r},backend:n,attrs:{shape:[l]}}),p=n.runWebGLProgram(c,[u],r.dtype);n.disposeIntermediateTensorInfo(u);let d=[...r.shape,s],h=be({inputs:{x:p},backend:n,attrs:{shape:d}});return n.disposeIntermediateTensorInfo(p),h},OJ={kernelName:si,backendName:"webgl",kernelFunc:PJ};function ff(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=$p({inputs:{input:a},backend:n}),s=ff({inputs:{x:r},backend:n}),i=mf({inputs:{input:a},backend:n}),o=ff({inputs:{x:i},backend:n}),l=fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return dw({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var LJ={kernelName:Pl,backendName:"webgl",kernelFunc:ff};function n2(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=$p({inputs:{input:a},backend:n}),s=n2({inputs:{x:r},backend:n}),i=mf({inputs:{input:a},backend:n}),o=ff({inputs:{x:i},backend:n}),l=fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return dw({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var zJ={kernelName:xl,backendName:"webgl",kernelFunc:n2};function BJ(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return pw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(u=>{k.assertShapesMatch(s,u.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===u.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(u=>{let p=pw({inputs:{input:u},backend:n,attrs:{dim:r}});return o.push(p),p}),c=MS({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(u=>n.disposeIntermediateTensorInfo(u)),c}var WJ={kernelName:vl,backendName:"webgl",kernelFunc:BJ},VJ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);let a=e.length,r=ft(a),s=t.map(l=>l[0]).join(","),i=t.map((l,c)=>l[0]+e[c]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3431,7 +3431,7 @@ return a / b;`,fJ=` setOutput(getX(${o})); } } - `}},BJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ft(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=fn("rc",a),l=fn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},UJ=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=ft(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=fn("rc",a),l=fn("source",a),c=`${o[a-1]} < ${this.outputShape[a-1]}`,u=a===1?"source":`vec2(${l.slice(-2).join()})`,p=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${c}) { `,a===1?"":`} rc = outputLoc; @@ -3455,7 +3455,7 @@ return a / b;`,fJ=` ${h} setOutput(result); } - `}},ZS=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new BJ(r.shape,s,i):new zJ(r.shape,s,i);return n.runWebGLProgram(o,[r],r.dtype)},WJ={kernelName:ri,backendName:"webgl",kernelFunc:ZS},VJ=` + `}},a2=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a,o=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new UJ(r.shape,s,i):new VJ(r.shape,s,i);return n.runWebGLProgram(o,[r],r.dtype)},GJ={kernelName:ii,backendName:"webgl",kernelFunc:a2},HJ=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -3464,7 +3464,7 @@ return a / b;`,fJ=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,UJ=` +`,jJ=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -3478,11 +3478,11 @@ return a / b;`,fJ=` result.a = isExpZero.a ? 1.0 : result.a; vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); - `+rf+` + `+lf+` return result; -`,GJ=an({opSnippet:VJ,packedOpSnippet:UJ}),HJ={kernelName:si,backendName:"webgl",kernelFunc:GJ};function jJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],c=k.parseAxisParam(s,r.shape),u=c,p=_.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=_.getInnerMostAxes(u.length,o),l.push(d)),_.assertAxesAreInnerMostDims("prod",u,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=dK(d.shape,d.dtype,m,u);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=_.computeOutAndReduceShapes(d.shape,u),g=k.sizeFromShape(f),y=be({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=yh(r.dtype),v=Ji(y,b,"prod",n);h=be({inputs:{x:v},backend:n,attrs:{shape:m}}),l.push(y),l.push(v)}if(i){l.push(h);let m=_.expandShapeToKeepDim(h.shape,c);h=be({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var qJ={kernelName:wl,backendName:"webgl",kernelFunc:jJ},JS=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=hK(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},KJ={kernelName:Cc,backendName:"webgl",kernelFunc:JS},XJ="return 1.0 / x;",YJ=Ze({opSnippet:XJ}),ZJ={kernelName:kl,backendName:"webgl",kernelFunc:YJ},JJ=Ma+` +`,qJ=an({opSnippet:HJ,packedOpSnippet:jJ}),KJ={kernelName:oi,backendName:"webgl",kernelFunc:qJ};function XJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],c=k.parseAxisParam(s,r.shape),u=c,p=_.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=_.getInnerMostAxes(u.length,o),l.push(d)),_.assertAxesAreInnerMostDims("prod",u,o);let h;if(n.shouldExecuteOnCPU([d])){let m=n.texData.get(d.dataId).values,{outVals:f,outShape:g,outDtype:y}=gK(d.shape,d.dtype,m,u);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=_.computeOutAndReduceShapes(d.shape,u),g=k.sizeFromShape(f),y=be({inputs:{x:d},backend:n,attrs:{shape:[-1,g]}}),b=vh(r.dtype),v=eo(y,b,"prod",n);h=be({inputs:{x:v},backend:n,attrs:{shape:m}}),l.push(y),l.push(v)}if(i){l.push(h);let m=_.expandShapeToKeepDim(h.shape,c);h=be({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var YJ={kernelName:wl,backendName:"webgl",kernelFunc:XJ},r2=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=yK(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},ZJ={kernelName:Sc,backendName:"webgl",kernelFunc:r2},JJ="return 1.0 / x;",QJ=Ze({opSnippet:JJ}),eQ={kernelName:kl,backendName:"webgl",kernelFunc:QJ},tQ=Pa+` return (x < 0.0) ? 0.0 : x; -`,QJ=` +`,nQ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3492,9 +3492,9 @@ return a / b;`,fJ=` result.a = isNaN.a ? x.a : result.a; return result; -`,eQ=Ze({opSnippet:JJ,packedOpSnippet:QJ}),tQ={kernelName:oi,backendName:"webgl",kernelFunc:eQ},nQ=Ma+` +`,aQ=Ze({opSnippet:tQ,packedOpSnippet:nQ}),rQ={kernelName:ui,backendName:"webgl",kernelFunc:aQ},sQ=Pa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,aQ=` +`,iQ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3504,7 +3504,7 @@ return a / b;`,fJ=` result.a = isNaN.a ? x.a : result.a; return result; -`,rQ=Ze({opSnippet:nQ,packedOpSnippet:aQ}),sQ={kernelName:ui,backendName:"webgl",kernelFunc:rQ},iQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,oQ=Ze({opSnippet:sQ,packedOpSnippet:iQ}),lQ={kernelName:pi,backendName:"webgl",kernelFunc:oQ},uQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":p="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/u[0]}, ${c[1]/u[1]}); @@ -3537,7 +3537,7 @@ return a / b;`,fJ=` setOutput(newValue); } - `}},oQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},cQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p;r?p="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":p="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/u[0]}, ${c[1]/u[1]}, @@ -3614,7 +3614,7 @@ return a / b;`,fJ=` setOutput(newValue); } - `}};function lQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=ee().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new oQ(r.shape,l,c,s,i):new iQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],"float32")}var uQ={kernelName:li,backendName:"webgl",kernelFunc:lQ},cQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function pQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=ee().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new cQ(r.shape,l,c,s,i):new uQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],"float32")}var dQ={kernelName:ci,backendName:"webgl",kernelFunc:pQ},hQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3695,7 +3695,7 @@ return a / b;`,fJ=` setOutput(accumulator); } - `}};function pQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new cQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var dQ={kernelName:lh,backendName:"webgl",kernelFunc:pQ},hQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function mQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new hQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var fQ={kernelName:ph,backendName:"webgl",kernelFunc:mQ},gQ=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let c=[a&&t>1?i-1:i,a&&n>1?o-1:o],u=[a&&t>1?t-1:t,a&&n>1?n-1:n],p=a?"0.5":"0.0",d;r?d="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/u[0]}, ${c[1]/u[1]}); @@ -3717,7 +3717,7 @@ return a / b;`,fJ=` setOutput(newValue); } - `}};function mQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=new hQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],r.dtype)}var fQ={kernelName:_c,backendName:"webgl",kernelFunc:mQ},gQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` + `}};function yQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,u=new gQ(r.shape,l,c,s,i);return n.runWebGLProgram(u,[r],r.dtype)}var bQ={kernelName:Cc,backendName:"webgl",kernelFunc:yQ},xQ=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],c=o[0]/l[0],u=o[1]/l[1],p=1/c,d=1/u,h=Math.ceil(p)*2+2,m=Math.ceil(d)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3787,7 +3787,7 @@ return a / b;`,fJ=` setOutput(accumulator); } - `}};function yQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new gQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var bQ={kernelName:oh,backendName:"webgl",kernelFunc:yQ},xQ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function vQ(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new xQ(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var wQ={kernelName:ch,backendName:"webgl",kernelFunc:vQ},kQ=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -3797,7 +3797,7 @@ return a / b;`,fJ=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},vQ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=fn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ft(n);n===1?this.userCode=` + `}},IQ=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=fn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=ft(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3825,7 +3825,7 @@ return a / b;`,fJ=` } setOutput(result); } - `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function c(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function u(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function wQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return Bn({inputs:{x:r},backend:n});let l=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new vQ(r.shape,o):new xQ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var kQ={kernelName:ci,backendName:"webgl",kernelFunc:wQ},IQ=class{constructor(e,t,n,a){this.variableNames=["Image"],this.outputShape=[];let r=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;let[l,c]=_.getImageCenter(a,r,s),u=l.toFixed(3),p=c.toFixed(3),d="";typeof n=="number"?d=`float outputValue = ${n.toFixed(2)};`:d=` + `;function o(h){return p(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",p(h)}function c(h){return h[n-2]="("+h[n-2]+" + 1)",p(h)}function u(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",p(h)}function p(h){let m=e.map((y,b)=>d(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function d(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function NQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=k.parseAxisParam(s,r.shape);if(i===0)return Wn({inputs:{x:r},backend:n});let l=ee().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new IQ(r.shape,o):new kQ(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var TQ={kernelName:di,backendName:"webgl",kernelFunc:NQ},SQ=class{constructor(e,t,n,a){this.variableNames=["Image"],this.outputShape=[];let r=e[1],s=e[2],i=Math.sin(t).toFixed(3),o=Math.cos(t).toFixed(3);this.outputShape=e;let[l,c]=_.getImageCenter(a,r,s),u=l.toFixed(3),p=c.toFixed(3),d="";typeof n=="number"?d=`float outputValue = ${n.toFixed(2)};`:d=` vec3 fill = vec3(${n.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -3842,7 +3842,7 @@ return a / b;`,fJ=` } setOutput(outputValue); } - `}},NQ={kernelName:Ol,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new IQ(a.shape,r,s,i);return o.runWebGLProgram(l,[a],a.dtype)}},TQ=` + `}},CQ={kernelName:Ol,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new SQ(a.shape,r,s,i);return o.runWebGLProgram(l,[a],a.dtype)}},_Q=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3857,7 +3857,7 @@ return a / b;`,fJ=` return base + 1.0; } } -`,SQ=Ze({opSnippet:TQ}),CQ={kernelName:pi,backendName:"webgl",kernelFunc:SQ},_Q="return inversesqrt(x);",EQ=Ze({opSnippet:_Q,cpuKernelImpl:mK}),AQ={kernelName:di,backendName:"webgl",kernelFunc:EQ},QS=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ft(r.length),l=ft(s.length),c="";n===1?c="i":n===2&&(c="i, j");let u=`getIndices(${c})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,EQ=Ze({opSnippet:_Q}),AQ={kernelName:hi,backendName:"webgl",kernelFunc:EQ},FQ="return inversesqrt(x);",$Q=Ze({opSnippet:FQ,cpuKernelImpl:bK}),DQ={kernelName:mi,backendName:"webgl",kernelFunc:$Q},s2=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=ft(r.length),l=ft(s.length),c="";n===1?c="i":n===2&&(c="i, j");let u=`getIndices(${c})`,p="";a===1?p="i":a===2&&(p="i, coords[1]");let d=`getUpdates(${p})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -3877,7 +3877,7 @@ return a / b;`,fJ=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function FQ(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:c,strides:u,outputSize:p}=_.calculateShapes(s,r,i),d=[p/c,c];if(p===0)return n.makeTensorInfo(i,r.dtype);let h=be({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=be({inputs:{x:s},backend:n,attrs:{shape:[l,c]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new QS(l,o,h.shape.length,m.shape.length,u,d),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=be({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var $Q={kernelName:Nl,backendName:"webgl",kernelFunc:FQ},DQ=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let c=0;c= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,OQ=Ze({opSnippet:PQ}),LQ={kernelName:Sl,backendName:"webgl",kernelFunc:OQ},zQ="return 1.0 / (1.0 + exp(-1.0 * x));",BQ=Ze({opSnippet:zQ}),WQ={kernelName:mi,backendName:"webgl",kernelFunc:BQ},VQ=` +`,BQ=Ze({opSnippet:zQ}),WQ={kernelName:Sl,backendName:"webgl",kernelFunc:BQ},VQ="return 1.0 / (1.0 + exp(-1.0 * x));",UQ=Ze({opSnippet:VQ}),GQ={kernelName:gi,backendName:"webgl",kernelFunc:UQ},HQ=` if (isnan(x)) { return 0.0; } return sign(x); -`,UQ=Ze({opSnippet:VQ}),GQ={kernelName:El,backendName:"webgl",kernelFunc:UQ},HQ=dS+` +`,jQ=Ze({opSnippet:HQ}),qQ={kernelName:El,backendName:"webgl",kernelFunc:jQ},KQ=bS+` return sin(x); -`,jQ=Ze({opSnippet:HQ}),qQ={kernelName:hi,backendName:"webgl",kernelFunc:jQ},KQ=` +`,XQ=Ze({opSnippet:KQ}),YQ={kernelName:fi,backendName:"webgl",kernelFunc:XQ},ZQ=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,XQ=Ze({opSnippet:KQ}),YQ={kernelName:_l,backendName:"webgl",kernelFunc:XQ},ZQ=` +`,JQ=Ze({opSnippet:ZQ}),QQ={kernelName:_l,backendName:"webgl",kernelFunc:JQ},eee=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3921,9 +3921,9 @@ return a / b;`,fJ=` result = log(exp_x + 1.0); } return result; -`,JQ=Ze({opSnippet:ZQ}),QQ={kernelName:Al,backendName:"webgl",kernelFunc:JQ},eee=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;k.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},tee={kernelName:Ec,backendName:"webgl",kernelFunc:eee};function nee(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:c,strides:u,outputSize:p}=_.calculateShapes(s,r,o),d=!1,h=new QS(c,l,r.shape.length,s.shape.length,u,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var aee={kernelName:uh,backendName:"webgl",kernelFunc:nee};function ree(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=k.parseAxisParam(i,r.shape)[0],l=_.prepareSplitSize(r,s,o),c=r.shape.length,u=new Array(c).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=Ap({inputs:{x:r},backend:n,attrs:{begin:u,size:h}});return u[o]+=d,m})}var see={kernelName:Fl,backendName:"webgl",kernelFunc:ree},iee="return sqrt(x);",oee=Ze({opSnippet:iee}),lee={kernelName:fi,backendName:"webgl",kernelFunc:oee},uee="return x * x;",cee=Ze({opSnippet:uee}),pee={kernelName:Ac,backendName:"webgl",kernelFunc:cee},e2="return (a - b) * (a - b);",dee=an({opSnippet:e2,packedOpSnippet:e2}),hee={kernelName:bi,backendName:"webgl",kernelFunc:dee};function mee({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` +`,tee=Ze({opSnippet:eee}),nee={kernelName:Al,backendName:"webgl",kernelFunc:tee},aee=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;k.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},ree={kernelName:_c,backendName:"webgl",kernelFunc:aee};function see(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:c,strides:u,outputSize:p}=_.calculateShapes(s,r,o),d=!1,h=new s2(c,l,r.shape.length,s.shape.length,u,[p,1],d),m=n.runWebGLProgram(h,[s,r,i],s.dtype),f=be({inputs:{x:m},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(m),f}var iee={kernelName:dh,backendName:"webgl",kernelFunc:see};function oee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=k.parseAxisParam(i,r.shape)[0],l=_.prepareSplitSize(r,s,o),c=r.shape.length,u=new Array(c).fill(0),p=r.shape.slice();return l.map(d=>{let h=[...p];h[o]=d;let m=Fp({inputs:{x:r},backend:n,attrs:{begin:u,size:h}});return u[o]+=d,m})}var lee={kernelName:Fl,backendName:"webgl",kernelFunc:oee},uee="return sqrt(x);",cee=Ze({opSnippet:uee}),pee={kernelName:yi,backendName:"webgl",kernelFunc:cee},dee="return x * x;",hee=Ze({opSnippet:dee}),mee={kernelName:Ec,backendName:"webgl",kernelFunc:hee},i2="return (a - b) * (a - b);",fee=an({opSnippet:i2,packedOpSnippet:i2}),gee={kernelName:vi,backendName:"webgl",kernelFunc:fee};function yee({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Pa+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new ms(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var fee={kernelName:Hr,backendName:"webgl",kernelFunc:mee},gee=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ft(n.length),s=ft(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,c)=>(o++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${o-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new ms(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var bee={kernelName:jr,backendName:"webgl",kernelFunc:yee},xee=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=ft(n.length),s=ft(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,c)=>(o++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${o-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -3931,15 +3931,15 @@ return a / b;`,fJ=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function yee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=be({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Ap({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=be({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([v])){let T=n.texData.get(v.dataId).values,C=Le(v.shape,v.dtype,T),$=gK(b,C,f,m);x=n.makeTensorInfo(b,v.dtype,$.values)}else{let T=new gee(m,f,b);x=n.runWebGLProgram(T,[v],v.dtype)}let N=be({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var bee={kernelName:$l,backendName:"webgl",kernelFunc:yee},xee="return tan(x);",vee=Ze({opSnippet:xee}),wee={kernelName:Dl,backendName:"webgl",kernelFunc:vee},kee=` + `}};function vee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,{nonStrided:h,$begin:m,$strides:f,size:g,newShape:y,outShape:b}=pn.sliceInfo(r.shape,s,i,o,l,c,u,p,d),v=be({inputs:{x:r},backend:n,attrs:{shape:y}}),x;if(h){let T=Fp({inputs:{x:v},backend:n,attrs:{begin:m,size:g}});x=be({inputs:{x:T},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(T)}else if(b.some(T=>T===0))x=n.makeTensorInfo(b,r.dtype,[]);else if(n.shouldExecuteOnCPU([v])){let T=n.texData.get(v.dataId).values,C=Le(v.shape,v.dtype,T),F=vK(b,C,f,m);x=n.makeTensorInfo(b,v.dtype,F.values)}else{let T=new xee(m,f,b);x=n.runWebGLProgram(T,[v],v.dtype)}let N=be({inputs:{x},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(x),N}var wee={kernelName:$l,backendName:"webgl",kernelFunc:vee},kee="return tan(x);",Iee=Ze({opSnippet:kee}),Nee={kernelName:Dl,backendName:"webgl",kernelFunc:Iee},Tee=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,Iee=Ze({opSnippet:kee}),Nee={kernelName:vi,backendName:"webgl",kernelFunc:Iee},See=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rk.decodeString(u)),l=Le(r.shape,r.dtype,o),c=bK(l,s);return n.makeTensorInfo(c.shape,c.dtype,c.values)}let i=new See(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Cee={kernelName:Gr,backendName:"webgl",kernelFunc:t2};function _ee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,c]=xK(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var Eee={kernelName:Rl,backendName:"webgl",kernelFunc:_ee};function Aee(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Sp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:c}=vK(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var Fee={kernelName:ch,backendName:"webgl",kernelFunc:Aee};function $ee(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],c=new Array(o-1),u=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Dee={kernelName:Ml,backendName:"webgl",kernelFunc:$ee},Ree=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",c=Math.floor(n/4)*4,u=n%4,p=` + `}};function _ee(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;rk.decodeString(u)),l=Le(r.shape,r.dtype,o),c=kK(l,s);return n.makeTensorInfo(c.shape,c.dtype,c.values)}let i=new Eee(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Aee={kernelName:Hr,backendName:"webgl",kernelFunc:o2};function Fee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a,o=n.readSync(r.dataId),[l,c]=IK(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(c.shape,c.dtype,c.values)]}var $ee={kernelName:Rl,backendName:"webgl",kernelFunc:Fee};function Dee(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Cp(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:c}=NK(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([c.length],"int32",c)]}var Ree={kernelName:hh,backendName:"webgl",kernelFunc:Dee};function Mee(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],c=new Array(o-1),u=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Pee={kernelName:Ml,backendName:"webgl",kernelFunc:Mee},Oee=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",c=Math.floor(n/4)*4,u=n%4,p=` sumValue += dot(values, segFilter); `,d="";r%n>0&&(d=` if (inIdx < 0 || inIdx >= ${r}) { @@ -4045,7 +4045,7 @@ return a / b;`,fJ=` } setOutput(${l}); } - `}};function Mee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],c=0,u=_.getAxesPermutation([c],o),p=r;u!=null&&(p=Sn({inputs:{x:r},backend:n,attrs:{perm:u}}),l.push(p),c=_.getInnerMostAxes(1,o)[0]);let d=_.segment_util.computeOutShape(p.shape,c,i),h=k.sizeFromShape([p.shape[c]]),m=be({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=yh(r.dtype),g=(x,N,T,C,$)=>{let F=x.shape[0],O=x.shape[1],B=_.segment_util.segOpComputeOptimalWindowSize(O,$),W={windowSize:B,inSize:O,batchSize:F,numSegments:$},G=new Ree(W,N),q=n.compileAndRun(G,[x,T],C);if(l.push(q),q.shape[1]===$)return q;let H=JS({backend:n,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),K=t2({inputs:{x:H},backend:n,attrs:{reps:[O/B]}});return l.push(H),l.push(K),g(q,N,K,C,$)},y=g(m,"unsortedSegmentSum",s,f,i),b=be({inputs:{x:y},backend:n,attrs:{shape:d}}),v=b;if(u!=null){l.push(b);let x=_.getUndoAxesPermutation(u);v=Sn({inputs:{x:v},backend:n,attrs:{perm:x}})}return l.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var Pee={kernelName:Fc,backendName:"webgl",kernelFunc:Mee},Oee=[E9,$9,yX,xX,kX,TX,CX,AX,$X,RX,LX,BX,UX,jX,QX,XX,nY,iY,rY,cY,dY,mY,bY,TY,CY,DY,MY,zY,VY,JK,jY,n7,r7,YY,l7,c7,i7,h7,g7,x7,w7,I7,S7,$7,R7,_7,O7,B7,G7,K7,J7,tZ,nZ,aZ,sZ,oZ,uZ,pZ,hZ,yZ,wZ,IZ,TZ,_Z,$Z,PZ,BZ,ZK,VZ,HY,HZ,KZ,ZZ,eX,t9,s9,o9,m9,p9,b9,w9,T9,R9,V9,B9,j9,K9,Y9,L9,J9,eJ,rJ,lJ,dJ,vJ,sX,kJ,TJ,_J,FJ,EY,RJ,PJ,LJ,WJ,HJ,nX,qJ,KJ,AY,gJ,ZJ,sQ,tQ,oX,uQ,dQ,fQ,bQ,kQ,NQ,CQ,AQ,$Q,MQ,LQ,WQ,GQ,qQ,YQ,IY,bJ,QQ,tee,aee,see,lee,pee,hee,fee,bee,yJ,mX,wee,Nee,Cee,Eee,fX,Fee,Dee,Pee,MJ];for(let e of Oee)Dc(e);var Lee="3.0.0",zee={"tfjs-core":s1,"tfjs-backend-cpu":fG,"tfjs-backend-webgl":YK,"tfjs-data":FN,"tfjs-layers":$m,"tfjs-converter":TN,tfjs:Lee},Wn;(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"})(Wn||(Wn={}));var $p;(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"})($p||($p={}));var n2;function Bee(e){n2=e.wasm.cwrap(ki,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Wee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let $=n.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);m=$.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=$p[u];if(g==null)throw new Error(`${u} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=c?s.shape[1]:s.shape[2],v=r.shape[0],x=n.makeOutput([v,y,b],r.dtype),N=n.dataIdMap.get(x.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return n2(d,T,r.shape.length,h,C,s.shape.length,l,c,g,m,f,p||0,N),x}var Vee={kernelName:ki,backendName:"wasm",setupFunc:Bee,kernelFunc:Wee};function Vn(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),c=s.dataIdMap.get(l.dataId).id;return k.sizeFromShape(l.shape)===0||t(o,c),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var Uee=Vn(Oo);function gn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:c,b:u}=l,p=o.dataIdMap.get(c.dataId).id,d=o.dataIdMap.get(u.dataId).id,h=n!=null?n:c.dtype,m=_.assertAndGetBroadcastShape(c.shape,u.shape),f=o.makeOutput(m,h);if(k.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(c.shape).buffer),y=new Uint8Array(new Int32Array(u.shape).buffer),b=o.dataIdMap.get(f.dataId).id,v=()=>a(p,g,c.shape.length,d,y,u.shape.length,Wn[c.dtype],b);if(t&&c.dtype==="float32")return v(),f;let x=_.getBroadcastDims(c.shape,m),N=_.getBroadcastDims(u.shape,m),T=x.every(($,F)=>$===F),C=N.every(($,F)=>$===F);if(T&&C)return v(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${c.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Gee=!0,Hee=gn(Vr,Gee),a2;function jee(e){a2=e.wasm.cwrap($s,null,["array","number","number","number"])}function qee(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(k.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return a2(s,r.length,Wn[a.dtype],i),a}var Kee={kernelName:$s,backendName:"wasm",setupFunc:jee,kernelFunc:qee};function hf(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Xee={kernelName:sl,backendName:"wasm",kernelFunc:hf},r2;function Yee(e){r2=e.wasm.cwrap(wi,null,["number","array","number","number","number","array","number"])}function mf(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Jee(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Qee={kernelName:wi,backendName:"wasm",kernelFunc:mf,setupFunc:Yee};function Cu(e,t,n){let a=e.shape,r=e.shape.length,s=k.parseAxisParam(t,a),i=s,o=_.getAxesPermutation(i,r),l=null,c=!1;if(o!=null){let u=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),{dataId:a.dataId,shape:i,dtype:a.dtype}}var ite={kernelName:Il,backendName:"wasm",kernelFunc:Pa},o2;function ote(e){o2=e.wasm.cwrap(Ms,null,["number","array","number","number","array","number","number","number","number"])}function lte(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=Pa({inputs:{x:r},backend:n,attrs:{shape:x}}),C=Pa({inputs:{x:s},backend:n,attrs:{shape:N}}),$=n.dataIdMap.get(T.dataId).id,F=n.dataIdMap.get(C.dataId).id,O=i?T.shape[2]:T.shape[1],B=o?C.shape[1]:C.shape[2],W=Math.max(g,y),G=n.makeOutput([W,O,B],T.dtype),q=n.dataIdMap.get(G.dataId).id,H=new Uint8Array(new Int32Array(T.shape).buffer),K=new Uint8Array(new Int32Array(C.shape).buffer);return o2($,H,T.shape.length,F,K,C.shape.length,i,o,q),G.shape=v,G}var ute={kernelName:Ms,backendName:"wasm",setupFunc:ote,kernelFunc:lte};function ff(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var cte={kernelName:Ps,backendName:"wasm",kernelFunc:ff},l2;function pte(e){l2=e.wasm.cwrap(Ur,null,["number","number","number","number"])}function dte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(l.dataId).id;return l2(o,s,i,c),l}var hte={kernelName:Ur,backendName:"wasm",setupFunc:pte,kernelFunc:dte};function u2(e){let{inputs:t,backend:n}=e,a=k.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>k.sizeFromShape(h.shape)>0);if(s.length===1)return hf({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(k.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(_.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(v=>{let x=k.sizeFromShape(v.shape.slice(a));return Pa({inputs:{x:v},backend:n,attrs:{shape:[-1,x]}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape}));r=_.computeOutShape(h.map(v=>v.shape),1);let f=h[0].shape[0]===1,g=Fv(m,r,t[0].dtype,f),y=_.computeOutShape(s.map(v=>v.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=_.fromStringArrayToUint8(g),i}let l=k.sizeFromShape(s[0].shape.slice(0,a)),c=0,u=s.map(h=>{let m=k.sizeFromShape(h.shape.slice(a));return c+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let c=_.getAxesPermutation([s],l),u=r;c!==null&&(u=mf({inputs:{x:r},attrs:{perm:c},backend:n}));let p=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(u.shape,u.dtype),h=u.shape[p],m=n.dataIdMap.get(u.dataId).id,f=n.dataIdMap.get(d.dataId).id;h2(m,i?1:0,o?1:0,h,f,Wn[r.dtype]);let g=d;if(c!==null){let y=_.getUndoAxesPermutation(c);g=mf({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(u.dataId),n.disposeData(d.dataId)}return g}var Cte={kernelName:Bs,backendName:"wasm",setupFunc:Tte,kernelFunc:Ste},m2;function _te(e){m2=e.wasm.cwrap(Xo,null,["number","number","number","array","number","array","array","number","number"])}function Ete(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(k.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),v=new Uint8Array(new Int32Array(k.computeStrides(m)).buffer),x=t.dataIdMap.get(f.dataId).id;return m2(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,v,m.length,x),f}var Ate={kernelName:Xo,backendName:"wasm",setupFunc:_te,kernelFunc:Ete},f2;function Fte(e){f2=e.wasm.cwrap(Ws,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function $te(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:c,pad:u,dimRoundingMode:p}=n,d=c==null?[1,1]:c,h=_.computeConv2DInfo(r.shape,s.shape,l,d,u,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,v=h.padInfo.left,x=h.dilationHeight,N=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,$=h.inChannels,F=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 B=a.makeOutput(h.outShape,"float32"),W=a.dataIdMap.get(B.dataId).id;return f2(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,v,O,x,N,T,C,$,F,W),B}var Dte={kernelName:Ws,backendName:"wasm",setupFunc:Fte,kernelFunc:$te},Rte=!1,Mte=gn(Jo,Rte,"bool"),Pte=Vn(Us);function lw(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Pa({inputs:{x:r},backend:a,attrs:{shape:o}})}var Ote={kernelName:Qo,backendName:"wasm",kernelFunc:lw};function Lte(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var zte={kernelName:wc,backendName:"wasm",kernelFunc:Lte},g2;function Bte(e){g2=e.wasm.cwrap(tl,null,["number","number","number","number","number","number"])}function Wte(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,c,u]=a.shape;return g2(s,o,l,c,u,i),r}var Vte={kernelName:tl,backendName:"wasm",kernelFunc:Wte,setupFunc:Bte},Ute=Vn(Gs),Gte=!1,Hte=gn(Hs,Gte),y2;function jte(e){y2=e.wasm.cwrap(js,null,["number","number","number","number","number","number","number"])}function qte(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:c}=n,u=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=c!=null?t.dataIdMap.get(c.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(k.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return y2(u,p,d,h,m,r,g),f}var Kte={kernelName:js,backendName:"wasm",setupFunc:jte,kernelFunc:qte},b2;function Xte(e){b2=e.wasm.cwrap(Ii,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 Yte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d),g=$p[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,$=f.padInfo.right,F=f.padInfo.bottom,O=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,H=f.inChannels,K=f.padInfo.type==="SAME"?1:0,X=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return b2(y,X,ne,J,b,N,T,x,C,$,F,O,K,B,W,G,q,H,v,g,oe,m||0,Q),se}var Zte={kernelName:Ii,backendName:"wasm",setupFunc:Xte,kernelFunc:Yte},x2;function Jte(e){x2=e.wasm.cwrap(Ni,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 Qte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d,!0),g=$p[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,$=f.padInfo.right,F=f.padInfo.bottom,O=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,H=f.inChannels,K=f.padInfo.type==="SAME"?1:0,X=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return x2(y,X,ne,J,b,N,T,x,C,$,F,O,K,B,W,G,q,H,v,g,oe,m||0,Q),se}var ene={kernelName:Ni,backendName:"wasm",setupFunc:Jte,kernelFunc:Qte},v2;function tne(e){v2=e.wasm.cwrap(al,null,["number","number","number","number","number","number","array","number"])}function nne(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Fy.prepareAndValidate(a,r),c=t.makeOutput(s,a.dtype);if(i===0)return c;let u=r.shape,p=u[u.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(c.dataId).id;return v2(d,Wn[a.dtype],h,i,p,o,m,f),c}var ane={kernelName:al,backendName:"wasm",setupFunc:tne,kernelFunc:nne},w2;function rne(e){w2=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function sne(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=k.parseAxisParam(i,r.shape)[0],c=_.segment_util.collectGatherOpShapeInfo(r,s,l,o),u=Pa({inputs:{x:r},attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]},backend:t}),p=k.sizeFromShape(s.shape),d=Pa({inputs:{x:s},attrs:{shape:[c.batchSize,p/c.batchSize]},backend:t}),h=[c.batchSize,c.outerSize,p/c.batchSize,c.sliceSize],m=t.makeOutput(h,r.dtype);if(k.sizeFromShape(r.shape)===0)return m;let f=u.shape.length-1,g=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,v=new Uint8Array(new Int32Array(k.computeStrides(u.shape)).buffer),x=new Uint8Array(new Int32Array(k.computeStrides(h)).buffer);return w2(g,Wn[r.dtype],v,f,y,c.batchSize,x,b),m.shape=c.outputShape,m}var ine={kernelName:nl,backendName:"wasm",setupFunc:rne,kernelFunc:sne},one=!1,lne=gn(rl,one,"bool"),une=!1,cne=gn(qs,une,"bool"),k2;function pne(e){k2=e.wasm.cwrap(Ks,null,["number","number","number"])}function dne(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(k.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;k2(r,n,i)}return s}var hne={kernelName:Ks,backendName:"wasm",setupFunc:pne,kernelFunc:dne},mne=!1,fne=gn(ul,mne,"bool"),gne=!1,yne=gn(cl,gne,"bool"),bne=Vn(Xs),xne=!1,vne=gn(dl,xne,"bool"),I2;function wne(e){I2=e.wasm.cwrap(Ys,null,["number, number, number"])}function kne(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:u,originalAxes:p,inputWasTransposed:d}=Cu(i,r,t);if(d){let b=t.dataIdMap.get(c.dataId).id;l=c,o=b}let h=l.shape.length;_.assertAxesAreInnerMostDims("max",u,h);let[m,f]=_.computeOutAndReduceShapes(l.shape,u),g=k.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(k.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;I2(o,g,b)}if(d&&t.disposeData(c.dataId),s){let b=_.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var Ine={kernelName:Ys,backendName:"wasm",setupFunc:wne,kernelFunc:kne},Nne=!1,Tne=gn(Zs,Nne),N2;function Sne(e){N2=e.wasm.cwrap(Js,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Cne(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=n,u=_.computePool2DInfo(r.shape,i,o,1,l,c),p=u.filterHeight,d=u.filterWidth,h=u.padInfo.top,m=u.padInfo.right,f=u.padInfo.bottom,g=u.padInfo.left,y=u.dilationHeight,b=u.dilationWidth,v=u.strideHeight,x=u.strideWidth,N=u.inChannels,T=u.outChannels;if(u.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${u.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(u.outShape,"float32"),$=a.dataIdMap.get(C.dataId).id;return N2(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,v,x,N,T,$),C}var _ne={kernelName:Js,backendName:"wasm",setupFunc:Sne,kernelFunc:Cne},T2;function Ene(e){T2=e.wasm.cwrap(Qs,null,["number, number, number"])}function Ane(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("mean",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=c;c.dtype!=="float32"&&(b=ff({backend:t,inputs:{x:c},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let v=t.makeOutput(f,"float32");if(k.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(v.dataId).id;T2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(v.shape,d);v.shape=x}return c.dtype!=="float32"&&t.disposeData(b.dataId),v}var Fne={kernelName:Qs,backendName:"wasm",setupFunc:Ene,kernelFunc:Ane},S2;function $ne(e){S2=e.wasm.cwrap(ei,null,["number, number, number"])}function Dne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t);if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v)}let m=c.shape.length;_.assertAxesAreInnerMostDims("min",p,m);let[f,g]=_.computeOutAndReduceShapes(c.shape,p),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;S2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var Rne={kernelName:ei,backendName:"wasm",setupFunc:$ne,kernelFunc:Dne},Mne=!1,Pne=gn(ti,Mne),One=!0,Lne=gn(ni,One),zne=Vn(ml);function uw(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var C2;function Bne(e){C2=e.wasm.cwrap(gl,"number",["number","number","number","number","number"])}function Wne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,c=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(l.dataId).id,p=C2(c,u,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=uw(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var Vne={kernelName:gl,backendName:"wasm",setupFunc:Bne,kernelFunc:Wne},_2;function Une(e){_2=e.wasm.cwrap(yl,"number",["number","number","number","number","number","bool"])}function Gne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=_2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=uw(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var Hne={kernelName:yl,backendName:"wasm",setupFunc:Une,kernelFunc:Gne},E2;function jne(e){E2=e.wasm.cwrap(bl,"number",["number","number","number","number","number","number"])}function qne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=E2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=uw(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var Kne={kernelName:bl,backendName:"wasm",setupFunc:jne,kernelFunc:qne},Xne=!1,Yne=gn(fl,Xne,"bool"),A2;function Zne(e){A2=e.wasm.cwrap(ai,null,["number","number","number","number","number"])}function Jne(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),c=n.dataIdMap.get(l.dataId).id,u=n.dataIdMap.get(r.dataId).id;return A2(u,s,i,o,c),l}var Qne={kernelName:ai,backendName:"wasm",setupFunc:Zne,kernelFunc:Jne};function eae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var tae={kernelName:xl,backendName:"wasm",kernelFunc:eae};function nae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return lw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(l=>{k.assertShapesMatch(s,l.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===l.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=t.map(l=>lw({inputs:{input:l},backend:n,attrs:{dim:r}}));return u2({inputs:o,backend:n,attrs:{axis:r}})}var aae={kernelName:vl,backendName:"wasm",kernelFunc:nae},F2;function rae(e){F2=e.wasm.cwrap(ri,null,["number","array","number","number","array","array","number","number"])}function sae(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),u=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(u).buffer),h=new Uint8Array(new Int32Array(p).buffer);return F2(i,c,t.shape.length,Wn[t.dtype],d,h,r,l),o}var iae={kernelName:ri,backendName:"wasm",kernelFunc:sae,setupFunc:rae},oae=!1,lae=gn(si,oae),$2;function uae(e){$2=e.wasm.cwrap(ii,null,["number","number","number"])}function cae(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return $2(s,i,l),o}var pae={kernelName:ii,backendName:"wasm",setupFunc:uae,kernelFunc:cae},D2;function dae(e){D2=e.wasm.cwrap(wl,null,["number","number","number","number"])}function hae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("prod",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;D2(l,y,Wn[b.dtype],v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var mae={kernelName:wl,backendName:"wasm",setupFunc:dae,kernelFunc:hae},fae=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=Rv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},gae={kernelName:Cc,backendName:"wasm",kernelFunc:fae},yae=!0,bae=gn(Vs,yae),xae=Vn(oi),vae=Vn(ui),R2;function wae(e){R2=e.wasm.cwrap(li,null,["number","number","number","number","number","number","number","number","number","number"])}function kae(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,[u,p,d,h]=r.shape,m=[u,l,c,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=ff({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(k.sizeFromShape(r.shape)===0)return b;let v=t.dataIdMap.get(b.dataId).id;return R2(y,u,p,d,h,l,c,s?1:0,i?1:0,v),g!=null&&t.disposeData(g.dataId),b}var Iae={kernelName:li,backendName:"wasm",setupFunc:wae,kernelFunc:kae},M2;function Nae(e){M2=e.wasm.cwrap(ci,null,["number","array","number","array","number","number"])}function Tae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=k.parseAxisParam(s,r.shape);if(r.shape.length===0)return hf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);return M2(l,u,i.length,p,r.shape.length,c),Pa({inputs:{x:o},attrs:{shape:r.shape},backend:n})}var Sae={kernelName:ci,backendName:"wasm",kernelFunc:Tae,setupFunc:Nae},P2;function Cae(e){P2=e.wasm.cwrap(Ol,null,["number","number","number","number","number","number","number","number","array","number","number"])}function _ae(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=_.getImageCenter(o,d,h),y=i===0,b=255,v=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],x=new Uint8Array(new Int32Array(v).buffer);return P2(c,p,d,h,m,s,f,g,x,v.length,u),l}var Eae={kernelName:Ol,backendName:"wasm",kernelFunc:_ae,setupFunc:Cae},Aae=Vn(pi),Fae=Vn(di),O2;function $ae(e){O2=e.wasm.cwrap(Nl,null,["number","number","number","number","number","number","array","number","number"])}function Dae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(k.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:c,sliceSize:u,strides:p,outputSize:d}=$y.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return O2(h,m,Wn[s.dtype],l,c,u,f,d,g),o}var Rae={kernelName:Nl,backendName:"wasm",setupFunc:$ae,kernelFunc:Dae},L2;function Mae(e){L2=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Pae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,c=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(c.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:k.sizeFromShape(r.shape.slice(1));return L2(i,o,l,h,u),c}var Oae={kernelName:Tl,backendName:"wasm",kernelFunc:Pae,setupFunc:Mae},z2;function Lae(e){z2=e.wasm.cwrap(mi,null,["number","number"])}function zae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return k.sizeFromShape(r.shape)===0||z2(a,s),r}var Bae={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Lae,kernelFunc:zae},Wae=Vn(hi);function gf(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=pn.parseSliceParams(t,n,a),o=pn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),c=r.makeOutput(i,t.dtype),u=k.computeStrides(t.shape),p=r.dataIdMap.get(c.dataId);if(o){let m=pn.computeFlatOffset(s,u);return t.dtype==="string"?p.stringBytes=l.slice(m,m+k.sizeFromShape(i)):r.typedArrayFromHeap(c).set(l.subarray(m,m+k.sizeFromShape(i))),c}if(t.dtype==="string"){let m=Km(l,s,i,t.shape,t.dtype);return p.stringBytes=m,c}let d=r.typedArrayFromHeap(c),h=t.shape.length;if(h===2)Vae(l,u[0],d,s,i);else if(h===3)Uae(l,u[0],u[1],d,s,i);else if(h===4)Gae(l,u[0],u[1],u[2],d,s,i);else{let m=Km(l,s,i,t.shape,t.dtype);d.set(m)}return c}function Vae(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let c=i;c{let d=[...u];d[o]=p;let h=gf({inputs:{x:r},attrs:{begin:c,size:d},backend:a});return c[o]+=p,h})}var Yae={kernelName:Fl,backendName:"wasm",kernelFunc:Xae},Zae=Vn(fi),Jae=Vn(Ac),Qae=!0,ere=gn(bi,Qae),W2;function tre(e){W2=e.wasm.cwrap(Hr,null,["number","number","number"])}function nre(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return W2(i,r,l),o}var are={kernelName:Hr,backendName:"wasm",setupFunc:tre,kernelFunc:nre},V2;function rre(e){V2=e.wasm.cwrap($l,null,["number","array","number","array","array","array","array","array","number","number"])}function sre(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,h=_.slice_util.maskToAxes(u);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(u!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(u!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=_.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(F=>{s[F]=0,i[F]=1,g.splice(F,0,1)});let y=Pa({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:v,strides:x}=_.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,c,u);s=b,i=v,o=x;let N=_.slice_util.maskToAxes(d);N.forEach(F=>{i[F]=s[F]+1,o[F]=1});let T=_.slice_util.computeOutShape(s,i,o),C=T.filter((F,O)=>N.indexOf(O)===-1);if(o.every(F=>F===1)){let F=gf({inputs:{x:r},attrs:{begin:s,size:T},backend:t});return Pa({inputs:{x:F},attrs:{shape:C},backend:t})}let $=t.makeOutput(C,"float32");if(!C.some(F=>F===0)){let F=t.dataIdMap.get(y.dataId).id,O=new Uint8Array(new Int32Array(k.computeStrides(y.shape)).buffer),B=new Uint8Array(new Int32Array(s).buffer),W=new Uint8Array(new Int32Array(i).buffer),G=new Uint8Array(new Int32Array(o).buffer),q=new Uint8Array(new Int32Array(C).buffer),H=new Uint8Array(new Int32Array(k.computeStrides(C)).buffer),K=t.dataIdMap.get($.dataId).id;V2(F,O,y.shape.length,B,W,G,q,H,C.length,K)}return Pa({inputs:{x:$},attrs:{shape:C},backend:t})}var ire={kernelName:$l,backendName:"wasm",setupFunc:rre,kernelFunc:sre},ore=!0,lre=gn(xi,ore),U2;function ure(e){U2=e.wasm.cwrap(gi,null,["number, number, number"])}function cre(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("sum",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;U2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var pre={kernelName:gi,backendName:"wasm",setupFunc:ure,kernelFunc:cre},dre=Vn(vi),G2;function hre(e){G2=e.wasm.cwrap(Gr,null,["number","array","number","array","number","number"])}function mre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let c=t.makeOutput(l,a.dtype),u=t.dataIdMap.get(c.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return H2(i,o,a.shape.length,Wn[a.dtype],r,s,u,d),[c,p]},bre={kernelName:Rl,backendName:"wasm",setupFunc:gre,kernelFunc:yre};function xre(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),c=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var vre={kernelName:Ml,backendName:"wasm",kernelFunc:xre};function wre(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var kre={kernelName:Pl,backendName:"wasm",kernelFunc:wre},Ire=[Uee,Hee,Kee,nte,ste,ute,cte,hte,mte,yte,vte,wte,Nte,Cte,Ate,Dte,Mte,Pte,Ote,zte,Vte,Ute,Hte,Vee,Kte,Zte,ene,ane,ine,lne,cne,Xee,hne,fne,yne,bne,vne,Ine,Tne,_ne,Fne,Rne,Pne,Lne,zne,Vne,Hne,Kne,Yne,Qne,tae,aae,iae,lae,pae,mae,gae,bae,xae,vae,ite,Iae,Sae,Eae,Fae,Aae,Rae,Oae,Bae,Wae,Hae,Kae,Yae,Zae,Jae,ere,are,ire,lre,pre,dre,fre,bre,Qee,vre,kre];for(let e of Ire)Dc(e);var cw=ee();cw.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])));cw.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(cw.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 j2=Ro(KE()),Nre='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}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;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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["dynCall_ii"](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"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){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.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");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()}}}}',Tre=Ro(XE()),q2=class extends dc{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Fd(this,Jr())}write(e,t,n){let a={};return this.move(a,e,t,n),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}move(e,t,n,a){let r=this.dataIdNextNumber++;if(a==="string"){let l=t;this.dataIdMap.set(e,{id:r,stringBytes:l,shape:n,dtype:a,memoryOffset:null});return}let s=k.sizeFromShape(n),i=s*k.bytesPerElement(a),o=this.wasm._malloc(i);this.dataIdMap.set(e,{id:r,memoryOffset:o,shape:n,dtype:a}),this.wasm.tfjs.registerTensor(r,s,o),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,i),o)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+k.sizeFromShape(a)*k.bytesPerElement(n));return Sre(s.buffer,n)}disposeData(e){let t=this.dataIdMap.get(e);this.wasm._free(t.memoryOffset),this.wasm.tfjs.disposeData(t.id),this.dataIdMap.delete(e)}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{a={};let r=this.dataIdNextNumber++;this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t});let s=k.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=k.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function Cre(e){return(t,n)=>(k.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function K2(e,t,n){if(yf!=null)return yf;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Dp!=null&&Dp[a]!=null?Dp[a]:n+a}async function _re(){let[e,t]=await Promise.all([ee().getAsync("WASM_HAS_SIMD_SUPPORT"),ee().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(l,c)=>{if(l.endsWith(".worker.js")){let u=Nre,p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return l.endsWith(".wasm")?K2(e,t,Rp!=null?Rp:c):c+l},pw&&(r.instantiateWasm=Cre(K2(e,t,Rp!=null?Rp:"")));let s;t&&e&&yf==null?(s=j2.default(r),s.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+j2.default.toString()],{type:"text/javascript"})):s=Tre.default(r);let i=null;s.tfjs={init:s.cwrap("init",null,[]),registerTensor:s.cwrap("register_tensor",null,["number","number","number"]),disposeData:s.cwrap("dispose_data",i,["number"]),dispose:s.cwrap("dispose",i,[])};let o=!1;s.onRuntimeInitialized=()=>{o=!0,Mp=!1,n({wasm:s})},s.onAbort=()=>{o||Mp||(Mp=!0,a({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"}))}})}function Sre(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 Ere=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],yf=null,Rp=null,Dp={},Mp=!1,pw=!1;function Are(e,t=!1){if(Ly("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Mp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");yf=e,pw=t}function Fre(e,t=!1){if(Mp)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")Rp=e;else{Dp=e;let n=Ere.filter(a=>Dp[a]==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.`)}pw=t}var $re="3.0.0",Dre=2;Nh("wasm",async()=>{let{wasm:e}=await _re();return new q2(e)},Dre);var Uf={};cc(Uf,{AnchorPosition:()=>ur,DrawBox:()=>Sf,DrawBoxOptions:()=>Iw,DrawFaceLandmarks:()=>Tw,DrawFaceLandmarksOptions:()=>Nw,DrawTextField:()=>bs,DrawTextFieldOptions:()=>Pp,drawContour:()=>_r,drawDetections:()=>Vre,drawFaceExpressions:()=>Ure,drawFaceLandmarks:()=>Gre});function _r(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var bf={};cc(bf,{computeReshapedDimensions:()=>mw,getCenterPoint:()=>to,isDimensions:()=>vf,isEven:()=>xf,isFloat:()=>hw,isTensor:()=>Qi,isTensor1D:()=>Rre,isTensor2D:()=>dw,isTensor3D:()=>Er,isTensor4D:()=>ta,isValidNumber:()=>Oa,isValidProbablitiy:()=>_u,range:()=>or,round:()=>eo});var ln=class{constructor(t,n){if(!Oa(t)||!Oa(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new ln(1/this.width,1/this.height)}};function Qi(e,t){return e instanceof Ae&&e.shape.length===t}function Rre(e){return Qi(e,1)}function dw(e){return Qi(e,2)}function Er(e){return Qi(e,3)}function ta(e){return Qi(e,4)}function hw(e){return e%1!=0}function xf(e){return e%2==0}function eo(e,t=2){let n=10**t;return Math.floor(e*n)/n}function vf(e){return e&&e.width&&e.height}function mw({width:e,height:t},n){let a=n/Math.max(t,e);return new ln(Math.round(e*a),Math.round(t*a))}function to(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function or(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Oa(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function _u(e){return Oa(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var ot=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Oa)}static assertIsValidBox(t,n,a=!1){if(!ot.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Oa),s=[a.x,a.y,a.width,a.height].every(Oa);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,c]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ot.assertIsValidBox({x:i,y:o,width:l,height:c},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=c}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ot({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ot({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),c<1&&(l=2-c,c=1),u<1&&(l=2-u,u=1),{dy:i,edy:l,dx:s,edx:o,y:u,ey:d,x:c,ex:p,w:a,h:r}}calibrate(t){return new ot({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var no=class extends ot{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Ar=class{constructor(t,n,a,r,s){this._imageDims=new ln(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ot(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ot(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Ar(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends Ar{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function wf(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function kf(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let c=0;cl[u]<=n)}return s}function va(e,t){return D(()=>{let[n,a,r]=t,s=kn([...e.shape.slice(0,3),1],n,"float32"),i=kn([...e.shape.slice(0,3),1],a,"float32"),o=kn([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return fe(e,l)})}function Nf(e,t=!1){return D(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,kn(h,0,"float32")},l=o(s),c=r-l.shape[i],p=[t&&c?o(c):null,e,l].filter(d=>!!d).map(d=>ce(d,"float32"));return Qe(p,i)})}function X2(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Eu(e){return 1/(1+Math.exp(-e))}function Y2(e){return Math.log(e/(1-e))}var ao=class extends ot{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Mre=.5,Pre=.43,Ore=.45,Un=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new ln(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new ot(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Ore),l=to(t),c=Math.floor(Math.max(0,l.x-Mre*o)),u=Math.floor(Math.max(0,l.y-Pre*o));return new ao(c,u,Math.min(o,this.imageWidth+c),Math.min(o,this.imageHeight+u))}alignMinBbox(t){let n=kf(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var fw=class extends Un{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],to([t[3],t[4]])]}};var ro=class extends Un{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(to)}};var Au=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${eo(this.distance)})`:""}`}};var Fu=class extends ot{static assertIsValidLabeledBox(t,n){if(ot.assertIsValidBox(t,n),!Oa(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var lr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new lr(t.label,n)}};var gw=class extends Fu{static assertIsValidPredictedBox(t,n){if(Fu.assertIsValidLabeledBox(t,n),!_u(t.score)||!_u(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function La(e){return e.detection instanceof yt}function gs(e,t){return{...e,...{detection:t}}}function yw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function Tf(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function bw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=Tf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function xw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var vw=_E(J2()),Jt;function Bre(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function ww(e){Jt=e}function kw(){return xw()?ww(yw()):vw.isNodejs()?ww(bw()):null}function Wre(e){if(Jt||kw(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Jt.Canvas,Image:n=Jt.Image}=e;Jt.Canvas=t,Jt.Image=n,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new n),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}var rt={getEnv:Bre,setEnv:ww,initialize:kw,createBrowserEnv:yw,createFileSystem:Tf,createNodejsEnv:bw,monkeyPatch:Wre,isBrowser:xw,isNodejs:vw.isNodejs};kw();function ys(e){return!rt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function yn(e){let{Canvas:t,CanvasRenderingContext2D:n}=rt.getEnv();if(e instanceof n)return e;let a=ys(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var ur;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(ur||(ur={}));var Pp=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||ur.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},bs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof bs?t.text:t,this.anchor=n,this.options=new Pp(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var Iw=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:ur.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Pp({...i,...s})}},Sf=class{constructor(t,n={}){this.box=new ot(t),this.options=new Iw(n)}draw(t){let n=yn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:c}=this.options;c&&new bs([c],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Vre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:La(a)?a.detection.score:void 0,s=a instanceof yt?a.box:La(a)?a.detection.box:new ot(a),i=r?`${eo(r)}`:void 0;new Sf(s,{label:i}).draw(e)})}function $u(e){let{Image:t,Video:n}=rt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function Cf(e){return new Promise((t,n)=>{if(e instanceof rt.getEnv().Canvas||$u(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function _f(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=rt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function xs(e){let{Image:t,Video:n}=rt.getEnv();return e instanceof t?new ln(e.naturalWidth,e.naturalHeight):e instanceof n?new ln(e.videoWidth,e.videoHeight):new ln(e.width,e.height)}function so({width:e,height:t}){let{createCanvasElement:n}=rt.getEnv(),a=n();return a.width=e,a.height=t,a}function Du(e,t){let{ImageData:n}=rt.getEnv();if(!(e instanceof n)&&!$u(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||xs(e),s=so({width:a,height:r});return e instanceof n?yn(s).putImageData(e,0,0):yn(s).drawImage(e,0,0,a,r),s}async function Ef(e,t){let n=t||rt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ta(e)?1:0),i=D(()=>e.as3D(a,r,s).toInt());return await _i.toPixels(i,n),i.dispose(),n}function Op(e){let{Image:t,Canvas:n,Video:a}=rt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Af(e,t,n=!1){let{Image:a,Canvas:r}=rt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let s=xs(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,c=so({width:t,height:t}),u=e instanceof r?e:Du(e),p=Math.abs(o-l)/2,d=n&&o{if(Er(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ta(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof rt.getEnv().Canvas?a:Du(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return or(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return mw({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,D(()=>{let a=or(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ae){let o=ta(i)?i:i.expandDims();return o=Nf(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Ja.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof rt.getEnv().Canvas)return _i.fromPixels(Af(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>ce(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function gt(e){if(e instanceof cr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(ys);return a.forEach((r,s)=>{if(!Op(r)&&!Er(r)&&!ta(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ta(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>Op(r)&&Cf(r))),new cr(a,Array.isArray(e))}async function io(e,t){let{Canvas:n}=rt.getEnv(),a=e;if(!(e instanceof n)){let i=await gt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await Ef(o)}let r=yn(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:c})=>{let u=so({width:l,height:c});return yn(u).putImageData(r.getImageData(i,o,l,c),0,0),u})}async function oo(e,t){if(!Er(e)&&!ta(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ta(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return D(()=>{let[n,a,r]=e.shape.slice(ta(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:c,height:u})=>Ql(e.as3D(n,a,r),[l,o,0],[u,c,r]))})}async function vs(e,t){let{fetch:n}=rt.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Q2(e){let t=await vs(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return _f(n)}async function Ff(e){return(await vs(e)).json()}async function eC(e){return new Float32Array(await(await vs(e)).arrayBuffer())}function $f(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Df(e,t){let{manifestUri:n,modelBaseUri:a}=$f(e,t),r=await Ff(n);return Ht.loadWeights(r,a)}function tC(e,t,n=!1){let{width:a,height:r}=n?xs(t):t;return e.width=a,e.height=r,{width:a,height:r}}var Qt=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof jr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof jr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Kn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await Df(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=rt.getEnv(),{manifestUri:a,modelBaseUri:r}=$f(t,this.getDefaultModelName()),s=c=>Promise.all(c.map(u=>n(u).then(p=>p.buffer))),i=Ht.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Ae))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Cn(e,t,n){return D(()=>{let a=Mi(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Z(a,t.bias),a})}function Rf(e,t,n=!1){return D(()=>{let a=Ye(n?Z(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Cn(e,t.conv0,[2,2])),r=Cn(a,t.conv1,[1,1]),s=Ye(Z(a,r)),i=Cn(s,t.conv2,[1,1]);return Ye(Z(a,Z(r,i)))})}function Lp(e,t,n=!1,a=!0){return D(()=>{let r=Ye(n?Z(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Cn(e,t.conv0,a?[2,2]:[1,1])),s=Cn(r,t.conv1,[1,1]),i=Ye(Z(r,s)),o=Cn(i,t.conv2,[1,1]),l=Ye(Z(r,Z(s,o))),c=Cn(l,t.conv3,[1,1]);return Ye(Z(r,Z(s,Z(o,c))))})}function lo(e,t,n="same",a=!1){return D(()=>{let r=Z(At(e,t.filters,[1,1],n),t.bias);return a?Ye(r):r})}function bn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Ru(e,t){return(n,a,r,s)=>{let i=Ca(e(n*a*r*r),[r,r,n,a]),o=nt(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Mf(e,t){return(n,a,r)=>{let s=Sa(e(n*a),[n,a]),i=nt(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var Pf=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Mu(e,t){return(n,a,r)=>{let s=Ca(e(3*3*n),[3,3,n,1]),i=Ca(e(n*a),[1,1,n,a]),o=nt(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new Pf(s,i,o)}}function Pu(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new Pf(n,a,r)}}function Gn(e,t){return(n,a,r)=>{let s=e[n];if(!Qi(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function xn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Of(e,t){let n=Ru(e,t),a=Mu(e,t);function r(i,o,l,c=!1){let u=c?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:u,conv1:p,conv2:d}}function s(i,o,l,c=!1){let{conv0:u,conv1:p,conv2:d}=r(i,o,l,c),h=a(o,o,`${l}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function nC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock4Params:r}=Of(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Lf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function zf(e,t){let n=Gn(e,t),a=Lf(n),r=Pu(n);function s(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:c,conv1:u,conv2:p}}function i(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:c,conv1:u,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function aC(e){let t=[],{extractDenseBlock4Params:n}=zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return bn(e,t),{params:a,paramMappings:t}}var zp=class extends Qt{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=va(a,[122.782,117.001,104.298]).div(de(255)),i=Lp(s,n.dense0,!0);return i=Lp(i,n.dense1),i=Lp(i,n.dense2),i=Lp(i,n.dense3),i=Yn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return aC(t)}extractParams(t){return nC(t)}};function Bp(e,t){return D(()=>Z(ze(e,t.weights),t.bias))}function rC(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=xn(e),o=Mf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function sC(e){let t=[],n=Gn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return bn(e,t),{params:r,paramMappings:t}}function Bf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var Wp=class extends Qt{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof cr?this.faceFeatureExtractor.forwardInput(t):t;return Bp(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return rC(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=Bf(t);return this.faceFeatureExtractor.loadFromWeightMap(n),sC(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var Wf=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Fr=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Wf.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Wf.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Vp=class extends Wp{constructor(t=new zp){super("FaceExpressionNet",t)}forwardInput(t){return D(()=>Ta(this.runNet(t)))}async forward(t){return this.forwardInput(await gt(t))}async predictExpressions(t){let n=await gt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Fr(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Vf(e){return e.expressions instanceof Fr}function Up(e,t){return{...e,...{expressions:t}}}function Ure(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Fr?s:Vf(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),c=La(s)?s.detection.box.bottomLeft:a||new De(0,0);new bs(l.map(p=>`${p.expression} (${eo(p.probability)})`),c).draw(e)})}function ws(e){return La(e)&&e.landmarks instanceof Un&&e.unshiftedLandmarks instanceof Un&&e.alignedRect instanceof yt}function uo(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i}}}var Nw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},Tw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Nw(n)}draw(t){let n=yn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof ro&&(n.strokeStyle=i,n.lineWidth=s,_r(n,this.faceLandmarks.getJawOutline()),_r(n,this.faceLandmarks.getLeftEyeBrow()),_r(n,this.faceLandmarks.getRightEyeBrow()),_r(n,this.faceLandmarks.getNose()),_r(n,this.faceLandmarks.getLeftEye(),!0),_r(n,this.faceLandmarks.getRightEye(),!0),_r(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let c=u=>{n.beginPath(),n.arc(u.x,u.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(c)}}};function Gre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof Un?a:ws(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Tw(r).draw(e)})}var iC="0.12.5";function Hre(e,t){let n=Ru(e,t),a=Mu(e,t);function r(i,o,l){let c=a(i,o,`${l}/separable_conv0`),u=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:u,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),c=a(i,i,`${o}/separable_conv1`),u=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function oC(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=xn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Hre(a,n),c=s(3,32,3,"entry_flow/conv_in"),u=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:c,reduction_block_0:u,reduction_block_1:p},h={};or(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function jre(e,t){let n=Gn(e,t),a=Lf(n),r=Pu(n);function s(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:u}}function i(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function lC(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=jre(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),c=s("entry_flow/reduction_block_1"),u={conv_in:o,reduction_block_0:l,reduction_block_1:c},p={};or(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return bn(e,n),{params:{entry_flow:u,middle_flow:p,exit_flow:m},paramMappings:n}}function uC(e,t,n){return Z(At(e,t.filters,n,"same"),t.bias)}function Sw(e,t,n=!0){let a=n?Ye(e):e;return a=Cn(a,t.separable_conv0,[1,1]),a=Cn(Ye(a),t.separable_conv1,[1,1]),a=Ft(a,[3,3],[2,2],"same"),a=Z(a,uC(e,t.expansion_conv,[2,2])),a}function qre(e,t){let n=Cn(Ye(e),t.separable_conv0,[1,1]);return n=Cn(Ye(n),t.separable_conv1,[1,1]),n=Cn(Ye(n),t.separable_conv2,[1,1]),n=Z(n,e),n}var Cw=class extends Qt{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=va(a,[122.782,117.001,104.298]).div(de(256)),i=Ye(uC(s,n.entry_flow.conv_in,[2,2]));return i=Sw(i,n.entry_flow.reduction_block_0,!1),i=Sw(i,n.entry_flow.reduction_block_1),or(this._numMainBlocks,0,1).forEach(o=>{i=qre(i,n.middle_flow[`main_block_${o}`])}),i=Sw(i,n.exit_flow.reduction_block),i=Ye(Cn(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return lC(t,this._numMainBlocks)}extractParams(t){return oC(t,this._numMainBlocks)}};function cC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),r=Mf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function pC(e){let t=[],n=Gn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return bn(e,t),{params:r,paramMappings:t}}var pr;(function(e){e.FEMALE="female",e.MALE="male"})(pr||(pr={}));var Gp=class extends Qt{constructor(t=new Cw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof cr?this.faceFeatureExtractor.forwardInput(t):t,r=Yn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Bp(r,n.fc.age).as1D(),i=Bp(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return D(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Ta(a)}})}async forward(t){return this.forwardInput(await gt(t))}async predictAgeAndGender(t){let n=await gt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,c)=>({ageTensor:l,genderTensor:s[c]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:c})=>{let u=(await l.data())[0],p=(await c.data())[0],d=p>.5,h=d?pr.MALE:pr.FEMALE,m=d?p:1-p;return l.dispose(),c.dispose(),{age:u,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return cC(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=Bf(t);return this.faceFeatureExtractor.loadFromWeightMap(n),pC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var Hp=class extends Wp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return D(()=>{let i=(p,d)=>$t([kn([68],p,"float32"),kn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),c(d))))).div($t(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return D(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await gt(t))}async detectLandmarks(t){let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((u,p)=>xf(p)),c=o.filter((u,p)=>!xf(p));return new ro(Array(68).fill(0).map((u,p)=>new De(l[p],c[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var co=class extends Hp{constructor(t=new zp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function dC(e){let t=[],{extractDenseBlock3Params:n}=zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return bn(e,t),{params:a,paramMappings:t}}function hC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock3Params:r}=Of(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var _w=class extends Qt{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=va(a,[122.782,117.001,104.298]).div(de(255)),i=Rf(s,n.dense0,!0);return i=Rf(i,n.dense1),i=Rf(i,n.dense2),i=Yn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return dC(t)}extractParams(t){return hC(t)}};var jp=class extends Hp{constructor(t=new _w){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ew=class extends co{};function mC(e,t){return Z(L(e,t.weights),t.biases)}function Aw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Z(o,i),o=mC(o,t.scale),a?Ye(o):o}function fC(e,t){return Aw(e,t,[1,1],!0)}function Fw(e,t){return Aw(e,t,[1,1],!1)}function Gf(e,t){return Aw(e,t,[2,2],!0,"valid")}function Kre(e,t){function n(o,l,c){let u=e(o),p=u.length/(l*c*c);if(hw(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${u.length}, numFilters: ${l}, filterSize: ${c}`);return D(()=>Ue(Ca(u,[l,p,c,c]),[2,3,1,0]))}function a(o,l,c,u){let p=n(o,l,c),d=nt(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:p,bias:d}}function r(o,l){let c=nt(e(o)),u=nt(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:u}}function s(o,l,c,u){let p=a(o,l,c,`${u}/conv`),d=r(l,`${u}/scale`);return{conv:p,scale:d}}function i(o,l,c,u,p=!1){let d=s((p?.5:1)*o,l,c,`${u}/conv1`),h=s(o,l,c,`${u}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function gC(e){let{extractWeights:t,getRemainingWeights:n}=xn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Kre(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),c=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),v=s(589824,256,3,"conv256_2"),x=s(589824,256,3,"conv256_down_out"),N=D(()=>Ue(Sa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:c,conv64_down:u,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:v,conv256_down_out:x,fc:N},paramMappings:a}}function Xre(e,t){let n=Gn(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),c=a(i);return{conv:{filters:o,bias:l},scale:c}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function yC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Xre(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),c=a("conv64_1"),u=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:v}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!dw(v))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${v}`);let x={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:c,conv64_2:u,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:v};return bn(e,t),{params:x,paramMappings:t}}function za(e,t){let n=fC(e,t.conv1);return n=Fw(n,t.conv2),n=Z(n,e),n=Ye(n),n}function qp(e,t){let n=Gf(e,t.conv1);n=Fw(n,t.conv2);let a=Yn(e,2,2,"valid"),r=vt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=vt(o);n=Qe([n,l],1);let c=[...n.shape];c[2]=1;let u=vt(c);n=Qe([n,u],2)}return a=s?Qe([a,r],3):a,n=Z(a,n),n=Ye(n),n}var po=class extends Qt{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(150,!0),"float32"),s=va(a,[122.782,117.001,104.298]).div(de(256)),i=Gf(s,n.conv32_down);i=Ft(i,3,2,"valid"),i=za(i,n.conv32_1),i=za(i,n.conv32_2),i=za(i,n.conv32_3),i=qp(i,n.conv64_down),i=za(i,n.conv64_1),i=za(i,n.conv64_2),i=za(i,n.conv64_3),i=qp(i,n.conv128_down),i=za(i,n.conv128_1),i=za(i,n.conv128_2),i=qp(i,n.conv256_down),i=za(i,n.conv256_1),i=za(i,n.conv256_2),i=qp(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await gt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return yC(t)}extractParams(t){return gC(t)}};function bC(e){let t=new po;return t.extractWeights(e),t}function Kp(e,t){return{...e,...{descriptor:t}}}function xC(e){return typeof e.age=="number"}function Xp(e,t){return{...e,...{age:t}}}function vC(e){return(e.gender===pr.MALE||e.gender===pr.FEMALE)&&_u(e.genderProbability)}function Yp(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function Yre(e,t){function n(l,c){let u=Ca(e(3*3*l),[3,3,l,1]),p=nt(e(l)),d=nt(e(l)),h=nt(e(l)),m=nt(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:u,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,c,u,p,d){let h=Ca(e(l*c*u*u),[u,u,l,c]),m=nt(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,c,u,p){let{filters:d,bias:h}=a(l,c,u,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,c,u){let p=n(l,`${u}/depthwise_conv`),d=r(l,c,1,`${u}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),c=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),v=s(512,512,"mobilenetv1/conv_11"),x=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:v,conv_12:x,conv_13:N}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),c=r(256,512,3,"prediction_layer/conv_1"),u=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),v=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),x=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),$=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),F=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),O=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),B=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:v},box_predictor_2:{box_encoding_predictor:x,class_predictor:N},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:$,class_predictor:F},box_predictor_5:{box_encoding_predictor:O,class_predictor:B}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function wC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=Yre(n,t),i=r(),o=s(),c={extra_dim:wh(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:c},paramMappings:t}}function Zre(e,t){let n=Gn(e,t);function a(c,u,p){let d=n(`${c}/Conv2d_${u}_pointwise/weights`,4,`${p}/filters`),h=n(`${c}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(c){let u=`mobilenetv1/conv_${c}`,p=`MobilenetV1/Conv2d_${c}_depthwise`,d=`${u}/depthwise_conv`,h=`${u}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",c,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(c,u){let p=n(`${c}/weights`,4,`${u}/filters`),d=n(`${c}/biases`,1,`${u}/bias`);return{filters:p,bias:d}}function o(c){let u=i(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:u,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function kC(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Zre(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Er(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return bn(e,t),{params:s,paramMappings:t}}function wa(e,t,n){return D(()=>{let a=At(e,t.filters,n,"same");return a=Z(a,t.batch_norm_offset),qt(a,0,6)})}var Jre=.0010000000474974513;function Qre(e,t,n){return D(()=>{let a=es(e,t.filters,n,"same");return a=br(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Jre),qt(a,0,6)})}function ese(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function IC(e,t){return D(()=>{let n,a=wa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=ese(o);a=Qre(a,s.depthwise_conv,l),a=wa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function tse(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),c=Math.min(a[n][1],a[n][3]),u=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(u-l)*(p-c);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,c),g=Math.min(i,u),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function NC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((u,p)=>({score:u,boxIndex:p})).filter(u=>u.score>r).sort((u,p)=>p.score-u.score),l=u=>u<=a?1:0,c=[];return o.forEach(u=>{if(c.length>=i)return;let p=u.score;for(let d=c.length-1;d>=0;--d){let h=tse(e,u.boxIndex,c[d]);if(h!==0&&(u.score*=l(h),u.score<=r))break}p===u.score&&c.push(u.boxIndex)}),c}function nse(e){let t=dt(Ue(e,[1,0])),n=[fe(t[2],t[0]),fe(t[3],t[1])],a=[Z(t[0],ve(n[0],de(2))),Z(t[1],ve(n[1],de(2)))];return{sizes:n,centers:a}}function ase(e,t){let{sizes:n,centers:a}=nse(e),r=dt(Ue(t,[1,0])),s=ve(L(dn(ve(r[2],de(5))),n[0]),de(2)),i=Z(L(ve(r[0],de(10)),n[0]),a[0]),o=ve(L(dn(ve(r[3],de(5))),n[1]),de(2)),l=Z(L(ve(r[1],de(10)),n[1]),a[1]);return Ue($t([fe(i,s),fe(l,o),Z(i,s),Z(l,o)]),[1,0])}function TC(e,t,n){return D(()=>{let a=e.shape[0],r=ase(j(Ka(n.extra_dim,[a,1,1]),[-1,4]),j(e,[-1,4]));r=j(r,[a,r.shape[0]/a,4]);let s=pa(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=j(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function ho(e,t){return D(()=>{let n=e.shape[0],a=j(lo(e,t.box_encoding_predictor),[n,-1,1,4]),r=j(lo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function SC(e,t,n){return D(()=>{let a=wa(e,n.conv_0,[1,1]),r=wa(a,n.conv_1,[2,2]),s=wa(r,n.conv_2,[1,1]),i=wa(s,n.conv_3,[2,2]),o=wa(i,n.conv_4,[1,1]),l=wa(o,n.conv_5,[2,2]),c=wa(l,n.conv_6,[1,1]),u=wa(c,n.conv_7,[2,2]),p=ho(t,n.box_predictor_0),d=ho(e,n.box_predictor_1),h=ho(r,n.box_predictor_2),m=ho(i,n.box_predictor_3),f=ho(l,n.box_predictor_4),g=ho(u,n.box_predictor_5),y=Qe([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Qe([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var na=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var ks=class extends Qt{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(512,!1),"float32"),r=fe(L(a,de(.007843137718737125)),de(1)),s=IC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=SC(s.out,s.conv11,n.prediction_layer);return TC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await gt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new na(n),s=await gt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],c=o[0];for(let v=1;v{let[x,N]=[Math.max(0,y[v][0]),Math.min(1,y[v][2])].map($=>$*g),[T,C]=[Math.max(0,y[v][1]),Math.min(1,y[v][3])].map($=>$*f);return new yt(u[v],new ao(T,x,C-T,N-x),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),c.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return kC(t)}extractParams(t){return wC(t)}};function $w(e){let t=new ks;return t.extractWeights(e),t}function CC(e){return $w(e)}var Dw=class extends ks{};var _C=.4,EC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],AC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],FC=[117.001,114.697,97.404],$C="tiny_yolov2_model",DC="tiny_yolov2_separable_conv_model";var Hf=e=>typeof e=="number";function jf(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Hf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Hf(t.x)&&Hf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Hf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Ou(e){return D(()=>{let t=L(e,de(.10000000149011612));return Z(Ye(fe(e,t)),t)})}function $r(e,t){return D(()=>{let n=Jn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=fe(n,t.bn.sub),n=L(n,t.bn.truediv),n=Z(n,t.conv.bias),Ou(n)})}function Dr(e,t){return D(()=>{let n=Jn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Mi(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Z(n,t.bias),Ou(n)})}function rse(e,t){let n=Ru(e,t);function a(i,o){let l=nt(e(i)),c=nt(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:c}}function r(i,o,l){let c=n(i,o,3,`${l}/conv`),u=a(o,`${l}/bn`);return{conv:c,bn:u}}let s=Mu(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function RC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=xn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=rse(r,i),u;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,v]=a,x=t.isFirstLayerConv2d?o(p,d,3,"conv0"):c(p,d,"conv0"),N=c(d,h,"conv1"),T=c(h,m,"conv2"),C=c(m,f,"conv3"),$=c(f,g,"conv4"),F=c(g,y,"conv5"),O=b?c(y,b,"conv6"):void 0,B=v?c(b,v,"conv7"):void 0,W=o(v||b||y,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:$,conv5:F,conv6:O,conv7:B,conv8:W}}else{let[p,d,h,m,f,g,y,b,v]=a,x=l(p,d,"conv0"),N=l(d,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),$=l(f,g,"conv4"),F=l(g,y,"conv5"),O=l(y,b,"conv6"),B=l(b,v,"conv7"),W=o(v,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:$,conv5:F,conv6:O,conv7:B,conv8:W}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function sse(e,t){let n=Gn(e,t);function a(o){let l=n(`${o}/sub`,1),c=n(`${o}/truediv`,1);return{sub:l,truediv:c}}function r(o){let l=n(`${o}/filters`,4),c=n(`${o}/bias`,1);return{filters:l,bias:c}}function s(o){let l=r(`${o}/conv`),c=a(`${o}/bn`);return{conv:l,bn:c}}let i=Pu(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function MC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=sse(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return bn(e,n),{params:i,paramMappings:n}}var Ba=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var Rw=class extends Qt{constructor(t){super("TinyYolov2");jf(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=$r(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=$r(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=$r(a,n.conv6),a=$r(a,n.conv7),lo(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Ou(lo(t,n.conv0,"valid",!1)):Dr(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=n.conv6?Dr(a,n.conv6):a,a=n.conv7?Dr(a,n.conv7):a,lo(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return D(()=>{let r=ce(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?va(r,this.config.meanRgb):r,r=r.div(de(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await gt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new Ba(n),s=await gt(t),i=await this.forwardInput(s,a),o=D(()=>dt(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},c=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let u=c.map(g=>g.box),p=c.map(g=>g.score),d=c.map(g=>g.classScore),h=c.map(g=>this.config.classes[g.label]);return If(u.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new Ar(p[g],d[g],h[g],u[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return MC(t,this.config)}extractParams(t){let n=this.config.filterSizes||Rw.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return RC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,c=t.shape[1],u=this.config.anchors.length,[p,d,h]=D(()=>{let y=t.reshape([c,c,u,this.boxEncodingSize]),b=y.slice([0,0,0,0],[c,c,u,4]),v=y.slice([0,0,0,4],[c,c,u,1]),x=this.withClassScores?Ta(y.slice([0,0,0,5],[c,c,u,this.config.classes.length]),3):de(0);return[b,v,x]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let N=(b+Eu(g[y][b][v][0]))/c*o,T=(y+Eu(g[y][b][v][1]))/c*l,C=Math.exp(g[y][b][v][2])*this.config.anchors[v].x/c*o,$=Math.exp(g[y][b][v][3])*this.config.anchors[v].y/c*l,F=N-C/2,O=T-$/2,B={row:y,col:b,anchor:v},{classScore:W,label:G}=this.withClassScores?await this.extractPredictedClass(h,B):{classScore:1,label:0};m.push({box:new no(F,O,F+C,O+$),score:x,classScore:x*W,label:G,...B})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Lu=Rw;Lu.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var mo=class extends Lu{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:_C,classes:["face"],...t?{anchors:AC,meanRgb:FC}:{anchors:EC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?DC:$C}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function PC(e,t=!0){let n=new mo(t);return n.extractWeights(e),n}var Zp=class extends Ba{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var aa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function fo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ws(l)?r(l):l.detection),i=a||(t instanceof Ae?await oo(t,s):await io(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ae&&l.dispose()),o}async function zu(e,t,n,a,r){return fo([e],t,async s=>n(s[0]),a,r)}var OC=.4,LC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],zC=[117.001,114.697,97.404];var go=class extends Lu{constructor(){let t={withSeparableConvs:!0,iouThreshold:OC,classes:["face"],anchors:LC,meanRgb:zC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var et={ssdMobilenetv1:new ks,tinyFaceDetector:new go,tinyYolov2:new mo,faceLandmark68Net:new co,faceLandmark68TinyNet:new jp,faceRecognitionNet:new po,faceExpressionNet:new Vp,ageGenderNet:new Gp},Mw=(e,t)=>et.ssdMobilenetv1.locateFaces(e,t),BC=(e,t)=>et.tinyFaceDetector.locateFaces(e,t),WC=(e,t)=>et.tinyYolov2.locateFaces(e,t),Pw=e=>et.faceLandmark68Net.detectLandmarks(e),VC=e=>et.faceLandmark68TinyNet.detectLandmarks(e),UC=e=>et.faceRecognitionNet.computeFaceDescriptor(e),GC=e=>et.faceExpressionNet.predictExpressions(e),HC=e=>et.ageGenderNet.predictAgeAndGender(e),Ow=e=>et.ssdMobilenetv1.load(e),jC=e=>et.tinyFaceDetector.load(e),qC=e=>et.tinyYolov2.load(e),KC=e=>et.faceLandmark68Net.load(e),XC=e=>et.faceLandmark68TinyNet.load(e),YC=e=>et.faceRecognitionNet.load(e),ZC=e=>et.faceExpressionNet.load(e),JC=e=>et.ageGenderNet.load(e),QC=Ow,e_=Mw,t_=Pw;var Lw=class extends aa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Vu=class extends Lw{async run(){let t=await this.parentTask,n=await fo(t,this.input,async a=>Promise.all(a.map(r=>et.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>Up(a,n[r]))}withAgeAndGender(){return new Bu(this,this.input)}},Uu=class extends Lw{async run(){let t=await this.parentTask;if(!t)return;let n=await zu(t,this.input,a=>et.faceExpressionNet.predictExpressions(a),this.extractedFaces);return Up(t,n)}withAgeAndGender(){return new Wu(this,this.input)}},xo=class extends Vu{withAgeAndGender(){return new yo(this,this.input)}withFaceDescriptors(){return new Rr(this,this.input)}},vo=class extends Uu{withAgeAndGender(){return new bo(this,this.input)}withFaceDescriptor(){return new Mr(this,this.input)}};var zw=class extends aa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Bu=class extends zw{async run(){let t=await this.parentTask,n=await fo(t,this.input,async a=>Promise.all(a.map(r=>et.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Xp(Yp(a,i,o),s)})}withFaceExpressions(){return new Vu(this,this.input)}},Wu=class extends zw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await zu(t,this.input,s=>et.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Xp(Yp(t,a,r),n)}withFaceExpressions(){return new Uu(this,this.input)}},yo=class extends Bu{withFaceExpressions(){return new xo(this,this.input)}withFaceDescriptors(){return new Rr(this,this.input)}},bo=class extends Wu{withFaceExpressions(){return new vo(this,this.input)}withFaceDescriptor(){return new Mr(this,this.input)}};var Jp=class extends aa{constructor(t,n){super();this.parentTask=t;this.input=n}},Rr=class extends Jp{async run(){let t=await this.parentTask;return(await fo(t,this.input,a=>Promise.all(a.map(r=>et.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Kp(t[r],a))}withFaceExpressions(){return new xo(this,this.input)}withAgeAndGender(){return new yo(this,this.input)}},Mr=class extends Jp{async run(){let t=await this.parentTask;if(!t)return;let n=await zu(t,this.input,a=>et.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Kp(t,n)}withFaceExpressions(){return new vo(this,this.input)}withAgeAndGender(){return new bo(this,this.input)}};var Qp=class extends aa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?et.faceLandmark68TinyNet:et.faceLandmark68Net}},ed=class extends Qp{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Ae?await oo(this.input,n):await io(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Ae&&s.dispose()),t.map((s,i)=>uo(s,r[i]))}withFaceExpressions(){return new xo(this,this.input)}withAgeAndGender(){return new yo(this,this.input)}withFaceDescriptors(){return new Rr(this,this.input)}},td=class extends Qp{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ae?await oo(this.input,[n]):await io(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ae&&s.dispose()),uo(t,r)}withFaceExpressions(){return new vo(this,this.input)}withAgeAndGender(){return new bo(this,this.input)}withFaceDescriptor(){return new Mr(this,this.input)}};var nd=class extends aa{constructor(t,n=new na){super();this.input=t;this.options=n}},Gu=class extends nd{async run(){let{input:t,options:n}=this,a=n instanceof Zp?r=>et.tinyFaceDetector.locateFaces(r,n):n instanceof na?r=>et.ssdMobilenetv1.locateFaces(r,n):n instanceof Ba?r=>et.tinyYolov2.locateFaces(r,n):null;if(!a)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return a(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>gs({},a)))})}withFaceLandmarks(t=!1){return new ed(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Vu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Bu(this.runAndExtendWithFaceDetections(),this.input)}},ad=class extends nd{async run(){let t=await new Gu(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?gs({},n):void 0)})}withFaceLandmarks(t=!1){return new td(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Uu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Wu(this.runAndExtendWithFaceDetection(),this.input)}};function n_(e,t=new na){return new ad(e,t)}function rd(e,t=new na){return new Gu(e,t)}async function Bw(e,t){return rd(e,new na(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function a_(e,t={}){return rd(e,new Ba(t)).withFaceLandmarks().withFaceDescriptors()}var r_=Bw;function qf(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var sd=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof lr)return i;if(i instanceof Float32Array)return new lr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new lr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>qf(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Au(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>lr.fromJSON(a));return new sd(n,t.distanceThreshold)}};function s_(e){let t=new go;return t.extractWeights(e),t}function Ww(e,t){let{width:n,height:a}=new ln(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>Ww(r,{width:n,height:a}));if(ws(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return uo(gs(e,r),s)}return La(e)?gs(e,e.detection.forSize(n,a)):e instanceof Un||e instanceof yt?e.forSize(n,a):e}var ose=typeof process!="undefined",lse=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",i_={faceapi:iC,node:ose,browser:lse};return ise;})(); + `}};function Lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],c=0,u=_.getAxesPermutation([c],o),p=r;u!=null&&(p=Sn({inputs:{x:r},backend:n,attrs:{perm:u}}),l.push(p),c=_.getInnerMostAxes(1,o)[0]);let d=_.segment_util.computeOutShape(p.shape,c,i),h=k.sizeFromShape([p.shape[c]]),m=be({inputs:{x:p},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=vh(r.dtype),g=(x,N,T,C,F)=>{let $=x.shape[0],P=x.shape[1],B=_.segment_util.segOpComputeOptimalWindowSize(P,F),W={windowSize:B,inSize:P,batchSize:$,numSegments:F},G=new Oee(W,N),q=n.compileAndRun(G,[x,T],C);if(l.push(q),q.shape[1]===F)return q;let j=r2({backend:n,attrs:{start:0,stop:F,step:1,dtype:"float32"}}),X=o2({inputs:{x:j},backend:n,attrs:{reps:[P/B]}});return l.push(j),l.push(X),g(q,N,X,C,F)},y=g(m,"unsortedSegmentSum",s,f,i),b=be({inputs:{x:y},backend:n,attrs:{shape:d}}),v=b;if(u!=null){l.push(b);let x=_.getUndoAxesPermutation(u);v=Sn({inputs:{x:v},backend:n,attrs:{perm:x}})}return l.forEach(x=>n.disposeIntermediateTensorInfo(x)),v}var zee={kernelName:Ac,backendName:"webgl",kernelFunc:Lee},Bee=[$9,M9,vX,kX,TX,_X,AX,DX,MX,OX,WX,UX,jX,XX,nY,JX,sY,uY,oY,hY,fY,yY,wY,_Y,AY,PY,LY,VY,HY,tX,XY,s7,o7,QY,p7,h7,u7,g7,x7,k7,N7,S7,E7,M7,O7,F7,B7,U7,q7,Z7,tZ,rZ,sZ,iZ,lZ,cZ,dZ,mZ,gZ,vZ,NZ,SZ,_Z,FZ,MZ,zZ,UZ,eX,HZ,KY,KZ,ZZ,e9,aX,r9,l9,c9,y9,m9,w9,N9,_9,O9,H9,U9,X9,Z9,Q9,W9,tJ,aJ,oJ,pJ,fJ,IJ,lX,TJ,_J,FJ,RJ,$Y,OJ,zJ,WJ,GJ,KJ,sX,YJ,ZJ,DY,xJ,eQ,lQ,rQ,cX,dQ,fQ,bQ,wQ,TQ,CQ,AQ,DQ,MQ,LQ,WQ,GQ,qQ,YQ,QQ,SY,wJ,nee,ree,iee,lee,pee,mee,gee,bee,wee,vJ,yX,Nee,Cee,Aee,$ee,bX,Ree,Pee,zee,LJ];for(let e of Bee)$c(e);var Wee="3.1.0",Vee={"tfjs-core":c1,"tfjs-backend-cpu":xG,"tfjs-backend-webgl":QK,"tfjs-data":ON,"tfjs-layers":Mm,"tfjs-converter":FN,tfjs:Wee},Vn;(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"})(Vn||(Vn={}));var Dp;(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"})(Dp||(Dp={}));var l2;function Uee(e){l2=e.wasm.cwrap(Ni,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Gee(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:c,activation:u,leakyreluAlpha:p}=a,d=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let F=n.dataIdMap.get(i.dataId);if(F.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${F.shape.length}.`);m=F.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=Dp[u];if(g==null)throw new Error(`${u} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=c?s.shape[1]:s.shape[2],v=r.shape[0],x=n.makeOutput([v,y,b],r.dtype),N=n.dataIdMap.get(x.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return l2(d,T,r.shape.length,h,C,s.shape.length,l,c,g,m,f,p||0,N),x}var Hee={kernelName:Ni,backendName:"wasm",setupFunc:Uee,kernelFunc:Gee};function Cn(e){let t;function n(r){t=r.wasm.cwrap(e,null,["number","number"])}function a(r){let{backend:s,inputs:{x:i}}=r,o=s.dataIdMap.get(i.dataId).id,l=s.makeOutput(i.shape,i.dtype),c=s.dataIdMap.get(l.dataId).id;return k.sizeFromShape(l.shape)===0||t(o,c),l}return{kernelName:e,backendName:"wasm",setupFunc:n,kernelFunc:a}}var jee=Cn(zo);function gn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:c,b:u}=l,p=o.dataIdMap.get(c.dataId).id,d=o.dataIdMap.get(u.dataId).id,h=n!=null?n:c.dtype,m=_.assertAndGetBroadcastShape(c.shape,u.shape),f=o.makeOutput(m,h);if(k.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(c.shape).buffer),y=new Uint8Array(new Int32Array(u.shape).buffer),b=o.dataIdMap.get(f.dataId).id,v=()=>a(p,g,c.shape.length,d,y,u.shape.length,Vn[c.dtype],b);if(t&&c.dtype==="float32")return v(),f;let x=_.getBroadcastDims(c.shape,m),N=_.getBroadcastDims(u.shape,m),T=x.every((F,$)=>F===$),C=N.every((F,$)=>F===$);if(T&&C)return v(),f;throw new Error(`Broadcasting along outer dims is not yet supported for ${c.dtype} ${e}.`)}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var qee=!0,Kee=gn(Ur,qee),u2;function Xee(e){u2=e.wasm.cwrap($s,null,["array","number","number","number"])}function Yee(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(k.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return u2(s,r.length,Vn[a.dtype],i),a}var Zee={kernelName:$s,backendName:"wasm",setupFunc:Xee,kernelFunc:Yee};function gf(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Jee={kernelName:Xs,backendName:"wasm",kernelFunc:gf},c2;function Qee(e){c2=e.wasm.cwrap(Ii,null,["number","array","number","number","number","array","number"])}function yf(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=tte(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var nte={kernelName:Ii,backendName:"wasm",kernelFunc:yf,setupFunc:Qee};function Cu(e,t,n){let a=e.shape,r=e.shape.length,s=k.parseAxisParam(t,a),i=s,o=_.getAxesPermutation(i,r),l=null,c=!1;if(o!=null){let u=new Array(r);for(let d=0;d`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var ute={kernelName:Il,backendName:"wasm",kernelFunc:Oa},h2;function cte(e){h2=e.wasm.cwrap(Ms,null,["number","array","number","number","array","number","number","number","number"])}function pte(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,c=s.shape.length,u=i?r.shape[l-2]:r.shape[l-1],p=o?s.shape[c-1]:s.shape[c-2],d=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[c-2]:s.shape[c-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=k.sizeFromShape(m),y=k.sizeFromShape(f),b=g===y||g===1||y===1;k.assert(l>=2&&c>=2&&b,()=>`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 v=(g>y?r.shape.slice(0,-2):s.shape.slice(0,-2)).concat([d,h]);k.assert(u===p,()=>`Error in matMul: inner shapes (${u}) and (${p}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,u,d]:[g,d,u],N=o?[y,h,p]:[y,p,h],T=Oa({inputs:{x:r},backend:n,attrs:{shape:x}}),C=Oa({inputs:{x:s},backend:n,attrs:{shape:N}}),F=n.dataIdMap.get(T.dataId).id,$=n.dataIdMap.get(C.dataId).id,P=i?T.shape[2]:T.shape[1],B=o?C.shape[1]:C.shape[2],W=Math.max(g,y),G=n.makeOutput([W,P,B],T.dtype),q=n.dataIdMap.get(G.dataId).id,j=new Uint8Array(new Int32Array(T.shape).buffer),X=new Uint8Array(new Int32Array(C.shape).buffer);return h2(F,j,T.shape.length,$,X,C.shape.length,i,o,q),n.disposeData(T.dataId),n.disposeData(C.dataId),G.shape=v,G}var dte={kernelName:Ms,backendName:"wasm",setupFunc:cte,kernelFunc:pte};function bf(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var hte={kernelName:Ps,backendName:"wasm",kernelFunc:bf},mte=Cn(Os),m2;function fte(e){m2=e.wasm.cwrap(Gr,null,["number","number","number","number"])}function gte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(l.dataId).id;return m2(o,s,i,c),l}var yte={kernelName:Gr,backendName:"wasm",setupFunc:fte,kernelFunc:gte};function f2(e){let{inputs:t,backend:n}=e,a=k.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=_.computeOutShape(t.map(h=>h.shape),a),s=t.filter(h=>k.sizeFromShape(h.shape)>0);if(s.length===1)return gf({inputs:{x:s[0]},backend:n});let i=n.makeOutput(r,t[0].dtype);if(k.sizeFromShape(r)===0)return i;let o=s.map(h=>h.shape);if(_.assertParamsConsistent(o,a),s[0].dtype==="string"){let h=s.map(v=>{let x=k.sizeFromShape(v.shape.slice(a));return Oa({inputs:{x:v},backend:n,attrs:{shape:[-1,x]}})}),m=h.map(v=>({vals:n.readSync(v.dataId),shape:v.shape}));r=_.computeOutShape(h.map(v=>v.shape),1);let f=h[0].shape[0]===1,g=Pv(m,r,t[0].dtype,f),y=_.computeOutShape(s.map(v=>v.shape),a);i.shape=y;let b=n.dataIdMap.get(i.dataId);return b.stringBytes=_.fromStringArrayToUint8(g),i}let l=k.sizeFromShape(s[0].shape.slice(0,a)),c=0,u=s.map(h=>{let m=k.sizeFromShape(h.shape.slice(a));return c+=m,m}),p=s.map(h=>n.typedArrayFromHeap(h)),d=n.typedArrayFromHeap(i);for(let h=0;h`cumsum does not support ${r.dtype} tensors in the WASM backend`);let c=_.getAxesPermutation([s],l),u=r;c!==null&&(u=yf({inputs:{x:r},attrs:{perm:c},backend:n}));let p=_.getInnerMostAxes(1,l)[0];_.assertAxesAreInnerMostDims("cumsum",[p],l);let d=n.makeOutput(u.shape,u.dtype),h=u.shape[p],m=n.dataIdMap.get(u.dataId).id,f=n.dataIdMap.get(d.dataId).id;x2(m,i?1:0,o?1:0,h,f,Vn[r.dtype]);let g=d;if(c!==null){let y=_.getUndoAxesPermutation(c);g=yf({inputs:{x:d},attrs:{perm:y},backend:n}),n.disposeData(u.dataId),n.disposeData(d.dataId)}return g}var Fte={kernelName:Ws,backendName:"wasm",setupFunc:Ete,kernelFunc:Ate},v2;function $te(e){v2=e.wasm.cwrap(Yo,null,["number","number","number","array","number","array","array","number","number"])}function Dte(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a;k.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],c=i==="NHWC"?r.shape[2]:r.shape[3],u=i==="NHWC"?r.shape[3]:r.shape[1],p=l*s,d=c*s,h=u/(s*s),m=i==="NHWC"?[o,p,d,h]:[o,h,p,d],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(k.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),v=new Uint8Array(new Int32Array(k.computeStrides(m)).buffer),x=t.dataIdMap.get(f.dataId).id;return v2(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,v,m.length,x),f}var Rte={kernelName:Yo,backendName:"wasm",setupFunc:$te,kernelFunc:Dte},w2;function Mte(e){w2=e.wasm.cwrap(Vs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Pte(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:c,pad:u,dimRoundingMode:p}=n,d=c==null?[1,1]:c,h=_.computeConv2DInfo(r.shape,s.shape,l,d,u,p,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,v=h.padInfo.left,x=h.dilationHeight,N=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,F=h.inChannels,$=h.outChannels,P=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 B=a.makeOutput(h.outShape,"float32"),W=a.dataIdMap.get(B.dataId).id;return w2(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,v,P,x,N,T,C,F,$,W),B}var Ote={kernelName:Vs,backendName:"wasm",setupFunc:Mte,kernelFunc:Pte},Lte=!1,zte=gn(Qo,Lte,"bool"),Bte=Cn(Gs);function mw(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(k.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Oa({inputs:{x:r},backend:a,attrs:{shape:o}})}var Wte={kernelName:el,backendName:"wasm",kernelFunc:mw};function Vte(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var Ute={kernelName:vc,backendName:"wasm",kernelFunc:Vte},k2;function Gte(e){k2=e.wasm.cwrap(nl,null,["number","number","number","number","number","number"])}function Hte(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,c,u]=a.shape;return k2(s,o,l,c,u,i),r}var jte={kernelName:nl,backendName:"wasm",kernelFunc:Hte,setupFunc:Gte},qte=Cn(Hs),Kte=!1,Xte=gn(js,Kte),I2;function Yte(e){I2=e.wasm.cwrap(qs,null,["number","number","number","number","number","number","number"])}function Zte(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:c}=n,u=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,d=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=c!=null?t.dataIdMap.get(c.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(k.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return I2(u,p,d,h,m,r,g),f}var Jte={kernelName:qs,backendName:"wasm",setupFunc:Yte,kernelFunc:Zte},N2;function Qte(e){N2=e.wasm.cwrap(Ti,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 ene(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d),g=Dp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,F=f.padInfo.right,$=f.padInfo.bottom,P=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,j=f.inChannels,X=f.padInfo.type==="SAME"?1:0,K=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return N2(y,K,ne,J,b,N,T,x,C,F,$,P,X,B,W,G,q,j,v,g,oe,m||0,Q),se}var tne={kernelName:Ti,backendName:"wasm",setupFunc:Qte,kernelFunc:ene},T2;function nne(e){T2=e.wasm.cwrap(Si,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 ane(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:c,dilations:u,dataFormat:p,dimRoundingMode:d,activation:h,leakyreluAlpha:m}=n,f=_.computeConv2DInfo(r.shape,s.shape,l,u,c,d,!0),g=Dp[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,v=f.outChannels,x=0;if(i!=null){let ae=a.dataIdMap.get(i.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==v)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${v})`);x=ae.id}let N=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,F=f.padInfo.right,$=f.padInfo.bottom,P=f.padInfo.left,B=f.dilationHeight,W=f.dilationWidth,G=f.strideHeight,q=f.strideWidth,j=f.inChannels,X=f.padInfo.type==="SAME"?1:0,K=f.batchSize,ne=f.inHeight,J=f.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let se=a.makeOutput(f.outShape,"float32"),Q=a.dataIdMap.get(se.dataId).id,oe=o==null?0:a.dataIdMap.get(o.dataId).id;return T2(y,K,ne,J,b,N,T,x,C,F,$,P,X,B,W,G,q,j,v,g,oe,m||0,Q),se}var rne={kernelName:Si,backendName:"wasm",setupFunc:nne,kernelFunc:ane},S2;function sne(e){S2=e.wasm.cwrap(rl,null,["number","number","number","number","number","number","array","number"])}function ine(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Ry.prepareAndValidate(a,r),c=t.makeOutput(s,a.dtype);if(i===0)return c;let u=r.shape,p=u[u.length-1],d=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(c.dataId).id;return S2(d,Vn[a.dtype],h,i,p,o,m,f),c}var one={kernelName:rl,backendName:"wasm",setupFunc:sne,kernelFunc:ine},C2;function lne(e){C2=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function une(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=k.parseAxisParam(i,r.shape)[0],c=_.segment_util.collectGatherOpShapeInfo(r,s,l,o),u=Oa({inputs:{x:r},attrs:{shape:[c.batchSize,c.outerSize,c.dimSize,c.sliceSize]},backend:t}),p=k.sizeFromShape(s.shape),d=Oa({inputs:{x:s},attrs:{shape:[c.batchSize,p/c.batchSize]},backend:t}),h=[c.batchSize,c.outerSize,p/c.batchSize,c.sliceSize],m=t.makeOutput(h,r.dtype);if(k.sizeFromShape(r.shape)===0)return m;let f=u.shape.length-1,g=t.dataIdMap.get(u.dataId).id,y=t.dataIdMap.get(d.dataId).id,b=t.dataIdMap.get(m.dataId).id,v=new Uint8Array(new Int32Array(k.computeStrides(u.shape)).buffer),x=new Uint8Array(new Int32Array(k.computeStrides(h)).buffer);return C2(g,Vn[r.dtype],v,f,y,c.batchSize,x,b),t.disposeData(u.dataId),t.disposeData(d.dataId),m.shape=c.outputShape,m}var cne={kernelName:al,backendName:"wasm",setupFunc:lne,kernelFunc:une},pne=!1,dne=gn(sl,pne,"bool"),hne=!1,mne=gn(Ks,hne,"bool"),_2;function fne(e){_2=e.wasm.cwrap(Ys,null,["number","number","number"])}function gne(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,t.dtype);if(k.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;_2(r,n,i)}return s}var yne={kernelName:Ys,backendName:"wasm",setupFunc:fne,kernelFunc:gne},bne=!1,xne=gn(ul,bne,"bool"),vne=!1,wne=gn(cl,vne,"bool"),kne=Cn(Zs),Ine=!1,Nne=gn(dl,Ine,"bool"),E2;function Tne(e){E2=e.wasm.cwrap(Js,null,["number, number, number"])}function Sne(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:u,originalAxes:p,inputWasTransposed:d}=Cu(i,r,t);if(d){let b=t.dataIdMap.get(c.dataId).id;l=c,o=b}let h=l.shape.length;_.assertAxesAreInnerMostDims("max",u,h);let[m,f]=_.computeOutAndReduceShapes(l.shape,u),g=k.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(k.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;E2(o,g,b)}if(d&&t.disposeData(c.dataId),s){let b=_.expandShapeToKeepDim(y.shape,p);y.shape=b}return y}var Cne={kernelName:Js,backendName:"wasm",setupFunc:Tne,kernelFunc:Sne},_ne=!1,Ene=gn(Qs,_ne),A2;function Ane(e){A2=e.wasm.cwrap(ei,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Fne(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id,{filterSize:i,strides:o,pad:l,dimRoundingMode:c}=n,u=_.computePool2DInfo(r.shape,i,o,1,l,c),p=u.filterHeight,d=u.filterWidth,h=u.padInfo.top,m=u.padInfo.right,f=u.padInfo.bottom,g=u.padInfo.left,y=u.dilationHeight,b=u.dilationWidth,v=u.strideHeight,x=u.strideWidth,N=u.inChannels,T=u.outChannels;if(u.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${u.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(u.outShape,"float32"),F=a.dataIdMap.get(C.dataId).id;return A2(s,r.shape[0],r.shape[1],r.shape[2],p,d,h,m,f,g,y,b,v,x,N,T,F),C}var $ne={kernelName:ei,backendName:"wasm",setupFunc:Ane,kernelFunc:Fne},F2;function Dne(e){F2=e.wasm.cwrap(ti,null,["number, number, number"])}function Rne(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t),m=p;if(h){let x=t.dataIdMap.get(u.dataId).id;x!==o&&(c=u,l=x,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("mean",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=c;c.dtype!=="float32"&&(b=bf({backend:t,inputs:{x:c},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let v=t.makeOutput(f,"float32");if(k.sizeFromShape(c.shape)!==0){let x=t.dataIdMap.get(v.dataId).id;F2(l,y,x)}if(h&&t.disposeData(u.dataId),s){let x=_.expandShapeToKeepDim(v.shape,d);v.shape=x}return c.dtype!=="float32"&&t.disposeData(b.dataId),v}var Mne={kernelName:ti,backendName:"wasm",setupFunc:Dne,kernelFunc:Rne},$2;function Pne(e){$2=e.wasm.cwrap(ni,null,["number, number, number"])}function One(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t);if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v)}let m=c.shape.length;_.assertAxesAreInnerMostDims("min",p,m);let[f,g]=_.computeOutAndReduceShapes(c.shape,p),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;$2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var Lne={kernelName:ni,backendName:"wasm",setupFunc:Pne,kernelFunc:One},zne=!1,Bne=gn(ai,zne),Wne=!0,Vne=gn(ri,Wne),Une=Cn(ml);function fw(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var D2;function Gne(e){D2=e.wasm.cwrap(gl,"number",["number","number","number","number","number"])}function Hne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,c=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(l.dataId).id,p=D2(c,u,s,r,i),{pSelectedIndices:d,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=fw(t,p);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",d)}var jne={kernelName:gl,backendName:"wasm",setupFunc:Gne,kernelFunc:Hne},R2;function qne(e){R2=e.wasm.cwrap(yl,"number",["number","number","number","number","number","bool"])}function Kne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=R2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=fw(t,d);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var Xne={kernelName:yl,backendName:"wasm",setupFunc:qne,kernelFunc:Kne},M2;function Yne(e){M2=e.wasm.cwrap(bl,"number",["number","number","number","number","number","number"])}function Zne(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:c}=n,u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(c.dataId).id,d=M2(u,p,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=fw(t,d);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var Jne={kernelName:bl,backendName:"wasm",setupFunc:Yne,kernelFunc:Zne},Qne=!1,eae=gn(fl,Qne,"bool"),P2;function tae(e){P2=e.wasm.cwrap(si,null,["number","number","number","number","number"])}function nae(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{depth:s,onValue:i,offValue:o}=a,l=n.makeOutput([...r.shape,s],"int32"),c=n.dataIdMap.get(l.dataId).id,u=n.dataIdMap.get(r.dataId).id;return P2(u,s,i,o,c),l}var aae={kernelName:si,backendName:"wasm",setupFunc:tae,kernelFunc:nae};function rae(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var sae={kernelName:xl,backendName:"wasm",kernelFunc:rae};function iae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return mw({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(l=>{k.assertShapesMatch(s,l.shape,"All tensors passed to stack must have matching shapes"),k.assert(i===l.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=t.map(l=>mw({inputs:{input:l},backend:n,attrs:{dim:r}}));return f2({inputs:o,backend:n,attrs:{axis:r}})}var oae={kernelName:vl,backendName:"wasm",kernelFunc:iae},O2;function lae(e){O2=e.wasm.cwrap(ii,null,["number","array","number","number","array","array","number","number"])}function uae(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),u=a.map(m=>m[0]),p=a.map(m=>m[1]),d=new Uint8Array(new Int32Array(u).buffer),h=new Uint8Array(new Int32Array(p).buffer);return O2(i,c,t.shape.length,Vn[t.dtype],d,h,r,l),o}var cae={kernelName:ii,backendName:"wasm",kernelFunc:uae,setupFunc:lae},pae=!1,dae=gn(oi,pae),L2;function hae(e){L2=e.wasm.cwrap(li,null,["number","number","number"])}function mae(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=n.makeOutput(a.shape,"float32"),l=n.dataIdMap.get(o.dataId).id;return L2(s,i,l),o}var fae={kernelName:li,backendName:"wasm",setupFunc:hae,kernelFunc:mae},z2;function gae(e){z2=e.wasm.cwrap(wl,null,["number","number","number","number"])}function yae(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("prod",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;z2(l,y,Vn[b.dtype],v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var bae={kernelName:wl,backendName:"wasm",setupFunc:gae,kernelFunc:yae},xae=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=zv(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},vae={kernelName:Sc,backendName:"wasm",kernelFunc:xae},wae=!0,kae=gn(Us,wae),Iae=Cn(ui),Nae=Cn(pi),B2;function Tae(e){B2=e.wasm.cwrap(ci,null,["number","number","number","number","number","number","number","number","number","number"])}function Sae(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,c]=o,[u,p,d,h]=r.shape,m=[u,l,c,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=bf({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(k.sizeFromShape(r.shape)===0)return b;let v=t.dataIdMap.get(b.dataId).id;return B2(y,u,p,d,h,l,c,s?1:0,i?1:0,v),g!=null&&t.disposeData(g.dataId),b}var Cae={kernelName:ci,backendName:"wasm",setupFunc:Tae,kernelFunc:Sae},W2;function _ae(e){W2=e.wasm.cwrap(di,null,["number","array","number","array","number","number"])}function Eae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=k.parseAxisParam(s,r.shape);if(r.shape.length===0)return gf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(r.shape).buffer);W2(l,u,i.length,p,r.shape.length,c);let d=Oa({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),d}var Aae={kernelName:di,backendName:"wasm",kernelFunc:Eae,setupFunc:_ae},V2;function Fae(e){V2=e.wasm.cwrap(Ol,null,["number","number","number","number","number","number","number","number","array","number","number"])}function $ae(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),c=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(l.dataId).id,[p,d,h,m]=r.shape,[f,g]=_.getImageCenter(o,d,h),y=i===0,b=255,v=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],x=new Uint8Array(new Int32Array(v).buffer);return V2(c,p,d,h,m,s,f,g,x,v.length,u),l}var Dae={kernelName:Ol,backendName:"wasm",kernelFunc:$ae,setupFunc:Fae},Rae=Cn(hi),Mae=Cn(mi),U2;function Pae(e){U2=e.wasm.cwrap(Nl,null,["number","number","number","number","number","number","array","number","number"])}function Oae(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(k.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:c,sliceSize:u,strides:p,outputSize:d}=My.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(p).buffer),g=t.dataIdMap.get(o.dataId).id;return U2(h,m,Vn[s.dtype],l,c,u,f,d,g),o}var Lae={kernelName:Nl,backendName:"wasm",setupFunc:Pae,kernelFunc:Oae},G2;function zae(e){G2=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Bae(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,c=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(c.dataId).id,p=a.shape.length,d=r.shape.length,h=p===0||p>1||d===1?1:k.sizeFromShape(r.shape.slice(1));return G2(i,o,l,h,u),c}var Wae={kernelName:Tl,backendName:"wasm",kernelFunc:Bae,setupFunc:zae},H2;function Vae(e){H2=e.wasm.cwrap(gi,null,["number","number"])}function Uae(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return k.sizeFromShape(r.shape)===0||H2(a,s),r}var Gae={kernelName:"Sigmoid",backendName:"wasm",setupFunc:Vae,kernelFunc:Uae},Hae=Cn(fi);function xf(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=pn.parseSliceParams(t,n,a),o=pn.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),c=r.makeOutput(i,t.dtype),u=k.computeStrides(t.shape),p=r.dataIdMap.get(c.dataId);if(o){let m=pn.computeFlatOffset(s,u);return t.dtype==="string"?p.stringBytes=l.slice(m,m+k.sizeFromShape(i)):r.typedArrayFromHeap(c).set(l.subarray(m,m+k.sizeFromShape(i))),c}if(t.dtype==="string"){let m=Zm(l,s,i,t.shape,t.dtype);return p.stringBytes=m,c}let d=r.typedArrayFromHeap(c),h=t.shape.length;if(h===2)jae(l,u[0],d,s,i);else if(h===3)qae(l,u[0],u[1],d,s,i);else if(h===4)Kae(l,u[0],u[1],u[2],d,s,i);else{let m=Zm(l,s,i,t.shape,t.dtype);d.set(m)}return c}function jae(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let c=i;c{let d=[...u];d[o]=p;let h=xf({inputs:{x:r},attrs:{begin:c,size:d},backend:a});return c[o]+=p,h})}var ere={kernelName:Fl,backendName:"wasm",kernelFunc:Qae},tre=Cn(yi),nre=Cn(Ec),are=!0,rre=gn(vi,are),q2;function sre(e){q2=e.wasm.cwrap(jr,null,["number","number","number"])}function ire(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return q2(i,r,l),o}var ore={kernelName:jr,backendName:"wasm",setupFunc:sre,kernelFunc:ire},K2;function lre(e){K2=e.wasm.cwrap($l,null,["number","array","number","array","array","array","array","array","number","number"])}function ure(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o}=a;o==null&&(o=new Array(s.length));let{beginMask:l,endMask:c,ellipsisMask:u,newAxisMask:p,shrinkAxisMask:d}=a,h=_.slice_util.maskToAxes(u);if(h.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(u!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(u!==0&&d!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let m=r.shape.length-s.length,f=_.slice_util.maskToAxes(p),g=r.shape.slice();f.forEach(P=>{s[P]=0,i[P]=1,g.splice(P,0,1)});let y=Oa({inputs:{x:r},attrs:{shape:g},backend:t}),{begin:b,end:v,strides:x}=_.slice_util.getNormalizedAxes(y.shape,h,m,s,i,o,l,c,u);s=b,i=v,o=x;let N=_.slice_util.maskToAxes(d);N.forEach(P=>{i[P]=s[P]+1,o[P]=1});let T=_.slice_util.computeOutShape(s,i,o),C=T.filter((P,B)=>N.indexOf(B)===-1);if(o.every(P=>P===1)){let P=xf({inputs:{x:r},attrs:{begin:s,size:T},backend:t});t.disposeData(y.dataId);let B=Oa({inputs:{x:P},attrs:{shape:C},backend:t});return t.disposeData(P.dataId),B}let F=t.makeOutput(C,"float32");if(!C.some(P=>P===0)){let P=t.dataIdMap.get(y.dataId).id,B=new Uint8Array(new Int32Array(k.computeStrides(y.shape)).buffer),W=new Uint8Array(new Int32Array(s).buffer),G=new Uint8Array(new Int32Array(i).buffer),q=new Uint8Array(new Int32Array(o).buffer),j=new Uint8Array(new Int32Array(C).buffer),X=new Uint8Array(new Int32Array(k.computeStrides(C)).buffer),K=t.dataIdMap.get(F.dataId).id;K2(P,B,y.shape.length,W,G,q,j,X,C.length,K)}t.disposeData(y.dataId);let $=Oa({inputs:{x:F},attrs:{shape:C},backend:t});return t.disposeData(F.dataId),$}var cre={kernelName:$l,backendName:"wasm",setupFunc:lre,kernelFunc:ure},pre=!0,dre=gn(wi,pre),X2;function hre(e){X2=e.wasm.cwrap(bi,null,["number, number, number"])}function mre(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,c=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:h}=Cu(i,r,t),m=p;if(h){let v=t.dataIdMap.get(u.dataId).id;v!==o&&(c=u,l=v,m=_.getInnerMostAxes(m.length,c.shape.length))}_.assertAxesAreInnerMostDims("sum",m,c.shape.length);let[f,g]=_.computeOutAndReduceShapes(c.shape,m),y=k.sizeFromShape(g),b=t.makeOutput(f,c.dtype);if(k.sizeFromShape(c.shape)!==0){let v=t.dataIdMap.get(b.dataId).id;X2(l,y,v)}if(h&&t.disposeData(u.dataId),s){let v=_.expandShapeToKeepDim(b.shape,d);b.shape=v}return b}var fre={kernelName:bi,backendName:"wasm",setupFunc:hre,kernelFunc:mre},gre=Cn(ki),Y2;function yre(e){Y2=e.wasm.cwrap(Hr,null,["number","array","number","array","number","number"])}function bre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let d=0;d{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let c=t.makeOutput(l,a.dtype),u=t.dataIdMap.get(c.dataId).id,p=t.makeOutput(l,"int32"),d=t.dataIdMap.get(p.dataId).id;return Z2(i,o,a.shape.length,Vn[a.dtype],r,s,u,d),[c,p]},kre={kernelName:Rl,backendName:"wasm",setupFunc:vre,kernelFunc:wre};function Ire(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),c=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var Nre={kernelName:Ml,backendName:"wasm",kernelFunc:Ire};function Tre(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var Sre={kernelName:Pl,backendName:"wasm",kernelFunc:Tre},Cre=[jee,Kee,Zee,ste,lte,dte,hte,mte,yte,bte,wte,Nte,Tte,_te,Fte,Rte,Ote,zte,Bte,Wte,Ute,jte,qte,Xte,Hee,Jte,tne,rne,one,cne,dne,mne,Jee,yne,xne,wne,kne,Nne,Cne,Ene,$ne,Mne,Lne,Bne,Vne,Une,jne,Xne,Jne,eae,aae,sae,oae,cae,dae,fae,bae,vae,kae,Iae,Nae,ute,Cae,Aae,Dae,Mae,Rae,Lae,Wae,Gae,Hae,Xae,Jae,ere,tre,nre,rre,ore,cre,dre,fre,gre,xre,kre,nte,Nre,Sre];for(let e of Cre)$c(e);var gw=ee();gw.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])));gw.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(gw.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 J2=Po(eA()),_re='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}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;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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["dynCall_ii"](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"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){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.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");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()}}}}',Ere=Po(tA()),Q2=class extends pc{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Rd(this,qa())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=k.now();return e(),{kernelMs:k.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let c=t;this.dataIdMap.set(e,{id:s,stringBytes:c,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=k.sizeFromShape(n),o=i*k.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:n,shape:a,stringBytes:r}=this.dataIdMap.get(e);if(n==="string")return r;let s=this.wasm.HEAPU8.slice(t,t+k.sizeFromShape(a)*k.bytesPerElement(n));return Are(s.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(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=k.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=k.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function Fre(e){return(t,n)=>(k.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance)})})}),{})}function eC(e,t,n){if(vf!=null)return vf;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Rp!=null&&Rp[a]!=null?Rp[a]:n+a}async function $re(){let[e,t]=await Promise.all([ee().getAsync("WASM_HAS_SIMD_SUPPORT"),ee().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(l,c)=>{if(l.endsWith(".worker.js")){let u=_re,p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return l.endsWith(".wasm")?eC(e,t,Mp!=null?Mp:c):c+l},yw&&(r.instantiateWasm=Fre(eC(e,t,Mp!=null?Mp:"")));let s;t&&e&&vf==null?(s=J2.default(r),s.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+J2.default.toString()],{type:"text/javascript"})):s=Ere.default(r);let i=null;s.tfjs={init:s.cwrap("init",null,[]),registerTensor:s.cwrap("register_tensor",null,["number","number","number"]),disposeData:s.cwrap("dispose_data",i,["number"]),dispose:s.cwrap("dispose",i,[])};let o=!1;s.onRuntimeInitialized=()=>{o=!0,Pp=!1,n({wasm:s})},s.onAbort=()=>{o||Pp||(Pp=!0,a({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"}))}})}function Are(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 Dre=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],vf=null,Mp=null,Rp={},Pp=!1,yw=!1;function Rre(e,t=!1){if(Wy("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Pp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");vf=e,yw=t}function Mre(e,t=!1){if(Pp)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")Mp=e;else{Rp=e;let n=Dre.filter(a=>Rp[a]==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.`)}yw=t}var Pre="3.1.0",Ore=2;Ch("wasm",async()=>{let{wasm:e}=await $re();return new Q2(e)},Ore);var jf={};uc(jf,{AnchorPosition:()=>cr,DrawBox:()=>Ef,DrawBoxOptions:()=>Ew,DrawFaceLandmarks:()=>Fw,DrawFaceLandmarksOptions:()=>Aw,DrawTextField:()=>bs,DrawTextFieldOptions:()=>Op,drawContour:()=>Er,drawDetections:()=>jre,drawFaceExpressions:()=>qre,drawFaceLandmarks:()=>Kre});function Er(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var wf={};uc(wf,{computeReshapedDimensions:()=>vw,getCenterPoint:()=>ao,isDimensions:()=>If,isEven:()=>kf,isFloat:()=>xw,isTensor:()=>to,isTensor1D:()=>Lre,isTensor2D:()=>bw,isTensor3D:()=>Ar,isTensor4D:()=>ta,isValidNumber:()=>La,isValidProbablitiy:()=>_u,range:()=>lr,round:()=>no});var ln=class{constructor(t,n){if(!La(t)||!La(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new ln(1/this.width,1/this.height)}};function to(e,t){return e instanceof Ae&&e.shape.length===t}function Lre(e){return to(e,1)}function bw(e){return to(e,2)}function Ar(e){return to(e,3)}function ta(e){return to(e,4)}function xw(e){return e%1!=0}function kf(e){return e%2==0}function no(e,t=2){let n=10**t;return Math.floor(e*n)/n}function If(e){return e&&e.width&&e.height}function vw({width:e,height:t},n){let a=n/Math.max(t,e);return new ln(Math.round(e*a),Math.round(t*a))}function ao(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function lr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function La(e){return!!e&&e!==Infinity&&e!==-Infinity&&!Number.isNaN(e)||e===0}function _u(e){return La(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var ot=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(La)}static assertIsValidBox(t,n,a=!1){if(!ot.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(La),s=[a.x,a.y,a.width,a.height].every(La);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,c]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ot.assertIsValidBox({x:i,y:o,width:l,height:c},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=c}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ot({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ot({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-p+n+a,p=n),d>t&&(l=-d+t+r,d=t),c<1&&(l=2-c,c=1),u<1&&(l=2-u,u=1),{dy:i,edy:l,dx:s,edx:o,y:u,ey:d,x:c,ex:p,w:a,h:r}}calibrate(t){return new ot({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ro=class extends ot{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Fr=class{constructor(t,n,a,r,s){this._imageDims=new ln(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ot(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ot(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Fr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends Fr{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function Nf(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function Tf(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let c=0;cl[u]<=n)}return s}function wa(e,t){return D(()=>{let[n,a,r]=t,s=kn([...e.shape.slice(0,3),1],n,"float32"),i=kn([...e.shape.slice(0,3),1],a,"float32"),o=kn([...e.shape.slice(0,3),1],r,"float32"),l=Qe([s,i,o],3);return fe(e,l)})}function Cf(e,t=!1){return D(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=d=>{let h=e.shape.slice();return h[i]=d,kn(h,0,"float32")},l=o(s),c=r-l.shape[i],p=[t&&c?o(c):null,e,l].filter(d=>!!d).map(d=>ce(d,"float32"));return Qe(p,i)})}function tC(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Eu(e){return 1/(1+Math.exp(-e))}function nC(e){return Math.log(e/(1-e))}var so=class extends ot{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var zre=.5,Bre=.43,Wre=.45,Un=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new ln(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new ot(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=p=>r.sub(p).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Wre),l=ao(t),c=Math.floor(Math.max(0,l.x-zre*o)),u=Math.floor(Math.max(0,l.y-Bre*o));return new so(c,u,Math.min(o,this.imageWidth+c),Math.min(o,this.imageHeight+u))}alignMinBbox(t){let n=Tf(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var ww=class extends Un{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],ao([t[3],t[4]])]}};var io=class extends Un{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(ao)}};var Au=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${no(this.distance)})`:""}`}};var Fu=class extends ot{static assertIsValidLabeledBox(t,n){if(ot.assertIsValidBox(t,n),!La(t.label))throw new Error(`${n} - expected property label (${t.label}) to be a number`)}constructor(t,n){super(t);this._label=n}get label(){return this._label}};var ur=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new ur(t.label,n)}};var kw=class extends Fu{static assertIsValidPredictedBox(t,n){if(Fu.assertIsValidLabeledBox(t,n),!_u(t.score)||!_u(t.classScore))throw new Error(`${n} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,n,a,r){super(t,n);this._score=a,this._classScore=r}get score(){return this._score}get classScore(){return this._classScore}};function za(e){return e.detection instanceof yt}function gs(e,t){return{...e,...{detection:t}}}function Iw(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function _f(e){let t="";if(!e)try{e=require("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Nw(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},r=global.fetch,s=_f();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:n,createImageElement:a,fetch:r,...s}}function Tw(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var Sw=RE(rC()),Jt;function Gre(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function Cw(e){Jt=e}function _w(){return Tw()?Cw(Iw()):Sw.isNodejs()?Cw(Nw()):null}function Hre(e){if(Jt||_w(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=Jt.Canvas,Image:n=Jt.Image}=e;Jt.Canvas=t,Jt.Image=n,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new n),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}var rt={getEnv:Gre,setEnv:Cw,initialize:_w,createBrowserEnv:Iw,createFileSystem:_f,createNodejsEnv:Nw,monkeyPatch:Hre,isBrowser:Tw,isNodejs:Sw.isNodejs};_w();function ys(e){return!rt.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function yn(e){let{Canvas:t,CanvasRenderingContext2D:n}=rt.getEnv();if(e instanceof n)return e;let a=ys(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var cr;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(cr||(cr={}));var Op=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||cr.TOP_LEFT,this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},bs=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof bs?t.text:t,this.anchor=n,this.options=new Op(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+p.x,f=l+p.y+(h+1)*i;a.fillText(d,m,f)})}};var Ew=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:cr.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Op({...i,...s})}},Ef=class{constructor(t,n={}){this.box=new ot(t),this.options=new Ew(n)}draw(t){let n=yn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:c}=this.options;c&&new bs([c],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function jre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:za(a)?a.detection.score:void 0,s=a instanceof yt?a.box:za(a)?a.detection.box:new ot(a),i=r?`${no(r)}`:void 0;new Ef(s,{label:i}).draw(e)})}function $u(e){let{Image:t,Video:n}=rt.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function Af(e){return new Promise((t,n)=>{if(e instanceof rt.getEnv().Canvas||$u(e))return t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function Ff(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=rt.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function xs(e){let{Image:t,Video:n}=rt.getEnv();return e instanceof t?new ln(e.naturalWidth,e.naturalHeight):e instanceof n?new ln(e.videoWidth,e.videoHeight):new ln(e.width,e.height)}function oo({width:e,height:t}){let{createCanvasElement:n}=rt.getEnv(),a=n();return a.width=e,a.height=t,a}function Du(e,t){let{ImageData:n}=rt.getEnv();if(!(e instanceof n)&&!$u(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||xs(e),s=oo({width:a,height:r});return e instanceof n?yn(s).putImageData(e,0,0):yn(s).drawImage(e,0,0,a,r),s}async function $f(e,t){let n=t||rt.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(ta(e)?1:0),i=D(()=>e.as3D(a,r,s).toInt());return await Ai.toPixels(i,n),i.dispose(),n}function Lp(e){let{Image:t,Canvas:n,Video:a}=rt.getEnv();return e instanceof t||e instanceof n||e instanceof a}function Df(e,t,n=!1){let{Image:a,Canvas:r}=rt.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let s=xs(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,c=oo({width:t,height:t}),u=e instanceof r?e:Du(e),p=Math.abs(o-l)/2,d=n&&o{if(Ar(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(ta(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof rt.getEnv().Canvas?a:Du(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return lr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return vw({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,D(()=>{let a=lr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Ae){let o=ta(i)?i:i.expandDims();return o=Cf(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=Qa.resizeBilinear(o,[t,t])),o.as3D(t,t,3)}if(i instanceof rt.getEnv().Canvas)return Ai.fromPixels(Df(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>ce(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function gt(e){if(e instanceof pr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(ys);return a.forEach((r,s)=>{if(!Lp(r)&&!Ar(r)&&!ta(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ta(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>Lp(r)&&Af(r))),new pr(a,Array.isArray(e))}async function lo(e,t){let{Canvas:n}=rt.getEnv(),a=e;if(!(e instanceof n)){let i=await gt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await $f(o)}let r=yn(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:c})=>{let u=oo({width:l,height:c});return yn(u).putImageData(r.getImageData(i,o,l,c),0,0),u})}async function uo(e,t){if(!Ar(e)&&!ta(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ta(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return D(()=>{let[n,a,r]=e.shape.slice(ta(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).map(({x:o,y:l,width:c,height:u})=>Ql(e.as3D(n,a,r),[l,o,0],[u,c,r]))})}async function vs(e,t){let{fetch:n}=rt.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function sC(e){let t=await vs(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return Ff(n)}async function Rf(e){return(await vs(e)).json()}async function iC(e){return new Float32Array(await(await vs(e)).arrayBuffer())}function Mf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Pf(e,t){let{manifestUri:n,modelBaseUri:a}=Mf(e,t),r=await Rf(n);return Ht.loadWeights(r,a)}function oC(e,t,n=!1){let{width:a,height:r}=n?xs(t):t;return e.width=a,e.height=r,{width:a,height:r}}var Qt=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof qr)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof qr))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=Kn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await Pf(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=rt.getEnv(),{manifestUri:a,modelBaseUri:r}=Mf(t,this.getDefaultModelName()),s=c=>Promise.all(c.map(u=>n(u).then(p=>p.buffer))),i=Ht.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Ae))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function _n(e,t,n){return D(()=>{let a=Oi(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Z(a,t.bias),a})}function Of(e,t,n=!1){return D(()=>{let a=Ye(n?Z(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):_n(e,t.conv0,[2,2])),r=_n(a,t.conv1,[1,1]),s=Ye(Z(a,r)),i=_n(s,t.conv2,[1,1]);return Ye(Z(a,Z(r,i)))})}function zp(e,t,n=!1,a=!0){return D(()=>{let r=Ye(n?Z(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):_n(e,t.conv0,a?[2,2]:[1,1])),s=_n(r,t.conv1,[1,1]),i=Ye(Z(r,s)),o=_n(i,t.conv2,[1,1]),l=Ye(Z(r,Z(s,o))),c=_n(l,t.conv3,[1,1]);return Ye(Z(r,Z(s,Z(o,c))))})}function co(e,t,n="same",a=!1){return D(()=>{let r=Z(At(e,t.filters,[1,1],n),t.bias);return a?Ye(r):r})}function bn(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function Ru(e,t){return(n,a,r,s)=>{let i=_a(e(n*a*r*r),[r,r,n,a]),o=nt(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Lf(e,t){return(n,a,r)=>{let s=Ca(e(n*a),[n,a]),i=nt(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var zf=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function Mu(e,t){return(n,a,r)=>{let s=_a(e(3*3*n),[3,3,n,1]),i=_a(e(n*a),[1,1,n,a]),o=nt(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new zf(s,i,o)}}function Pu(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new zf(n,a,r)}}function Gn(e,t){return(n,a,r)=>{let s=e[n];if(!to(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function xn(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Bf(e,t){let n=Ru(e,t),a=Mu(e,t);function r(i,o,l,c=!1){let u=c?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),p=a(o,o,`${l}/conv1`),d=a(o,o,`${l}/conv2`);return{conv0:u,conv1:p,conv2:d}}function s(i,o,l,c=!1){let{conv0:u,conv1:p,conv2:d}=r(i,o,l,c),h=a(o,o,`${l}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function lC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock4Params:r}=Bf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Wf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Vf(e,t){let n=Gn(e,t),a=Wf(n),r=Pu(n);function s(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`);return{conv0:c,conv1:u,conv2:p}}function i(o,l=!1){let c=l?a(`${o}/conv0`):r(`${o}/conv0`),u=r(`${o}/conv1`),p=r(`${o}/conv2`),d=r(`${o}/conv3`);return{conv0:c,conv1:u,conv2:p,conv3:d}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function uC(e){let t=[],{extractDenseBlock4Params:n}=Vf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return bn(e,t),{params:a,paramMappings:t}}var Bp=class extends Qt{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(de(255)),i=zp(s,n.dense0,!0);return i=zp(i,n.dense1),i=zp(i,n.dense2),i=zp(i,n.dense3),i=Yn(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return uC(t)}extractParams(t){return lC(t)}};function Wp(e,t){return D(()=>Z(ze(e,t.weights),t.bias))}function cC(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=xn(e),o=Lf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function pC(e){let t=[],n=Gn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return bn(e,t),{params:r,paramMappings:t}}function Uf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var Vp=class extends Qt{constructor(t,n){super(t);this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof pr?this.faceFeatureExtractor.forwardInput(t):t;return Wp(a.as2D(a.shape[0],-1),n.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return cC(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=Uf(t);return this.faceFeatureExtractor.loadFromWeightMap(n),pC(a)}extractParams(t){let n=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),r=a*n+a,s=t.slice(0,t.length-r),i=t.slice(t.length-r);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var Gf=["neutral","happy","sad","angry","fearful","disgusted","surprised"],$r=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Gf.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return Gf.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Up=class extends Vp{constructor(t=new Bp){super("FaceExpressionNet",t)}forwardInput(t){return D(()=>Sa(this.runNet(t)))}async forward(t){return this.forwardInput(await gt(t))}async predictExpressions(t){let n=await gt(t),a=await this.forwardInput(n),r=await Promise.all(dt(a).map(async i=>{let o=await i.data();return i.dispose(),o}));a.dispose();let s=r.map(i=>new $r(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Hf(e){return e.expressions instanceof $r}function Gp(e,t){return{...e,...{expressions:t}}}function qre(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof $r?s:Hf(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(p=>p.probability>n),c=za(s)?s.detection.box.bottomLeft:a||new De(0,0);new bs(l.map(p=>`${p.expression} (${no(p.probability)})`),c).draw(e)})}function ws(e){return za(e)&&e.landmarks instanceof Un&&e.unshiftedLandmarks instanceof Un&&e.alignedRect instanceof yt}function po(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i}}}var Aw=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},Fw=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new Aw(n)}draw(t){let n=yn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof io&&(n.strokeStyle=i,n.lineWidth=s,Er(n,this.faceLandmarks.getJawOutline()),Er(n,this.faceLandmarks.getLeftEyeBrow()),Er(n,this.faceLandmarks.getRightEyeBrow()),Er(n,this.faceLandmarks.getNose()),Er(n,this.faceLandmarks.getLeftEye(),!0),Er(n,this.faceLandmarks.getRightEye(),!0),Er(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let c=u=>{n.beginPath(),n.arc(u.x,u.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(c)}}};function Kre(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof Un?a:ws(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Fw(r).draw(e)})}var dC="0.12.6";function Xre(e,t){let n=Ru(e,t),a=Mu(e,t);function r(i,o,l){let c=a(i,o,`${l}/separable_conv0`),u=a(o,o,`${l}/separable_conv1`),p=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:u,expansion_conv:p}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),c=a(i,i,`${o}/separable_conv1`),u=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function hC(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=xn(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Xre(a,n),c=s(3,32,3,"entry_flow/conv_in"),u=o(32,64,"entry_flow/reduction_block_0"),p=o(64,128,"entry_flow/reduction_block_1"),d={conv_in:c,reduction_block_0:u,reduction_block_1:p},h={};lr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:d,middle_flow:h,exit_flow:g}}}function Yre(e,t){let n=Gn(e,t),a=Wf(n),r=Pu(n);function s(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:u}}function i(o){let l=r(`${o}/separable_conv0`),c=r(`${o}/separable_conv1`),u=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:u}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function mC(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Yre(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),c=s("entry_flow/reduction_block_1"),u={conv_in:o,reduction_block_0:l,reduction_block_1:c},p={};lr(t,0,1).forEach(f=>{p[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let d=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:d,separable_conv:h};return bn(e,n),{params:{entry_flow:u,middle_flow:p,exit_flow:m},paramMappings:n}}function fC(e,t,n){return Z(At(e,t.filters,n,"same"),t.bias)}function $w(e,t,n=!0){let a=n?Ye(e):e;return a=_n(a,t.separable_conv0,[1,1]),a=_n(Ye(a),t.separable_conv1,[1,1]),a=Ft(a,[3,3],[2,2],"same"),a=Z(a,fC(e,t.expansion_conv,[2,2])),a}function Zre(e,t){let n=_n(Ye(e),t.separable_conv0,[1,1]);return n=_n(Ye(n),t.separable_conv1,[1,1]),n=_n(Ye(n),t.separable_conv2,[1,1]),n=Z(n,e),n}var Dw=class extends Qt{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyXception - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(de(256)),i=Ye(fC(s,n.entry_flow.conv_in,[2,2]));return i=$w(i,n.entry_flow.reduction_block_0,!1),i=$w(i,n.entry_flow.reduction_block_1),lr(this._numMainBlocks,0,1).forEach(o=>{i=Zre(i,n.middle_flow[`main_block_${o}`])}),i=$w(i,n.exit_flow.reduction_block),i=Ye(_n(i,n.exit_flow.separable_conv,[1,1])),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return mC(t,this._numMainBlocks)}extractParams(t){return hC(t,this._numMainBlocks)}};function gC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),r=Lf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function yC(e){let t=[],n=Gn(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return bn(e,t),{params:r,paramMappings:t}}var dr;(function(e){e.FEMALE="female",e.MALE="male"})(dr||(dr={}));var Hp=class extends Qt{constructor(t=new Dw(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:n}=this;if(!n)throw new Error(`${this._name} - load model before inference`);return D(()=>{let a=t instanceof pr?this.faceFeatureExtractor.forwardInput(t):t,r=Yn(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),s=Wp(r,n.fc.age).as1D(),i=Wp(r,n.fc.gender);return{age:s,gender:i}})}forwardInput(t){return D(()=>{let{age:n,gender:a}=this.runNet(t);return{age:n,gender:Sa(a)}})}async forward(t){return this.forwardInput(await gt(t))}async predictAgeAndGender(t){let n=await gt(t),a=await this.forwardInput(n),r=dt(a.age),s=dt(a.gender),i=r.map((l,c)=>({ageTensor:l,genderTensor:s[c]})),o=await Promise.all(i.map(async({ageTensor:l,genderTensor:c})=>{let u=(await l.data())[0],p=(await c.data())[0],d=p>.5,h=d?dr.MALE:dr.FEMALE,m=d?p:1-p;return l.dispose(),c.dispose(),{age:u,gender:h,genderProbability:m}}));return a.age.dispose(),a.gender.dispose(),n.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:n,paramMappings:a}=this.extractClassifierParams(t);this._params=n,this._paramMappings=a}extractClassifierParams(t){return gC(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:n,classifierMap:a}=Uf(t);return this.faceFeatureExtractor.loadFromWeightMap(n),yC(a)}extractParams(t){let n=512*1+1+(512*2+2),a=t.slice(0,t.length-n),r=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(r)}};var jp=class extends Vp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return D(()=>{let i=(p,d)=>$t([kn([68],p,"float32"),kn([68],d,"float32")],1).as2D(1,136).as1D(),o=(p,d)=>{let{width:h,height:m}=r[p];return d(h,m)?Math.abs(h-m)/2:0},l=p=>o(p,(d,h)=>do(p,(d,h)=>hi(l(d),c(d))))).div($t(Array.from(Array(s),(p,d)=>i(r[d].width,r[d].height))))})}forwardInput(t){return D(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await gt(t))}async detectLandmarks(t){let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(await s.data()),l=o.filter((u,p)=>kf(p)),c=o.filter((u,p)=>!kf(p));return new io(Array(68).fill(0).map((u,p)=>new De(l[p],c[p])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var ho=class extends jp{constructor(t=new Bp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function bC(e){let t=[],{extractDenseBlock3Params:n}=Vf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return bn(e,t),{params:a,paramMappings:t}}function xC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractDenseBlock3Params:r}=Bf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var Rw=class extends Qt{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(112,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(de(255)),i=Of(s,n.dense0,!0);return i=Of(i,n.dense1),i=Of(i,n.dense2),i=Yn(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await gt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return bC(t)}extractParams(t){return xC(t)}};var qp=class extends jp{constructor(t=new Rw){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Mw=class extends ho{};function vC(e,t){return Z(L(e,t.weights),t.biases)}function Pw(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Z(o,i),o=vC(o,t.scale),a?Ye(o):o}function wC(e,t){return Pw(e,t,[1,1],!0)}function Ow(e,t){return Pw(e,t,[1,1],!1)}function qf(e,t){return Pw(e,t,[2,2],!0,"valid")}function Jre(e,t){function n(o,l,c){let u=e(o),p=u.length/(l*c*c);if(xw(p))throw new Error(`depth has to be an integer: ${p}, weights.length: ${u.length}, numFilters: ${l}, filterSize: ${c}`);return D(()=>Ue(_a(u,[l,p,c,c]),[2,3,1,0]))}function a(o,l,c,u){let p=n(o,l,c),d=nt(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:p,bias:d}}function r(o,l){let c=nt(e(o)),u=nt(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:u}}function s(o,l,c,u){let p=a(o,l,c,`${u}/conv`),d=r(l,`${u}/scale`);return{conv:p,scale:d}}function i(o,l,c,u,p=!1){let d=s((p?.5:1)*o,l,c,`${u}/conv1`),h=s(o,l,c,`${u}/conv2`);return{conv1:d,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function kC(e){let{extractWeights:t,getRemainingWeights:n}=xn(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Jre(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),c=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),p=s(36864,64,3,"conv64_1"),d=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),v=s(589824,256,3,"conv256_2"),x=s(589824,256,3,"conv256_down_out"),N=D(()=>Ue(Ca(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:c,conv64_down:u,conv64_1:p,conv64_2:d,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:v,conv256_down_out:x,fc:N},paramMappings:a}}function Qre(e,t){let n=Gn(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),c=a(i);return{conv:{filters:o,bias:l},scale:c}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function IC(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qre(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),c=a("conv64_1"),u=a("conv64_2"),p=a("conv64_3"),d=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:v}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!bw(v))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${v}`);let x={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:c,conv64_2:u,conv64_3:p,conv128_down:d,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:v};return bn(e,t),{params:x,paramMappings:t}}function Ba(e,t){let n=wC(e,t.conv1);return n=Ow(n,t.conv2),n=Z(n,e),n=Ye(n),n}function Kp(e,t){let n=qf(e,t.conv1);n=Ow(n,t.conv2);let a=Yn(e,2,2,"valid"),r=vt(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=vt(o);n=Qe([n,l],1);let c=[...n.shape];c[2]=1;let u=vt(c);n=Qe([n,u],2)}return a=s?Qe([a,r],3):a,n=Z(a,n),n=Ye(n),n}var mo=class extends Qt{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(150,!0),"float32"),s=wa(a,[122.782,117.001,104.298]).div(de(256)),i=qf(s,n.conv32_down);i=Ft(i,3,2,"valid"),i=Ba(i,n.conv32_1),i=Ba(i,n.conv32_2),i=Ba(i,n.conv32_3),i=Kp(i,n.conv64_down),i=Ba(i,n.conv64_1),i=Ba(i,n.conv64_2),i=Ba(i,n.conv64_3),i=Kp(i,n.conv128_down),i=Ba(i,n.conv128_1),i=Ba(i,n.conv128_2),i=Kp(i,n.conv256_down),i=Ba(i,n.conv256_1),i=Ba(i,n.conv256_2),i=Kp(i,n.conv256_down_out);let o=i.mean([1,2]);return ze(o,n.fc)})}async forward(t){return this.forwardInput(await gt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)==null?void 0:s.some(i=>i<=0))return new Float32Array(128);let n=await gt(t),a=D(()=>dt(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return IC(t)}extractParams(t){return kC(t)}};function NC(e){let t=new mo;return t.extractWeights(e),t}function Xp(e,t){return{...e,...{descriptor:t}}}function TC(e){return typeof e.age=="number"}function Yp(e,t){return{...e,...{age:t}}}function SC(e){return(e.gender===dr.MALE||e.gender===dr.FEMALE)&&_u(e.genderProbability)}function Zp(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function ese(e,t){function n(l,c){let u=_a(e(3*3*l),[3,3,l,1]),p=nt(e(l)),d=nt(e(l)),h=nt(e(l)),m=nt(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:u,batch_norm_scale:p,batch_norm_offset:d,batch_norm_mean:h,batch_norm_variance:m}}function a(l,c,u,p,d){let h=_a(e(l*c*u*u),[u,u,l,c]),m=nt(e(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/${d?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,c,u,p){let{filters:d,bias:h}=a(l,c,u,p,!0);return{filters:d,batch_norm_offset:h}}function s(l,c,u){let p=n(l,`${u}/depthwise_conv`),d=r(l,c,1,`${u}/pointwise_conv`);return{depthwise_conv:p,pointwise_conv:d}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),c=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),p=s(128,128,"mobilenetv1/conv_3"),d=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),v=s(512,512,"mobilenetv1/conv_11"),x=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:v,conv_12:x,conv_13:N}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),c=r(256,512,3,"prediction_layer/conv_1"),u=r(512,128,1,"prediction_layer/conv_2"),p=r(128,256,3,"prediction_layer/conv_3"),d=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),v=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),x=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),F=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),P=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),B=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:c,conv_2:u,conv_3:p,conv_4:d,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:v},box_predictor_2:{box_encoding_predictor:x,class_predictor:N},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:F,class_predictor:$},box_predictor_5:{box_encoding_predictor:P,class_predictor:B}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function CC(e){let t=[],{extractWeights:n,getRemainingWeights:a}=xn(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=ese(n,t),i=r(),o=s(),c={extra_dim:Nh(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:c},paramMappings:t}}function tse(e,t){let n=Gn(e,t);function a(c,u,p){let d=n(`${c}/Conv2d_${u}_pointwise/weights`,4,`${p}/filters`),h=n(`${c}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${p}/batch_norm_offset`);return{filters:d,batch_norm_offset:h}}function r(c){let u=`mobilenetv1/conv_${c}`,p=`MobilenetV1/Conv2d_${c}_depthwise`,d=`${u}/depthwise_conv`,h=`${u}/pointwise_conv`,m=n(`${p}/depthwise_weights`,4,`${d}/filters`),f=n(`${p}/BatchNorm/gamma`,1,`${d}/batch_norm_scale`),g=n(`${p}/BatchNorm/beta`,1,`${d}/batch_norm_offset`),y=n(`${p}/BatchNorm/moving_mean`,1,`${d}/batch_norm_mean`),b=n(`${p}/BatchNorm/moving_variance`,1,`${d}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",c,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(c,u){let p=n(`${c}/weights`,4,`${u}/filters`),d=n(`${c}/biases`,1,`${u}/bias`);return{filters:p,bias:d}}function o(c){let u=i(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),p=i(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:u,class_predictor:p}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function _C(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=tse(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Ar(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return bn(e,t),{params:s,paramMappings:t}}function ka(e,t,n){return D(()=>{let a=At(e,t.filters,n,"same");return a=Z(a,t.batch_norm_offset),qt(a,0,6)})}var nse=.0010000000474974513;function ase(e,t,n){return D(()=>{let a=es(e,t.filters,n,"same");return a=xr(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,nse),qt(a,0,6)})}function rse(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function EC(e,t){return D(()=>{let n,a=ka(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=rse(o);a=ase(a,s.depthwise_conv,l),a=ka(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function sse(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),c=Math.min(a[n][1],a[n][3]),u=Math.max(a[n][0],a[n][2]),p=Math.max(a[n][1],a[n][3]),d=(i-r)*(o-s),h=(u-l)*(p-c);if(d<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,c),g=Math.min(i,u),y=Math.min(o,p),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(d+h-b)}function AC(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((u,p)=>({score:u,boxIndex:p})).filter(u=>u.score>r).sort((u,p)=>p.score-u.score),l=u=>u<=a?1:0,c=[];return o.forEach(u=>{if(c.length>=i)return;let p=u.score;for(let d=c.length-1;d>=0;--d){let h=sse(e,u.boxIndex,c[d]);if(h!==0&&(u.score*=l(h),u.score<=r))break}p===u.score&&c.push(u.boxIndex)}),c}function ise(e){let t=dt(Ue(e,[1,0])),n=[fe(t[2],t[0]),fe(t[3],t[1])],a=[Z(t[0],ve(n[0],de(2))),Z(t[1],ve(n[1],de(2)))];return{sizes:n,centers:a}}function ose(e,t){let{sizes:n,centers:a}=ise(e),r=dt(Ue(t,[1,0])),s=ve(L(dn(ve(r[2],de(5))),n[0]),de(2)),i=Z(L(ve(r[0],de(10)),n[0]),a[0]),o=ve(L(dn(ve(r[3],de(5))),n[1]),de(2)),l=Z(L(ve(r[1],de(10)),n[1]),a[1]);return Ue($t([fe(i,s),fe(l,o),Z(i,s),Z(l,o)]),[1,0])}function FC(e,t,n){return D(()=>{let a=e.shape[0],r=ose(H(Xa(n.extra_dim,[a,1,1]),[-1,4]),H(e,[-1,4]));r=H(r,[a,r.shape[0]/a,4]);let s=da(We(t,[0,0,1],[-1,-1,-1])),i=We(s,[0,0,0],[-1,-1,1]);i=H(i,[a,i.shape[1]]);let o=dt(r),l=dt(i);return{boxes:o,scores:l}})}function fo(e,t){return D(()=>{let n=e.shape[0],a=H(co(e,t.box_encoding_predictor),[n,-1,1,4]),r=H(co(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function $C(e,t,n){return D(()=>{let a=ka(e,n.conv_0,[1,1]),r=ka(a,n.conv_1,[2,2]),s=ka(r,n.conv_2,[1,1]),i=ka(s,n.conv_3,[2,2]),o=ka(i,n.conv_4,[1,1]),l=ka(o,n.conv_5,[2,2]),c=ka(l,n.conv_6,[1,1]),u=ka(c,n.conv_7,[2,2]),p=fo(t,n.box_predictor_0),d=fo(e,n.box_predictor_1),h=fo(r,n.box_predictor_2),m=fo(i,n.box_predictor_3),f=fo(l,n.box_predictor_4),g=fo(u,n.box_predictor_5),y=Qe([p.boxPredictionEncoding,d.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Qe([p.classPrediction,d.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var na=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var ks=class extends Qt{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return D(()=>{let a=ce(t.toBatchTensor(512,!1),"float32"),r=fe(L(a,de(.007843137718737125)),de(1)),s=EC(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=$C(s.out,s.conv11,n.prediction_layer);return FC(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await gt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new na(n),s=await gt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],c=o[0];for(let v=1;v{let[x,N]=[Math.max(0,y[v][0]),Math.min(1,y[v][2])].map(F=>F*g),[T,C]=[Math.max(0,y[v][1]),Math.min(1,y[v][3])].map(F=>F*f);return new yt(u[v],new so(T,x,C-T,N-x),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),c.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return _C(t)}extractParams(t){return CC(t)}};function Lw(e){let t=new ks;return t.extractWeights(e),t}function DC(e){return Lw(e)}var zw=class extends ks{};var RC=.4,MC=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],PC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],OC=[117.001,114.697,97.404],LC="tiny_yolov2_model",zC="tiny_yolov2_separable_conv_model";var Kf=e=>typeof e=="number";function Xf(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Kf(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Kf(t.x)&&Kf(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Kf)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function Ou(e){return D(()=>{let t=L(e,de(.10000000149011612));return Z(Ye(fe(e,t)),t)})}function Dr(e,t){return D(()=>{let n=Jn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=fe(n,t.bn.sub),n=L(n,t.bn.truediv),n=Z(n,t.conv.bias),Ou(n)})}function Rr(e,t){return D(()=>{let n=Jn(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Oi(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Z(n,t.bias),Ou(n)})}function lse(e,t){let n=Ru(e,t);function a(i,o){let l=nt(e(i)),c=nt(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:c}}function r(i,o,l){let c=n(i,o,3,`${l}/conv`),u=a(o,`${l}/bn`);return{conv:c,bn:u}}let s=Mu(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function BC(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=xn(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=lse(r,i),u;if(t.withSeparableConvs){let[p,d,h,m,f,g,y,b,v]=a,x=t.isFirstLayerConv2d?o(p,d,3,"conv0"):c(p,d,"conv0"),N=c(d,h,"conv1"),T=c(h,m,"conv2"),C=c(m,f,"conv3"),F=c(f,g,"conv4"),$=c(g,y,"conv5"),P=b?c(y,b,"conv6"):void 0,B=v?c(b,v,"conv7"):void 0,W=o(v||b||y,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:F,conv5:$,conv6:P,conv7:B,conv8:W}}else{let[p,d,h,m,f,g,y,b,v]=a,x=l(p,d,"conv0"),N=l(d,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),F=l(f,g,"conv4"),$=l(g,y,"conv5"),P=l(y,b,"conv6"),B=l(b,v,"conv7"),W=o(v,5*n,1,"conv8");u={conv0:x,conv1:N,conv2:T,conv3:C,conv4:F,conv5:$,conv6:P,conv7:B,conv8:W}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function use(e,t){let n=Gn(e,t);function a(o){let l=n(`${o}/sub`,1),c=n(`${o}/truediv`,1);return{sub:l,truediv:c}}function r(o){let l=n(`${o}/filters`,4),c=n(`${o}/bias`,1);return{filters:l,bias:c}}function s(o){let l=r(`${o}/conv`),c=a(`${o}/bn`);return{conv:l,bn:c}}let i=Pu(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function WC(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=use(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return bn(e,n),{params:i,paramMappings:n}}var Wa=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var Bw=class extends Qt{constructor(t){super("TinyYolov2");Xf(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,n){let a=Dr(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=Dr(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=Dr(a,n.conv6),a=Dr(a,n.conv7),co(a,n.conv8,"valid",!1)}runMobilenet(t,n){let a=this.config.isFirstLayerConv2d?Ou(co(t,n.conv0,"valid",!1)):Rr(t,n.conv0);return a=Ft(a,[2,2],[2,2],"same"),a=Rr(a,n.conv1),a=Ft(a,[2,2],[2,2],"same"),a=Rr(a,n.conv2),a=Ft(a,[2,2],[2,2],"same"),a=Rr(a,n.conv3),a=Ft(a,[2,2],[2,2],"same"),a=Rr(a,n.conv4),a=Ft(a,[2,2],[2,2],"same"),a=Rr(a,n.conv5),a=Ft(a,[2,2],[1,1],"same"),a=n.conv6?Rr(a,n.conv6):a,a=n.conv7?Rr(a,n.conv7):a,co(a,n.conv8,"valid",!1)}forwardInput(t,n){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return D(()=>{let r=ce(t.toBatchTensor(n,!1),"float32");return r=this.config.meanRgb?wa(r,this.config.meanRgb):r,r=r.div(de(256)),this.config.withSeparableConvs?this.runMobilenet(r,a):this.runTinyYolov2(r,a)})}async forward(t,n){return this.forwardInput(await gt(t),n)}async detect(t,n={}){let{inputSize:a,scoreThreshold:r}=new Wa(n),s=await gt(t),i=await this.forwardInput(s,a),o=D(()=>dt(i)[0].expandDims()),l={width:s.getInputWidth(0),height:s.getInputHeight(0)},c=await this.extractBoxes(o,s.getReshapedInputDimensions(0),r);i.dispose(),o.dispose();let u=c.map(g=>g.box),p=c.map(g=>g.score),d=c.map(g=>g.classScore),h=c.map(g=>this.config.classes[g.label]);return Sf(u.map(g=>g.rescale(a)),p,this.config.iouThreshold,!0).map(g=>new Fr(p[g],d[g],h[g],u[g],l))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return WC(t,this.config)}extractParams(t){let n=this.config.filterSizes||Bw.DEFAULT_FILTER_SIZES,a=n?n.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return BC(t,this.config,this.boxEncodingSize,n)}async extractBoxes(t,n,a){let{width:r,height:s}=n,i=Math.max(r,s),o=i/r,l=i/s,c=t.shape[1],u=this.config.anchors.length,[p,d,h]=D(()=>{let y=t.reshape([c,c,u,this.boxEncodingSize]),b=y.slice([0,0,0,0],[c,c,u,4]),v=y.slice([0,0,0,4],[c,c,u,1]),x=this.withClassScores?Sa(y.slice([0,0,0,5],[c,c,u,this.config.classes.length]),3):de(0);return[b,v,x]}),m=[],f=await d.array(),g=await p.array();for(let y=0;ya){let N=(b+Eu(g[y][b][v][0]))/c*o,T=(y+Eu(g[y][b][v][1]))/c*l,C=Math.exp(g[y][b][v][2])*this.config.anchors[v].x/c*o,F=Math.exp(g[y][b][v][3])*this.config.anchors[v].y/c*l,$=N-C/2,P=T-F/2,B={row:y,col:b,anchor:v},{classScore:W,label:G}=this.withClassScores?await this.extractPredictedClass(h,B):{classScore:1,label:0};m.push({box:new ro($,P,$+C,P+F),score:x,classScore:x*W,label:G,...B})}}return p.dispose(),d.dispose(),h.dispose(),m}async extractPredictedClass(t,n){let{row:a,col:r,anchor:s}=n,i=await t.array();return Array(this.config.classes.length).fill(0).map((o,l)=>i[a][r][s][l]).map((o,l)=>({classScore:o,label:l})).reduce((o,l)=>o.classScore>l.classScore?o:l)}},Lu=Bw;Lu.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var go=class extends Lu{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:RC,classes:["face"],...t?{anchors:PC,meanRgb:OC}:{anchors:MC,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?zC:LC}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function VC(e,t=!0){let n=new go(t);return n.extractWeights(e),n}var Jp=class extends Wa{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var aa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function yo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ws(l)?r(l):l.detection),i=a||(t instanceof Ae?await uo(t,s):await lo(t,s)),o=await n(i);return i.forEach(l=>l instanceof Ae&&l.dispose()),o}async function zu(e,t,n,a,r){return yo([e],t,async s=>n(s[0]),a,r)}var UC=.4,GC=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],HC=[117.001,114.697,97.404];var bo=class extends Lu{constructor(){let t={withSeparableConvs:!0,iouThreshold:UC,classes:["face"],anchors:GC,meanRgb:HC,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var et={ssdMobilenetv1:new ks,tinyFaceDetector:new bo,tinyYolov2:new go,faceLandmark68Net:new ho,faceLandmark68TinyNet:new qp,faceRecognitionNet:new mo,faceExpressionNet:new Up,ageGenderNet:new Hp},Ww=(e,t)=>et.ssdMobilenetv1.locateFaces(e,t),jC=(e,t)=>et.tinyFaceDetector.locateFaces(e,t),qC=(e,t)=>et.tinyYolov2.locateFaces(e,t),Vw=e=>et.faceLandmark68Net.detectLandmarks(e),KC=e=>et.faceLandmark68TinyNet.detectLandmarks(e),XC=e=>et.faceRecognitionNet.computeFaceDescriptor(e),YC=e=>et.faceExpressionNet.predictExpressions(e),ZC=e=>et.ageGenderNet.predictAgeAndGender(e),Uw=e=>et.ssdMobilenetv1.load(e),JC=e=>et.tinyFaceDetector.load(e),QC=e=>et.tinyYolov2.load(e),e_=e=>et.faceLandmark68Net.load(e),t_=e=>et.faceLandmark68TinyNet.load(e),n_=e=>et.faceRecognitionNet.load(e),a_=e=>et.faceExpressionNet.load(e),r_=e=>et.ageGenderNet.load(e),s_=Uw,i_=Ww,o_=Vw;var Gw=class extends aa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Vu=class extends Gw{async run(){let t=await this.parentTask,n=await yo(t,this.input,async a=>Promise.all(a.map(r=>et.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>Gp(a,n[r]))}withAgeAndGender(){return new Bu(this,this.input)}},Uu=class extends Gw{async run(){let t=await this.parentTask;if(!t)return;let n=await zu(t,this.input,a=>et.faceExpressionNet.predictExpressions(a),this.extractedFaces);return Gp(t,n)}withAgeAndGender(){return new Wu(this,this.input)}},wo=class extends Vu{withAgeAndGender(){return new xo(this,this.input)}withFaceDescriptors(){return new Mr(this,this.input)}},ko=class extends Uu{withAgeAndGender(){return new vo(this,this.input)}withFaceDescriptor(){return new Pr(this,this.input)}};var Hw=class extends aa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.extractedFaces=a}},Bu=class extends Hw{async run(){let t=await this.parentTask,n=await yo(t,this.input,async a=>Promise.all(a.map(r=>et.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return Yp(Zp(a,i,o),s)})}withFaceExpressions(){return new Vu(this,this.input)}},Wu=class extends Hw{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await zu(t,this.input,s=>et.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return Yp(Zp(t,a,r),n)}withFaceExpressions(){return new Uu(this,this.input)}},xo=class extends Bu{withFaceExpressions(){return new wo(this,this.input)}withFaceDescriptors(){return new Mr(this,this.input)}},vo=class extends Wu{withFaceExpressions(){return new ko(this,this.input)}withFaceDescriptor(){return new Pr(this,this.input)}};var Qp=class extends aa{constructor(t,n){super();this.parentTask=t;this.input=n}},Mr=class extends Qp{async run(){let t=await this.parentTask;return(await yo(t,this.input,a=>Promise.all(a.map(r=>et.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>Xp(t[r],a))}withFaceExpressions(){return new wo(this,this.input)}withAgeAndGender(){return new xo(this,this.input)}},Pr=class extends Qp{async run(){let t=await this.parentTask;if(!t)return;let n=await zu(t,this.input,a=>et.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return Xp(t,n)}withFaceExpressions(){return new ko(this,this.input)}withAgeAndGender(){return new vo(this,this.input)}};var ed=class extends aa{constructor(t,n,a){super();this.parentTask=t;this.input=n;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?et.faceLandmark68TinyNet:et.faceLandmark68Net}},td=class extends ed{async run(){let t=await this.parentTask,n=t.map(s=>s.detection),a=this.input instanceof Ae?await uo(this.input,n):await lo(this.input,n),r=await Promise.all(a.map(s=>this.landmarkNet.detectLandmarks(s)));return a.forEach(s=>s instanceof Ae&&s.dispose()),t.map((s,i)=>po(s,r[i]))}withFaceExpressions(){return new wo(this,this.input)}withAgeAndGender(){return new xo(this,this.input)}withFaceDescriptors(){return new Mr(this,this.input)}},nd=class extends ed{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Ae?await uo(this.input,[n]):await lo(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Ae&&s.dispose()),po(t,r)}withFaceExpressions(){return new ko(this,this.input)}withAgeAndGender(){return new vo(this,this.input)}withFaceDescriptor(){return new Pr(this,this.input)}};var ad=class extends aa{constructor(t,n=new na){super();this.input=t;this.options=n}},Gu=class extends ad{async run(){let{input:t,options:n}=this,a=n instanceof Jp?r=>et.tinyFaceDetector.locateFaces(r,n):n instanceof na?r=>et.ssdMobilenetv1.locateFaces(r,n):n instanceof Wa?r=>et.tinyYolov2.locateFaces(r,n):null;if(!a)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return a(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let n=await this.run();t(n.map(a=>gs({},a)))})}withFaceLandmarks(t=!1){return new td(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Vu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Bu(this.runAndExtendWithFaceDetections(),this.input)}},rd=class extends ad{async run(){let t=await new Gu(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?gs({},n):void 0)})}withFaceLandmarks(t=!1){return new nd(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Uu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Wu(this.runAndExtendWithFaceDetection(),this.input)}};function l_(e,t=new na){return new rd(e,t)}function sd(e,t=new na){return new Gu(e,t)}async function jw(e,t){return sd(e,new na(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function u_(e,t={}){return sd(e,new Wa(t)).withFaceLandmarks().withFaceDescriptors()}var c_=jw;function Yf(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s**2,0))}var id=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof ur)return i;if(i instanceof Float32Array)return new ur(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new ur(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>Yf(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new Au(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>ur.fromJSON(a));return new id(n,t.distanceThreshold)}};function p_(e){let t=new bo;return t.extractWeights(e),t}function qw(e,t){let{width:n,height:a}=new ln(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>qw(r,{width:n,height:a}));if(ws(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return po(gs(e,r),s)}return za(e)?gs(e,e.detection.forSize(n,a)):e instanceof Un||e instanceof yt?e.forSize(n,a):e}var pse=typeof process!="undefined",dse=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",d_={faceapi:dC,node:pse,browser:dse};return cse;})(); /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/face-api.js.map b/dist/face-api.js.map index 9ce8bd6..7e00328 100644 --- a/dist/face-api.js.map +++ b/dist/face-api.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../src/env/isNodejs.ts", "../src/index.ts", "../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts"], - "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256480,STACKTOP=STACK_BASE,STACK_MAX=13600,DYNAMIC_BASE=5256480,DYNAMICTOP_PTR=12672;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13584;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13072;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Step\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}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;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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[\"dynCall_ii\"](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\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){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.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\");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()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n getContext2dOrThrow(faceImg)\n .putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks\n unshiftedLandmarks: TFaceLandmarks\n alignedRect: FaceDetection\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const {\n boxPredictions,\n classPredictions,\n } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n // eslint-disable-next-line no-nested-ternary\n const faceDetectionFunction = options instanceof TinyFaceDetectorOptions\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options)\n : (\n // eslint-disable-next-line no-nested-ternary\n options instanceof SsdMobilenetv1Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options)\n : (\n options instanceof TinyYolov2Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options)\n : null\n )\n );\n\n if (!faceDetectionFunction) {\n throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options');\n }\n\n return faceDetectionFunction(input);\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) {\n faceDetectionWithHighestScore = faceDetection;\n }\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n"], - "mappings": "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CtC,GAAM,GAAiC,EACjC,CAAC,KAAA,GAAQ,EACT,EAAqB,GAAuB,GAClD,MAAO,CAAC,EAAG,IAAM,GAAU,EAAI,MCRtB,GAA+B,CAC1C,WAAY,GACZ,SAAU,CAAC,EAAc,EAAiB,KACxC,GAAM,GAA2B,EAC3B,CAAC,KAAA,GAAQ,EACf,MAAO,CAAC,MAAO,IAAM,GAAM,EAAI,MCItB,GAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,KACrB,GAAM,CAAC,GAAc,EAKrB,MAAO,CAAC,EAHK,IACJ,GAAoB,EAAI,MAMrC,YAA+C,EAAM,GAInD,GAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GACvB,EAAa,GAAa,EAAS,GAAO,EAAG,UAC3C,EAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GClC9B,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAW,GACF,EAAC,EAAG,IAAM,GAAU,MC+FzB,GAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAG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ACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE5TjB,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,GACxB,GAAS,GAAgB,EAGrB,YAA0B,GAC9B,GAAI,CAAE,KAAgB,MACpB,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,OAAA,SAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,EAAG,QAAQ,EAAG,OACd,EAAG,QAAQ,EAAG,QACd,EAAG,QAAQ,EAAG,qBACd,EAAG,QAAQ,EAAG,iBACd,EAAG,OAAO,EAAG,cACb,EAAG,OAAO,EAAG,WACb,EAAG,SAAS,EAAG,MAER,GAAS,IAGlB,YAAsB,GACpB,GAAI,MAAO,kBAAoB,aAA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GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IAGF,OAAW,KAAgB,KACzB,GAAe,GErUjB,GAAM,KAAU,QCyCH,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,KCjCE,GAAZ,AAAA,UAAY,GACV,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAQ,KASpB,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAiB,KCJ7B,GAAI,IAOJ,aAAe,GACb,GAAkB,EAAQ,KAAK,MAAM,GAAc,KAAiB,CAClE,SACA,QACA,SACA,SACA,QAC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", + "sources": ["../src/env/isNodejs.ts", "../src/index.ts", "../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts"], + "sourcesContent": ["export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof require === 'function'\n && typeof module !== 'undefined'\n // issues with gatsby.js: module.exports is undefined\n // && !!module.exports\n && typeof process !== 'undefined' && !!process.version;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nconst node = (typeof process !== 'undefined');\nconst browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined');\nexport const version = { faceapi: pkg.version as string, node, browser };\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":171,\"maximum\":171+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":153,\"maximum\":153+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"Ceil\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Step\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}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;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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[\"dynCall_ii\"](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\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){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.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\");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()}}}}';", null, null, null, "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed: boolean = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec: number = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number\n\n private _height: number\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number\n\n private _y: number\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions: boolean = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number\n\n private _y: number\n\n private _width: number\n\n private _height: number\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions: boolean = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({\n x, y, width, height,\n });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const {\n x, y, right, bottom,\n } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({\n x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight,\n })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({\n x, y, width, height,\n });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return {\n dy, edy, dx, edx, y, ey, x, ex, w, h,\n };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions: boolean = false) {\n super({\n left, top, right, bottom,\n }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number\n\n private _classScore: number\n\n private _className: string\n\n private _box: Rect\n\n private _imageDims: Dimensions\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU: boolean = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU: boolean = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(\n imgTensor: tf.Tensor4D,\n isCenterImage: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) {\n return imgTensor;\n }\n\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount\n ? createPaddingTensor(remainingPaddingAmount)\n : null;\n\n const tensorsToStack = [\n paddingTensorPrepend,\n imgTensor,\n paddingTensorAppend,\n ]\n .filter((t) => !!t)\n // .map((t: tf.Tensor) => t.toFloat()) as tf.Tensor4D[]\n .map((t: tf.Tensor) => tf.cast(t, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions: boolean = false) {\n super({\n x, y, width, height,\n }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point\n\n protected _positions: Point[]\n\n protected _imgDims: Dimensions\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string\n\n private _distance: number\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance: boolean = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string\n\n private _descriptors: Float32Array[]\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number\n\n private _classScore: number\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection<\n TSource\n>(\n sourceObj: TSource,\n detection: FaceDetection,\n): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n fetch,\n readFile,\n };\n}\n", "import { FileSystem } from './types';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n\n if (!fs) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = err.toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => {\n fs.readFile(filePath, (err: any, buffer: Buffer) => (err ? reject(err) : resolve(buffer)));\n })\n : () => {\n throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`);\n };\n\n return {\n readFile,\n };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition\n\n public backgroundColor: string\n\n public fontColor: string\n\n public fontSize: number\n\n public fontStyle: string\n\n public padding: number\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[]\n\n public anchor : IPoint\n\n public options: DrawTextFieldOptions\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport {\n AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions,\n} from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string\n\n public lineWidth: number\n\n public drawLabelOptions: DrawTextFieldOptions\n\n public label?: string\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box\n\n public options: DrawBoxOptions\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\n return resolve(null);\n }\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf.browser.toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage: boolean = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport {\n computeReshapedDimensions, isTensor3D, isTensor4D, range,\n} from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = []\n\n private _canvases: HTMLCanvasElement[] = []\n\n private _batchSize: number\n\n private _treatAsBatchInput: boolean = false\n\n private _inputDimensions: number[][] = []\n\n private _inputSize: number\n\n constructor(\n inputs: Array,\n treatAsBatchInput: boolean = false,\n ) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs: boolean = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n let imgTensor = isTensor4D(input) ? input : input.expandDims();\n // @ts-ignore: error TS2344: Type 'Rank.R4' does not satisfy the constraint 'Tensor'.\n imgTensor = padToSquare(imgTensor, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf.browser.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n // const batchTensor = tf.stack(inputTensors.map(t => t.toFloat())).as4D(this.batchSize, inputSize, inputSize, 3)\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map(t => tf.Tensor.as4D(tf.cast(t, 'float32'))), this.batchSize, inputSize, inputSize, 3);\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) {\n return inputs;\n }\n\n const inputArgArray = Array.isArray(inputs)\n ? inputs\n : [inputs];\n\n if (!inputArgArray.length) {\n throw new Error('toNetInput - empty array passed as input');\n }\n\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n\n const inputArray = inputArgArray.map(resolveInput);\n\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') {\n throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n }\n\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) {\n throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n }\n });\n\n // wait for all media elements being loaded\n await Promise.all(\n inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)),\n );\n\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(\n input: TNetInput,\n detections: Array,\n): Promise {\n const { Canvas } = env.getEnv();\n\n let canvas = input as HTMLCanvasElement;\n\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n\n if (netInput.batchSize > 1) {\n throw new Error('extractFaces - batchSize > 1 not supported');\n }\n\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas\n ? tensorOrCanvas\n : await imageTensorToCanvas(tensorOrCanvas);\n }\n\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(canvas.width, canvas.height).box.floor()\n : det),\n )\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n\n return boxes.map(({\n x, y, width, height,\n }) => {\n const faceImg = createCanvas({ width, height });\n getContext2dOrThrow(faceImg)\n .putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(\n imageTensor: tf.Tensor3D | tf.Tensor4D,\n detections: Array,\n): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n\n const boxes = detections.map(\n (det) => (det instanceof FaceDetection\n ? det.forSize(imgWidth, imgHeight).box\n : det),\n )\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n\n const faceTensors = boxes.map(({\n x, y, width, height,\n }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf.io.loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions: boolean = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined\n\n protected _paramMappings: ParamMapping[] = []\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer: boolean = false,\n isScaleDown: boolean = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu: boolean = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import {\n extractConvParamsFactory,\n extractSeparableConvParamsFactory,\n ExtractWeightsFunction,\n ParamMapping,\n} from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport {\n FaceFeatureExtractorParams,\n IFaceFeatureExtractor,\n TinyFaceFeatureExtractorParams,\n} from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral: number\n\n public happy: number\n\n public sad: number\n\n public angry: number\n\n public fearful: number\n\n public disgusted: number\n\n public surprised: number\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = await t.data();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & {\n expressions: FaceExpressions\n}\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions<\n TSource\n>(\n sourceObj: TSource,\n expressions: FaceExpressions,\n): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(\n canvasArg: string | HTMLCanvasElement,\n faceExpressions: DrawFaceExpressionsInput | Array,\n minConfidence = 0.1,\n textFieldAnchor?: IPoint,\n) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 > = TSource & {\n landmarks: TFaceLandmarks\n unshiftedLandmarks: TFaceLandmarks\n alignedRect: FaceDetection\n }\n\nexport function isWithFaceLandmarks(obj: any): obj is WithFaceLandmarks, FaceLandmarks> {\n return isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection;\n}\n\nexport function extendWithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68 >(sourceObj: TSource, unshiftedLandmarks: TFaceLandmarks): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims);\n\n const extension = {\n landmarks,\n unshiftedLandmarks,\n alignedRect,\n };\n\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean\n\n public drawPoints: boolean\n\n public lineWidth: number\n\n public pointSize: number\n\n public lineColor: string\n\n public pointColor: string\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks\n\n public options: DrawFaceLandmarksOptions\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors,\n extractWeightEntryFactory,\n loadSeparableConvParamsFactory,\n ParamMapping,\n} from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput: boolean = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping,\n} from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport {\n AgeAndGenderPrediction, Gender, NetOutput, NetParams,\n} from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (await ageTensor.data())[0];\n const probMale = (await genderTensor.data())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public dispose(throwOnRedispose: boolean = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(await landmarkTensor.data());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping,\n} from '../common/index';\nimport { isFloat } from '../utils/index';\nimport {\n ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown: boolean = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory,\n} from '../common/index';\nimport {\n MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport {\n ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping,\n} from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport {\n BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams,\n} from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(\n x: tf.Tensor4D,\n params: PointwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(\n x: tf.Tensor4D,\n params: MobileNetV1.DepthwiseConvParams,\n strides: [number, number],\n) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) {\n conv11 = out;\n }\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) {\n return 0.0;\n }\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0)\n * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(\n maxOutputSize,\n numBoxes,\n );\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2))),\n ];\n return {\n sizes,\n centers,\n };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const {\n sizes,\n centers,\n } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(\n boxPredictions: tf.Tensor4D,\n classPredictions: tf.Tensor4D,\n params: OutputLayerParams,\n) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(\n boxes,\n [batchSize, (boxes.shape[0] / batchSize), 4],\n );\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(\n scores,\n [batchSize, scores.shape[1] as number],\n );\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return {\n boxes: boxesByBatch,\n scores: scoresByBatch,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name: string = 'SsdMobilenetv1Options'\n\n private _minConfidence: number\n\n private _maxResults: number\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n\n if (!params) {\n throw new Error('SsdMobilenetv1 - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D;\n const features = mobileNetV1(x, params.mobilenetv1);\n\n const {\n boxPredictions,\n classPredictions,\n } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(\n input: TNetInput,\n options: ISsdMobilenetv1Options = {},\n ): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n\n const netInput = await toNetInput(input);\n\n const {\n boxes: _boxes,\n scores: _scores,\n } = this.forwardInput(netInput);\n\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n\n const scoresData = Array.from(await scores.data());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(\n boxes,\n scoresData as number[],\n maxResults,\n iouThreshold,\n minConfidence,\n );\n\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(\n left,\n top,\n right - left,\n bottom - top,\n ),\n {\n height: netInput.getInputHeight(0),\n width: netInput.getInputWidth(0),\n },\n );\n });\n\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name: string = 'TinyYolov2Options'\n\n private _inputSize: number\n\n private _scoreThreshold: number\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(tf.scalar(256)) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs: boolean = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected _name: string = 'TinyFaceDetectorOptions'\n}\n", "export class ComposableTask {\n public async then(\n // eslint-disable-next-line no-unused-vars\n onfulfilled: (value: T) => T | PromiseLike,\n ): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n\n const results = await computeResults(faces);\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderTask,\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleFaceExpressionsTask {\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllFaceExpressionsTask,\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map(\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n )),\n this.extractedFaces,\n );\n\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask<\n TSource extends WithFaceDetection<{}>\n> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictAllAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask<\n TSource extends WithFaceLandmarks>\n> extends PredictSingleAgeAndGenderTask {\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask<\n TSource extends WithFaceLandmarks>\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport {\n PredictAllAgeAndGenderWithFaceAlignmentTask,\n PredictSingleAgeAndGenderWithFaceAlignmentTask,\n} from './PredictAgeAndGenderTask';\nimport {\n PredictAllFaceExpressionsWithFaceAlignmentTask,\n PredictSingleFaceExpressionsWithFaceAlignmentTask,\n} from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n\n const faceLandmarksByFace = await Promise.all(faces.map(\n (face) => this.landmarkNet.detectLandmarks(face),\n )) as FaceLandmarks68[];\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask<\n TSource extends WithFaceDetection<{}>\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n ) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const { input, options } = this;\n\n // eslint-disable-next-line no-nested-ternary\n const faceDetectionFunction = options instanceof TinyFaceDetectorOptions\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options)\n : (\n // eslint-disable-next-line no-nested-ternary\n options instanceof SsdMobilenetv1Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options)\n : (\n options instanceof TinyYolov2Options\n // eslint-disable-next-line no-shadow\n ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options)\n : null\n )\n );\n\n if (!faceDetectionFunction) {\n throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options');\n }\n\n return faceDetectionFunction(input);\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise[]>(async (resolve) => {\n const detections = await this.run();\n resolve(detections.map((detection) => extendWithFaceDetection({}, detection)));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) {\n faceDetectionWithHighestScore = faceDetection;\n }\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet: boolean = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(\n input: TNetInput,\n options: FaceDetectionOptions = new SsdMobilenetv1Options(),\n): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\n// export allFaces API for backward compatibility\n\nexport async function allFacesSsdMobilenetv1(\n input: TNetInput,\n minConfidence?: number,\n): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(\n input: TNetInput,\n forwardParams: ITinyYolov2Options = {},\n): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff ** 2), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[]\n\n private _distanceThreshold: number\n\n constructor(\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\n distanceThreshold: number = 0.6,\n ) {\n this._distanceThreshold = distanceThreshold;\n\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n\n if (!inputArray.length) {\n throw new Error('FaceRecognizer.constructor - expected atleast one input');\n }\n\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) {\n return desc;\n }\n\n if (desc instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n }\n\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n }\n\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0)\n / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(\n label,\n this.computeMeanDistance(queryDescriptor, descriptors),\n ))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return bestMatch.distance < this.distanceThreshold\n ? bestMatch\n : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this.distanceThreshold,\n labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors\n .map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n"], + "mappings": "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AAM,KAEzD,MAAA,GAAc,QAAQ,GAAK,EAAQ,8BAA8B,IAE1D,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,MACb,WAAY,IC2FR,GAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GE5TjB,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,GACxB,GAAS,GAAgB,EAGrB,YAA0B,GAC9B,GAAI,CAAE,KAAgB,MACpB,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,OAAA,SAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG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8BAA8B,IACtD,EAGF,GAAM,KAAyC,CACpD,WAAY,GACZ,YAAa,QACb,WAAY,KC4DR,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IAGF,OAAW,KAAgB,KACzB,GAAe,GErUjB,GAAM,KAAU,QCyCH,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,KCjCE,GAAZ,AAAA,UAAY,GACV,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,MAAA,GAAA,QACA,EAAA,EAAA,KAAA,GAAA,OACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,UAAA,GAAA,cALU,IAAA,IAAQ,KASpB,GAAY,IAAZ,AAAA,UAAY,GACV,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,KAAA,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", "names": [] } diff --git a/dist/face-api.json b/dist/face-api.json index ed77009..78f7be2 100644 --- a/dist/face-api.json +++ b/dist/face-api.json @@ -1,7 +1,7 @@ { "inputs": { "dist/tfjs.esm.js": { - "bytes": 1053904, + "bytes": 1055784, "imports": [] }, "src/draw/drawContour.ts": { @@ -2591,7 +2591,7 @@ "imports": [], "exports": [], "inputs": {}, - "bytes": 1445466 + "bytes": 1447740 }, "dist/face-api.js": { "imports": [], @@ -2604,7 +2604,7 @@ "bytesInOutput": 3011 }, "dist/tfjs.esm.js": { - "bytesInOutput": 1045393 + "bytesInOutput": 1047274 }, "src/draw/index.ts": { "bytesInOutput": 280 @@ -3066,7 +3066,7 @@ "bytesInOutput": 446 } }, - "bytes": 1132908 + "bytes": 1134789 } } } diff --git a/dist/face-api.node-gpu.js b/dist/face-api.node-gpu.js index 541d403..4881a26 100644 --- a/dist/face-api.node-gpu.js +++ b/dist/face-api.node-gpu.js @@ -5,5 +5,5 @@ author: ' */ -var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>o&&o.__esModule?o:vn(Er(Ye(o!=null?fn(hn(o)):{},"default",{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>o&&o.__esModule?o:go(bo(Cr(o!=null?yn(Fn(o)):{},"default",{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs-node-gpu")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>ee,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>oe,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>re,SsdMobilenetv1:()=>Ut,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Da,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>wa,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>da,createCanvas:()=>ne,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>na,createFaceRecognitionNet:()=>Un,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ea,createTinyYolov2:()=>ia,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>pa,detectLandmarks:()=>Pa,detectSingleFace:()=>_a,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Yt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Xn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>zt,isWithGender:()=>Jn,loadAgeGenderModel:()=>ya,loadFaceDetectionModel:()=>Fa,loadFaceExpressionModel:()=>va,loadFaceLandmarkModel:()=>xa,loadFaceLandmarkTinyModel:()=>ba,loadFaceRecognitionModel:()=>ga,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>fa,loadTinyYolov2Model:()=>ha,loadWeightMap:()=>qr,locateFaces:()=>Ta,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>la,recognizeFaceExpressions:()=>ua,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ma,tinyFaceDetector:()=>ca,tinyYolov2:()=>ma,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>Ia});var Ma=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>jn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>te,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function te(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ee=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var re=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new re(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var oe=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!te(t.score)||!te(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:t}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):jr.isNodejs()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function ne({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=ne({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=ne({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=ne({width:c,height:m});return O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Yt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Yt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Yt(o)).json()}async function Rn(o){return new Float32Array(await(await Yt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function Gt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function zt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof oe&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="0.12.5";var ut=b(g());var I=b(g());function Hn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Hn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Yn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Yn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function Gn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=Gn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new oe(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function zn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=zn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Vn(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Vn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Un(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Xn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function Jn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&te(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function qn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Zn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Zn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Kn=.0010000000474974513;function Qn(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Kn),yt.clipByValue(r,0,6)})}function ta(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ta(i);r=Qn(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ea(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ea(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function ra(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function oa(o,t){let{sizes:e,centers:r}=ra(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=oa(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Vt(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(Gt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(Gt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Vt(t,e.box_predictor_0),u=Vt(o,e.box_predictor_1),l=Vt(n,e.box_predictor_2),v=Vt(s,e.box_predictor_3),_=Vt(c,e.box_predictor_4),h=Vt(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Ut=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new re(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Ut;return t.extractWeights(o),t}function na(o){return Jo(o)}var qo=class extends Ut{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function aa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=aa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,Qt=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),Qt=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function sa(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=sa(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),Gt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(Gt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,Gt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:Qt,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new ee(Pt,_t,Pt+it,_t+X),score:L,classScore:L*Qt,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ia(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Xt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>zt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Xt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Ut,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ca=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ma=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),pa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),da=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ua=o=>P.faceExpressionNet.predictExpressions(o),la=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),fa=o=>P.tinyFaceDetector.load(o),ha=o=>P.tinyYolov2.load(o),xa=o=>P.faceLandmark68Net.load(o),ba=o=>P.faceLandmark68TinyNet.load(o),ga=o=>P.faceRecognitionNet.load(o),va=o=>P.faceExpressionNet.load(o),ya=o=>P.ageGenderNet.load(o),Fa=dn,Ta=mn,Pa=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Zt=class extends _e{withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},Jt=class extends Te{withFaceExpressions(){return new Zt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},qt=class extends Pe{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Xt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r=e instanceof gr?n=>P.tinyFaceDetector.locateFaces(n,e):e instanceof Z?n=>P.ssdMobilenetv1.locateFaces(n,e):e instanceof lt?n=>P.tinyYolov2.locateFaces(n,e):null;if(!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return r(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function _a(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function wa(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Da=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ea(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Ca=typeof process!="undefined",Na=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Ia={faceapi:No,node:Ca,browser:Na}; +var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>o&&o.__esModule?o:vn(Er(Ye(o!=null?fn(hn(o)):{},"default",{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>o&&o.__esModule?o:go(bo(Cr(o!=null?yn(Fn(o)):{},"default",{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs-node-gpu")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>ee,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>oe,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>re,SsdMobilenetv1:()=>Ut,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Da,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>wa,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>da,createCanvas:()=>ne,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>na,createFaceRecognitionNet:()=>Un,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ea,createTinyYolov2:()=>ia,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>pa,detectLandmarks:()=>Pa,detectSingleFace:()=>_a,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Yt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Xn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>zt,isWithGender:()=>Jn,loadAgeGenderModel:()=>ya,loadFaceDetectionModel:()=>Fa,loadFaceExpressionModel:()=>va,loadFaceLandmarkModel:()=>xa,loadFaceLandmarkTinyModel:()=>ba,loadFaceRecognitionModel:()=>ga,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>fa,loadTinyYolov2Model:()=>ha,loadWeightMap:()=>qr,locateFaces:()=>Ta,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>la,recognizeFaceExpressions:()=>ua,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ma,tinyFaceDetector:()=>ca,tinyYolov2:()=>ma,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>Ia});var Ma=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>jn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>te,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function te(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ee=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var re=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new re(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var oe=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!te(t.score)||!te(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:t}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):jr.isNodejs()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function ne({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=ne({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=ne({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=ne({width:c,height:m});return O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Yt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Yt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Yt(o)).json()}async function Rn(o){return new Float32Array(await(await Yt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function Gt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function zt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof oe&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="0.12.6";var ut=b(g());var I=b(g());function Hn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Hn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Yn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Yn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function Gn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=Gn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new oe(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function zn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=zn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Vn(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Vn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Un(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Xn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function Jn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&te(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function qn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Zn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Zn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Kn=.0010000000474974513;function Qn(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Kn),yt.clipByValue(r,0,6)})}function ta(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ta(i);r=Qn(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ea(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ea(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function ra(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function oa(o,t){let{sizes:e,centers:r}=ra(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=oa(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Vt(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(Gt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(Gt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Vt(t,e.box_predictor_0),u=Vt(o,e.box_predictor_1),l=Vt(n,e.box_predictor_2),v=Vt(s,e.box_predictor_3),_=Vt(c,e.box_predictor_4),h=Vt(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Ut=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new re(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Ut;return t.extractWeights(o),t}function na(o){return Jo(o)}var qo=class extends Ut{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function aa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=aa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,Qt=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),Qt=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function sa(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=sa(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),Gt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(Gt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,Gt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:Qt,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new ee(Pt,_t,Pt+it,_t+X),score:L,classScore:L*Qt,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ia(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Xt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>zt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Xt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Ut,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ca=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ma=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),pa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),da=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ua=o=>P.faceExpressionNet.predictExpressions(o),la=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),fa=o=>P.tinyFaceDetector.load(o),ha=o=>P.tinyYolov2.load(o),xa=o=>P.faceLandmark68Net.load(o),ba=o=>P.faceLandmark68TinyNet.load(o),ga=o=>P.faceRecognitionNet.load(o),va=o=>P.faceExpressionNet.load(o),ya=o=>P.ageGenderNet.load(o),Fa=dn,Ta=mn,Pa=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Zt=class extends _e{withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},Jt=class extends Te{withFaceExpressions(){return new Zt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},qt=class extends Pe{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Xt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r=e instanceof gr?n=>P.tinyFaceDetector.locateFaces(n,e):e instanceof Z?n=>P.ssdMobilenetv1.locateFaces(n,e):e instanceof lt?n=>P.tinyYolov2.locateFaces(n,e):null;if(!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return r(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function _a(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function wa(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Da=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ea(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Ca=typeof process!="undefined",Na=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Ia={faceapi:No,node:Ca,browser:Na}; //# sourceMappingURL=face-api.node-gpu.js.map diff --git a/dist/face-api.node.js b/dist/face-api.node.js index 5a638d1..49c3982 100644 --- a/dist/face-api.node.js +++ b/dist/face-api.node.js @@ -5,5 +5,5 @@ author: ' */ -var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>o&&o.__esModule?o:vn(Er(Ye(o!=null?fn(hn(o)):{},"default",{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>o&&o.__esModule?o:go(bo(Cr(o!=null?yn(Fn(o)):{},"default",{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs-node")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>ee,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>oe,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>re,SsdMobilenetv1:()=>Ut,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Da,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>wa,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>da,createCanvas:()=>ne,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>na,createFaceRecognitionNet:()=>Un,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ea,createTinyYolov2:()=>ia,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>pa,detectLandmarks:()=>Pa,detectSingleFace:()=>_a,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Yt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Xn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>zt,isWithGender:()=>Jn,loadAgeGenderModel:()=>ya,loadFaceDetectionModel:()=>Fa,loadFaceExpressionModel:()=>va,loadFaceLandmarkModel:()=>xa,loadFaceLandmarkTinyModel:()=>ba,loadFaceRecognitionModel:()=>ga,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>fa,loadTinyYolov2Model:()=>ha,loadWeightMap:()=>qr,locateFaces:()=>Ta,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>la,recognizeFaceExpressions:()=>ua,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ma,tinyFaceDetector:()=>ca,tinyYolov2:()=>ma,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>Ia});var Ma=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>jn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>te,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function te(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ee=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var re=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new re(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var oe=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!te(t.score)||!te(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:t}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):jr.isNodejs()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function ne({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=ne({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=ne({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=ne({width:c,height:m});return O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Yt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Yt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Yt(o)).json()}async function Rn(o){return new Float32Array(await(await Yt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function Gt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function zt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof oe&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="0.12.5";var ut=b(g());var I=b(g());function Hn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Hn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Yn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Yn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function Gn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=Gn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new oe(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function zn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=zn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Vn(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Vn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Un(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Xn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function Jn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&te(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function qn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Zn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Zn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Kn=.0010000000474974513;function Qn(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Kn),yt.clipByValue(r,0,6)})}function ta(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ta(i);r=Qn(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ea(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ea(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function ra(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function oa(o,t){let{sizes:e,centers:r}=ra(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=oa(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Vt(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(Gt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(Gt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Vt(t,e.box_predictor_0),u=Vt(o,e.box_predictor_1),l=Vt(n,e.box_predictor_2),v=Vt(s,e.box_predictor_3),_=Vt(c,e.box_predictor_4),h=Vt(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Ut=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new re(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Ut;return t.extractWeights(o),t}function na(o){return Jo(o)}var qo=class extends Ut{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function aa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=aa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,Qt=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),Qt=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function sa(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=sa(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),Gt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(Gt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,Gt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:Qt,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new ee(Pt,_t,Pt+it,_t+X),score:L,classScore:L*Qt,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ia(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Xt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>zt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Xt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Ut,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ca=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ma=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),pa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),da=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ua=o=>P.faceExpressionNet.predictExpressions(o),la=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),fa=o=>P.tinyFaceDetector.load(o),ha=o=>P.tinyYolov2.load(o),xa=o=>P.faceLandmark68Net.load(o),ba=o=>P.faceLandmark68TinyNet.load(o),ga=o=>P.faceRecognitionNet.load(o),va=o=>P.faceExpressionNet.load(o),ya=o=>P.ageGenderNet.load(o),Fa=dn,Ta=mn,Pa=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Zt=class extends _e{withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},Jt=class extends Te{withFaceExpressions(){return new Zt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},qt=class extends Pe{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Xt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r=e instanceof gr?n=>P.tinyFaceDetector.locateFaces(n,e):e instanceof Z?n=>P.ssdMobilenetv1.locateFaces(n,e):e instanceof lt?n=>P.tinyYolov2.locateFaces(n,e):null;if(!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return r(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function _a(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function wa(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Da=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ea(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Ca=typeof process!="undefined",Na=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Ia={faceapi:No,node:Ca,browser:Na}; +var fn=Object.create,Ye=Object.defineProperty,hn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty,bn=Object.getOwnPropertyNames,gn=Object.getOwnPropertyDescriptor;var Er=o=>Ye(o,"__esModule",{value:!0});var xo=(o,t)=>()=>(t||(t={exports:{}},o(t.exports,t)),t.exports),Ge=(o,t)=>{for(var e in t)Ye(o,e,{get:t[e],enumerable:!0})},vn=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bn(t))!xn.call(o,r)&&r!=="default"&&Ye(o,r,{get:()=>t[r],enumerable:!(e=gn(t,r))||e.enumerable});return o},b=o=>o&&o.__esModule?o:vn(Er(Ye(o!=null?fn(hn(o)):{},"default",{value:o,enumerable:!0})),o);var g=xo(Mr=>{var yn=Object.create,Cr=Object.defineProperty,Fn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty,Pn=Object.getOwnPropertyNames,_n=Object.getOwnPropertyDescriptor,bo=o=>Cr(o,"__esModule",{value:!0}),go=(o,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Pn(t))!Tn.call(o,r)&&r!=="default"&&Cr(o,r,{get:()=>t[r],enumerable:!(e=_n(t,r))||e.enumerable});return o},wn=o=>o&&o.__esModule?o:go(bo(Cr(o!=null?yn(Fn(o)):{},"default",{value:o,enumerable:!0})),o);bo(Mr);go(Mr,wn(require("@tensorflow/tfjs-node")))});var Po=xo((Ln,To)=>{Er(Ln);Ge(Ln,{isNodejs:()=>kn});function kn(){return typeof global=="object"&&!0&&typeof To!="undefined"&&typeof process!="undefined"&&!!process.version}});Er(exports);Ge(exports,{AgeGenderNet:()=>pr,BoundingBox:()=>ee,Box:()=>D,ComposableTask:()=>tt,ComputeAllFaceDescriptorsTask:()=>At,ComputeFaceDescriptorsTaskBase:()=>vr,ComputeSingleFaceDescriptorTask:()=>Wt,DetectAllFaceLandmarksTask:()=>Fr,DetectAllFacesTask:()=>He,DetectFaceLandmarksTaskBase:()=>yr,DetectFacesTaskBase:()=>Pr,DetectSingleFaceLandmarksTask:()=>Tr,DetectSingleFaceTask:()=>_r,Dimensions:()=>A,FACE_EXPRESSION_LABELS:()=>Zr,FaceDetection:()=>M,FaceDetectionNet:()=>qo,FaceExpressionNet:()=>cr,FaceExpressions:()=>It,FaceLandmark68Net:()=>fe,FaceLandmark68TinyNet:()=>dr,FaceLandmarkNet:()=>Ro,FaceLandmarks:()=>V,FaceLandmarks5:()=>yo,FaceLandmarks68:()=>oe,FaceMatch:()=>Ee,FaceMatcher:()=>Dr,FaceRecognitionNet:()=>xe,Gender:()=>vt,LabeledBox:()=>Me,LabeledFaceDescriptors:()=>xt,NetInput:()=>bt,NeuralNetwork:()=>S,ObjectDetection:()=>Dt,Point:()=>x,PredictedBox:()=>Fo,Rect:()=>re,SsdMobilenetv1:()=>Ut,SsdMobilenetv1Options:()=>Z,TinyFaceDetector:()=>Fe,TinyFaceDetectorOptions:()=>gr,TinyYolov2:()=>ve,TinyYolov2Options:()=>lt,allFaces:()=>Da,allFacesSsdMobilenetv1:()=>un,allFacesTinyYolov2:()=>wa,awaitMediaLoaded:()=>zr,bufferToImage:()=>Vr,computeFaceDescriptor:()=>da,createCanvas:()=>ne,createCanvasFromMedia:()=>Ie,createFaceDetectionNet:()=>na,createFaceRecognitionNet:()=>Un,createSsdMobilenetv1:()=>Jo,createTinyFaceDetector:()=>Ea,createTinyYolov2:()=>ia,detectAllFaces:()=>wr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>pa,detectLandmarks:()=>Pa,detectSingleFace:()=>_a,draw:()=>eo,env:()=>w,euclideanDistance:()=>fo,extendWithAge:()=>hr,extendWithFaceDescriptor:()=>fr,extendWithFaceDetection:()=>$t,extendWithFaceExpressions:()=>mr,extendWithFaceLandmarks:()=>le,extendWithGender:()=>xr,extractFaceTensors:()=>se,extractFaces:()=>ae,fetchImage:()=>Bn,fetchJson:()=>Jr,fetchNetWeights:()=>Rn,fetchOrThrow:()=>Yt,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Ht,imageTensorToCanvas:()=>Ur,imageToSquare:()=>Xr,inverseSigmoid:()=>Mn,iou:()=>Sr,isMediaElement:()=>qe,isMediaLoaded:()=>Ne,isWithAge:()=>Xn,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>Kr,isWithFaceLandmarks:()=>zt,isWithGender:()=>Jn,loadAgeGenderModel:()=>ya,loadFaceDetectionModel:()=>Fa,loadFaceExpressionModel:()=>va,loadFaceLandmarkModel:()=>xa,loadFaceLandmarkTinyModel:()=>ba,loadFaceRecognitionModel:()=>ga,loadSsdMobilenetv1Model:()=>dn,loadTinyFaceDetectorModel:()=>fa,loadTinyYolov2Model:()=>ha,loadWeightMap:()=>qr,locateFaces:()=>Ta,matchDimensions:()=>On,minBbox:()=>Ar,nets:()=>P,nonMaxSuppression:()=>Wr,normalize:()=>ot,padToSquare:()=>Br,predictAgeAndGender:()=>la,recognizeFaceExpressions:()=>ua,resizeResults:()=>ln,resolveInput:()=>jt,shuffleArray:()=>En,sigmoid:()=>De,ssdMobilenetv1:()=>mn,tf:()=>Ma,tinyFaceDetector:()=>ca,tinyYolov2:()=>ma,toNetInput:()=>E,utils:()=>Nr,validateConfig:()=>io,version:()=>Ia});var Ma=b(g());var eo={};Ge(eo,{AnchorPosition:()=>dt,DrawBox:()=>Xe,DrawBoxOptions:()=>Gr,DrawFaceLandmarks:()=>to,DrawFaceLandmarksOptions:()=>Qr,DrawTextField:()=>Mt,DrawTextFieldOptions:()=>Ce,drawContour:()=>ft,drawDetections:()=>Wn,drawFaceExpressions:()=>$n,drawFaceLandmarks:()=>jn});function ft(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Nr={};Ge(Nr,{computeReshapedDimensions:()=>kr,getCenterPoint:()=>Ot,isDimensions:()=>Ve,isEven:()=>ze,isFloat:()=>Lr,isTensor:()=>Bt,isTensor1D:()=>Dn,isTensor2D:()=>Ir,isTensor3D:()=>ht,isTensor4D:()=>z,isValidNumber:()=>rt,isValidProbablitiy:()=>te,range:()=>ct,round:()=>Rt});var vo=b(g());var A=class{constructor(t,e){if(!rt(t)||!rt(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new A(1/this.width,1/this.height)}};function Bt(o,t){return o instanceof vo.Tensor&&o.shape.length===t}function Dn(o){return Bt(o,1)}function Ir(o){return Bt(o,2)}function ht(o){return Bt(o,3)}function z(o){return Bt(o,4)}function Lr(o){return o%1!=0}function ze(o){return o%2==0}function Rt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function Ve(o){return o&&o.width&&o.height}function kr({width:o,height:t},e){let r=e/Math.max(t,o);return new A(Math.round(o*r),Math.round(t*r))}function Ot(o){return o.reduce((t,e)=>t.add(e),new x(0,0)).div(new x(o.length,o.length))}function ct(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function rt(o){return!!o&&o!==Infinity&&o!==-Infinity&&!Number.isNaN(o)||o===0}function te(o){return rt(o)&&o>=0&&o<=1}var x=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new x(this.x+t.x,this.y+t.y)}sub(t){return new x(this.x-t.x,this.y-t.y)}mul(t){return new x(this.x*t.x,this.y*t.y)}div(t){return new x(this.x/t.x,this.y/t.y)}abs(){return new x(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new x(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(rt)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(rt),a=[r.x,r.y,r.width,r.height].every(rt);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new x(this.left,this.top)}get topRight(){return new x(this.right,this.top)}get bottomLeft(){return new x(this.left,this.bottom)}get bottomRight(){return new x(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-d+e+r,d=e),u>t&&(c=-u+t+n,u=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:u,x:m,ex:d,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var ee=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var Dt=class{constructor(t,e,r,n,a){this._imageDims=new A(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new Dt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends Dt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function Sr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Ar(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var mt=b(g());function ot(o,t){return mt.tidy(()=>{let[e,r,n]=t,a=mt.fill([...o.shape.slice(0,3),1],e,"float32"),s=mt.fill([...o.shape.slice(0,3),1],r,"float32"),i=mt.fill([...o.shape.slice(0,3),1],n,"float32"),c=mt.concat([a,s,i],3);return mt.sub(o,c)})}var Et=b(g());function Br(o,t=!1){return Et.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=u=>{let l=o.shape.slice();return l[s]=u,Et.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],d=[t&&m?i(m):null,o,c].filter(u=>!!u).map(u=>Et.cast(u,"float32"));return Et.concat(d,s)})}function En(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function De(o){return 1/(1+Math.exp(-o))}function Mn(o){return Math.log(o/(1-o))}var re=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Cn=.5,Nn=.43,In=.45,V=class{constructor(t,e,r=new x(0,0)){let{width:n,height:a}=e;this._imgDims=new A(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new x(n,a)).add(r))}get shift(){return new x(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new x(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new x(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=d=>n.sub(d).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/In),c=Ot(t),m=Math.floor(Math.max(0,c.x-Cn*i)),p=Math.floor(Math.max(0,c.y-Nn*i));return new re(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Ar(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yo=class extends V{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ot([t[3],t[4]])]}};var oe=class extends V{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ot)}};var Ee=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Rt(this.distance)})`:""}`}};var Me=class extends D{static assertIsValidLabeledBox(t,e){if(D.assertIsValidBox(t,e),!rt(t.label))throw new Error(`${e} - expected property label (${t.label}) to be a number`)}constructor(t,e){super(t);this._label=e}get label(){return this._label}};var xt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new xt(t.label,e)}};var Fo=class extends Me{static assertIsValidPredictedBox(t,e){if(Me.assertIsValidLabeledBox(t,e),!te(t.score)||!te(t.classScore))throw new Error(`${e} - expected properties score (${t.score}) and (${t.classScore}) to be a number between [0, 1]`)}constructor(t,e,r,n){super(t,e);this._score=r,this._classScore=n}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function $t(o,t){return{...o,...{detection:t}}}function Rr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");let t=()=>{throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:o,readFile:t}}function Ue(o){let t="";if(!o)try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Or(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},n=global.fetch,a=Ue();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:e,createImageElement:r,fetch:n,...a}}function $r(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var jr=b(Po()),k;function Sn(){if(!k)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return k}function Hr(o){k=o}function Yr(){return $r()?Hr(Rr()):jr.isNodejs()?Hr(Or()):null}function An(o){if(k||Yr(),!k)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=k.Canvas,Image:e=k.Image}=o;k.Canvas=t,k.Image=e,k.createCanvasElement=o.createCanvasElement||(()=>new t),k.createImageElement=o.createImageElement||(()=>new e),k.ImageData=o.ImageData||k.ImageData,k.Video=o.Video||k.Video,k.fetch=o.fetch||k.fetch,k.readFile=o.readFile||k.readFile}var w={getEnv:Sn,setEnv:Hr,initialize:Yr,createBrowserEnv:Rr,createFileSystem:Ue,createNodejsEnv:Or,monkeyPatch:An,isBrowser:$r,isNodejs:jr.isNodejs};Yr();function jt(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=jt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var dt;(function(o){o.TOP_LEFT="TOP_LEFT",o.TOP_RIGHT="TOP_RIGHT",o.BOTTOM_LEFT="BOTTOM_LEFT",o.BOTTOM_RIGHT="BOTTOM_RIGHT"})(dt||(dt={}));var Ce=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||dt.TOP_LEFT,this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},Mt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof Mt?t.text:t,this.anchor=e,this.options=new Ce(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let v=c+d.x,_=c+d.y+(l+1)*s;r.fillText(u,v,_)})}};var Gr=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:dt.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Ce({...s,...a})}},Xe=class{constructor(t,e={}){this.box=new D(t),this.options=new Gr(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new Mt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function Wn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Rt(n)}`:void 0;new Xe(a,{label:s}).draw(o)})}var ue=b(g());function Ne(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function zr(o){return new Promise((t,e)=>{if(o instanceof w.getEnv().Canvas||Ne(o))return t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function Vr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Ht(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new A(o.naturalWidth,o.naturalHeight):o instanceof e?new A(o.videoWidth,o.videoHeight):new A(o.width,o.height)}function ne({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function Ie(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ne(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Ht(o),a=ne({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var Je=b(g());async function Ur(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(z(o)?1:0),s=Je.tidy(()=>o.as3D(r,n,a).toInt());return await Je.browser.toPixels(s,e),s.dispose(),e}function qe(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var J=b(g());function Xr(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");let a=Ht(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=ne({width:t,height:t}),p=o instanceof n?o:Ie(o),d=Math.abs(i-c)/2,u=e&&i{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(z(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:Ie(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return ct(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return kr({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,J.tidy(()=>{let r=ct(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof J.Tensor){let i=z(s)?s:s.expandDims();return i=Br(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=J.image.resizeBilinear(i,[t,t])),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return J.browser.fromPixels(Xr(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return J.stack(r.map(a=>J.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function E(o){if(o instanceof bt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(jt);return r.forEach((n,a)=>{if(!qe(n)&&!ht(n)&&!z(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(z(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>qe(n)&&zr(n))),new bt(r,Array.isArray(o))}async function ae(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await E(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await Ur(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=ne({width:c,height:m});return O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var Ze=b(g());async function se(o,t){if(!ht(o)&&!z(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(z(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return Ze.tidy(()=>{let[e,r,n]=o.shape.slice(z(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).map(({x:i,y:c,width:m,height:p})=>Ze.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function Yt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Bn(o){let t=await Yt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return Vr(e)}async function Jr(o){return(await Yt(o)).json()}async function Rn(o){return new Float32Array(await(await Yt(o)).arrayBuffer())}var _o=b(g());function Ke(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function qr(o,t){let{manifestUri:e,modelBaseUri:r}=Ke(o,t),n=await Jr(e);return _o.io.loadWeights(n,r)}function On(o,t,e=!1){let{width:r,height:n}=e?Ht(t):t;return o.width=r,o.height=n,{width:r,height:n}}var Nt=b(g());var gt=b(g());var S=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof gt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof gt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=gt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await qr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=Ke(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(d=>d.buffer))),s=gt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof gt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var C=b(g());var ie=b(g());function $(o,t,e){return ie.tidy(()=>{let r=ie.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=ie.add(r,t.bias),r})}function Qe(o,t,e=!1){return C.tidy(()=>{let r=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):$(o,t.conv0,[2,2])),n=$(r,t.conv1,[1,1]),a=C.relu(C.add(r,n)),s=$(a,t.conv2,[1,1]);return C.relu(C.add(r,C.add(n,s)))})}function Le(o,t,e=!1,r=!0){return C.tidy(()=>{let n=C.relu(e?C.add(C.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):$(o,t.conv0,r?[2,2]:[1,1])),a=$(n,t.conv1,[1,1]),s=C.relu(C.add(n,a)),i=$(s,t.conv2,[1,1]),c=C.relu(C.add(n,C.add(a,i))),m=$(c,t.conv3,[1,1]);return C.relu(C.add(n,C.add(a,C.add(i,m))))})}var Ct=b(g());function Gt(o,t,e="same",r=!1){return Ct.tidy(()=>{let n=Ct.add(Ct.conv2d(o,t.filters,[1,1],e),t.bias);return r?Ct.relu(n):n})}function W(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var tr=b(g());function ce(o,t){return(e,r,n,a)=>{let s=tr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=tr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var er=b(g());function rr(o,t){return(e,r,n)=>{let a=er.tensor2d(o(e*r),[e,r]),s=er.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var ke=b(g());var or=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function me(o,t){return(e,r,n)=>{let a=ke.tensor4d(o(3*3*e),[3,3,e,1]),s=ke.tensor4d(o(e*r),[1,1,e,r]),i=ke.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new or(a,s,i)}}function pe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new or(e,r,n)}}function j(o,t){return(e,r,n)=>{let a=o[e];if(!Bt(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function B(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function nr(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),d=r(i,i,`${c}/conv1`),u=r(i,i,`${c}/conv2`);return{conv0:p,conv1:d,conv2:u}}function a(s,i,c,m=!1){let{conv0:p,conv1:d,conv2:u}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:d,conv2:u,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function wo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock4Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function ar(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function sr(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:d}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),d=n(`${i}/conv2`),u=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:d,conv3:u}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Do(o){let t=[],{extractDenseBlock4Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return W(o,t),{params:r,paramMappings:t}}var Se=class extends S{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return Nt.tidy(()=>{let r=Nt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Nt.scalar(255)),s=Le(a,e.dense0,!0);return s=Le(s,e.dense1),s=Le(s,e.dense2),s=Le(s,e.dense3),s=Nt.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Do(t)}extractParams(t){return wo(t)}};var Co=b(g());var de=b(g());function Ae(o,t){return de.tidy(()=>de.add(de.matMul(o,t.weights),t.bias))}function Eo(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=B(o),i=rr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Mo(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return W(o,t),{params:n,paramMappings:t}}function ir(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var We=class extends S{constructor(t,e){super(t);this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return Co.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t;return Ae(r.as2D(r.shape[0],-1),e.fc)})}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return Eo(t,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Mo(r)}extractParams(t){let e=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),n=r*e+r,a=t.slice(0,t.length-n),s=t.slice(t.length-n);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Zr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],It=class{constructor(t){if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Zr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Zr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var cr=class extends We{constructor(t=new Se){super("FaceExpressionNet",t)}forwardInput(t){return ue.tidy(()=>ue.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await E(t))}async predictExpressions(t){let e=await E(t),r=await this.forwardInput(e),n=await Promise.all(ue.unstack(r).map(async s=>{let i=await s.data();return s.dispose(),i}));r.dispose();let a=n.map(s=>new It(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Kr(o){return o.expressions instanceof It}function mr(o,t){return{...o,...{expressions:t}}}function $n(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof It?a:Kr(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(d=>d.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new x(0,0);new Mt(c.map(d=>`${d.expression} (${Rt(d.probability)})`),m).draw(o)})}function zt(o){return pt(o)&&o.landmarks instanceof V&&o.unshiftedLandmarks instanceof V&&o.alignedRect instanceof M}function le(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s}}}var Qr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},to=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Qr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof oe&&(e.strokeStyle=s,e.lineWidth=a,ft(e,this.faceLandmarks.getJawOutline()),ft(e,this.faceLandmarks.getLeftEyeBrow()),ft(e,this.faceLandmarks.getRightEyeBrow()),ft(e,this.faceLandmarks.getNose()),ft(e,this.faceLandmarks.getLeftEye(),!0),ft(e,this.faceLandmarks.getRightEye(),!0),ft(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function jn(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof V?r:zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new to(n).draw(o)})}var No="0.12.6";var ut=b(g());var I=b(g());function Hn(o,t){let e=ce(o,t),r=me(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),d=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:d}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Io(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=B(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=Hn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),d=i(64,128,"entry_flow/reduction_block_1"),u={conv_in:m,reduction_block_0:p,reduction_block_1:d},l={};ct(t,0,1).forEach(y=>{l[`main_block_${y}`]=c(128,`middle_flow/main_block_${y}`)});let v=i(128,256,"exit_flow/reduction_block"),_=s(256,512,"exit_flow/separable_conv"),h={reduction_block:v,separable_conv:_};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:u,middle_flow:l,exit_flow:h}}}function Yn(o,t){let e=j(o,t),r=ar(e),n=pe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Lo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Yn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},d={};ct(t,0,1).forEach(_=>{d[`main_block_${_}`]=s(`middle_flow/main_block_${_}`)});let u=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),v={reduction_block:u,separable_conv:l};return W(o,e),{params:{entry_flow:p,middle_flow:d,exit_flow:v},paramMappings:e}}function ko(o,t,e){return I.add(I.conv2d(o,t.filters,e,"same"),t.bias)}function ro(o,t,e=!0){let r=e?I.relu(o):o;return r=$(r,t.separable_conv0,[1,1]),r=$(I.relu(r),t.separable_conv1,[1,1]),r=I.maxPool(r,[3,3],[2,2],"same"),r=I.add(r,ko(o,t.expansion_conv,[2,2])),r}function Gn(o,t){let e=$(I.relu(o),t.separable_conv0,[1,1]);return e=$(I.relu(e),t.separable_conv1,[1,1]),e=$(I.relu(e),t.separable_conv2,[1,1]),e=I.add(e,o),e}var oo=class extends S{constructor(t){super("TinyXception");this._numMainBlocks=t}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyXception - load model before inference");return I.tidy(()=>{let r=I.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(I.scalar(256)),s=I.relu(ko(a,e.entry_flow.conv_in,[2,2]));return s=ro(s,e.entry_flow.reduction_block_0,!1),s=ro(s,e.entry_flow.reduction_block_1),ct(this._numMainBlocks,0,1).forEach(i=>{s=Gn(s,e.middle_flow[`main_block_${i}`])}),s=ro(s,e.exit_flow.reduction_block),s=I.relu($(s,e.exit_flow.separable_conv,[1,1])),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(t){return Lo(t,this._numMainBlocks)}extractParams(t){return Io(t,this._numMainBlocks)}};function So(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),n=rr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ao(o){let t=[],e=j(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return W(o,t),{params:n,paramMappings:t}}var vt;(function(o){o.FEMALE="female",o.MALE="male"})(vt||(vt={}));var pr=class extends S{constructor(t=new oo(2)){super("AgeGenderNet");this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(t){let{params:e}=this;if(!e)throw new Error(`${this._name} - load model before inference`);return ut.tidy(()=>{let r=t instanceof bt?this.faceFeatureExtractor.forwardInput(t):t,n=ut.avgPool(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),a=Ae(n,e.fc.age).as1D(),s=Ae(n,e.fc.gender);return{age:a,gender:s}})}forwardInput(t){return ut.tidy(()=>{let{age:e,gender:r}=this.runNet(t);return{age:e,gender:ut.softmax(r)}})}async forward(t){return this.forwardInput(await E(t))}async predictAgeAndGender(t){let e=await E(t),r=await this.forwardInput(e),n=ut.unstack(r.age),a=ut.unstack(r.gender),s=n.map((c,m)=>({ageTensor:c,genderTensor:a[m]})),i=await Promise.all(s.map(async({ageTensor:c,genderTensor:m})=>{let p=(await c.data())[0],d=(await m.data())[0],u=d>.5,l=u?vt.MALE:vt.FEMALE,v=u?d:1-d;return c.dispose(),m.dispose(),{age:p,gender:l,genderProbability:v}}));return r.age.dispose(),r.gender.dispose(),e.isBatchInput?i:i[0]}getDefaultModelName(){return"age_gender_model"}dispose(t=!0){this.faceFeatureExtractor.dispose(t),super.dispose(t)}loadClassifierParams(t){let{params:e,paramMappings:r}=this.extractClassifierParams(t);this._params=e,this._paramMappings=r}extractClassifierParams(t){return So(t)}extractParamsFromWeightMap(t){let{featureExtractorMap:e,classifierMap:r}=ir(t);return this.faceFeatureExtractor.loadFromWeightMap(e),Ao(r)}extractParams(t){let e=512*1+1+(512*2+2),r=t.slice(0,t.length-e),n=t.slice(t.length-e);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(n)}};var H=b(g());var Be=class extends We{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return H.tidy(()=>{let s=(d,u)=>H.stack([H.fill([68],d,"float32"),H.fill([68],u,"float32")],1).as2D(1,136).as1D(),i=(d,u)=>{let{width:l,height:v}=n[d];return u(l,v)?Math.abs(l-v)/2:0},c=d=>i(d,(u,l)=>ui(d,(u,l)=>ls(c(u),m(u))))).div(H.stack(Array.from(Array(a),(d,u)=>s(n[u].width,n[u].height))))})}forwardInput(t){return H.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await E(t))}async detectLandmarks(t){let e=await E(t),r=H.tidy(()=>H.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(await a.data()),c=i.filter((p,d)=>ze(d)),m=i.filter((p,d)=>!ze(d));return new oe(Array(68).fill(0).map((p,d)=>new x(c[d],m[d])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var fe=class extends Be{constructor(t=new Se){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var Lt=b(g());function Wo(o){let t=[],{extractDenseBlock3Params:e}=sr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return W(o,t),{params:r,paramMappings:t}}function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractDenseBlock3Params:n}=nr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var no=class extends S{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(112,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(Lt.scalar(255)),s=Qe(a,e.dense0,!0);return s=Qe(s,e.dense1),s=Qe(s,e.dense2),s=Lt.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await E(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Wo(t)}extractParams(t){return Bo(t)}};var dr=class extends Be{constructor(t=new no){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Ro=class extends fe{};var U=b(g());var he=b(g());var ur=b(g());function Oo(o,t){return ur.add(ur.mul(o,t.weights),t.biases)}function ao(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=he.conv2d(o,a,e,n);return i=he.add(i,s),i=Oo(i,t.scale),r?he.relu(i):i}function $o(o,t){return ao(o,t,[1,1],!0)}function so(o,t){return ao(o,t,[1,1],!1)}function lr(o,t){return ao(o,t,[2,2],!0,"valid")}var Y=b(g());function zn(o,t){function e(i,c,m){let p=o(i),d=p.length/(c*m*m);if(Lr(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return Y.tidy(()=>Y.transpose(Y.tensor4d(p,[c,d,m,m]),[2,3,1,0]))}function r(i,c,m,p){let d=e(i,c,m),u=Y.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:u}}function n(i,c){let m=Y.tensor1d(o(i)),p=Y.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let d=r(i,c,m,`${p}/conv`),u=n(c,`${p}/scale`);return{conv:d,scale:u}}function s(i,c,m,p,d=!1){let u=a((d?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:u,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function jo(o){let{extractWeights:t,getRemainingWeights:e}=B(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=zn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),d=a(36864,64,3,"conv64_1"),u=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),v=a(147456,128,3,"conv128_down",!0),_=a(147456,128,3,"conv128_1"),h=a(147456,128,3,"conv128_2"),y=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),F=a(589824,256,3,"conv256_2"),L=a(589824,256,3,"conv256_down_out"),G=Y.tidy(()=>Y.transpose(Y.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:d,conv64_2:u,conv64_3:l,conv128_down:v,conv128_1:_,conv128_2:h,conv256_down:y,conv256_1:T,conv256_2:F,conv256_down_out:L,fc:G},paramMappings:r}}function Vn(o,t){let e=j(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Ho(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Vn(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),d=r("conv64_3"),u=r("conv128_down"),l=r("conv128_1"),v=r("conv128_2"),_=r("conv256_down"),h=r("conv256_1"),y=r("conv256_2"),T=r("conv256_down_out"),{fc:F}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ir(F))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${F}`);let L={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:d,conv128_down:u,conv128_1:l,conv128_2:v,conv256_down:_,conv256_1:h,conv256_2:y,conv256_down_out:T,fc:F};return W(o,t),{params:L,paramMappings:t}}var R=b(g());function nt(o,t){let e=$o(o,t.conv1);return e=so(e,t.conv2),e=R.add(e,o),e=R.relu(e),e}function Re(o,t){let e=lr(o,t.conv1);e=so(e,t.conv2);let r=R.avgPool(o,2,2,"valid"),n=R.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=R.zeros(i);e=R.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=R.zeros(m);e=R.concat([e,p],2)}return r=a?R.concat([r,n],3):r,e=R.add(r,e),e=R.relu(e),e}var xe=class extends S{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return U.tidy(()=>{let r=U.cast(t.toBatchTensor(150,!0),"float32"),a=ot(r,[122.782,117.001,104.298]).div(U.scalar(256)),s=lr(a,e.conv32_down);s=U.maxPool(s,3,2,"valid"),s=nt(s,e.conv32_1),s=nt(s,e.conv32_2),s=nt(s,e.conv32_3),s=Re(s,e.conv64_down),s=nt(s,e.conv64_1),s=nt(s,e.conv64_2),s=nt(s,e.conv64_3),s=Re(s,e.conv128_down),s=nt(s,e.conv128_1),s=nt(s,e.conv128_2),s=Re(s,e.conv256_down),s=nt(s,e.conv256_1),s=nt(s,e.conv256_2),s=Re(s,e.conv256_down_out);let i=s.mean([1,2]);return U.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await E(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)==null?void 0:a.some(s=>s<=0))return new Float32Array(128);let e=await E(t),r=U.tidy(()=>U.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Ho(t)}extractParams(t){return jo(t)}};function Un(o){let t=new xe;return t.extractWeights(o),t}function fr(o,t){return{...o,...{descriptor:t}}}function Xn(o){return typeof o.age=="number"}function hr(o,t){return{...o,...{age:t}}}function Jn(o){return(o.gender===vt.MALE||o.gender===vt.FEMALE)&&te(o.genderProbability)}function xr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var st=b(g());var at=b(g());function qn(o,t){function e(c,m){let p=at.tensor4d(o(3*3*c),[3,3,c,1]),d=at.tensor1d(o(c)),u=at.tensor1d(o(c)),l=at.tensor1d(o(c)),v=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:u,batch_norm_mean:l,batch_norm_variance:v}}function r(c,m,p,d,u){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),v=at.tensor1d(o(m));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${u?"batch_norm_offset":"bias"}`}),{filters:l,bias:v}}function n(c,m,p,d){let{filters:u,bias:l}=r(c,m,p,d,!0);return{filters:u,batch_norm_offset:l}}function a(c,m,p){let d=e(c,`${p}/depthwise_conv`),u=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:u}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),d=a(128,128,"mobilenetv1/conv_3"),u=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),v=a(256,512,"mobilenetv1/conv_6"),_=a(512,512,"mobilenetv1/conv_7"),h=a(512,512,"mobilenetv1/conv_8"),y=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),F=a(512,512,"mobilenetv1/conv_11"),L=a(512,1024,"mobilenetv1/conv_12"),G=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,conv_8:h,conv_9:y,conv_10:T,conv_11:F,conv_12:L,conv_13:G}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),d=n(128,256,3,"prediction_layer/conv_3"),u=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),v=n(256,64,1,"prediction_layer/conv_6"),_=n(64,128,3,"prediction_layer/conv_7"),h=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),F=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),L=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),G=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),et=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),it=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),X=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Pt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),_t=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),wt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:d,conv_4:u,conv_5:l,conv_6:v,conv_7:_,box_predictor_0:{box_encoding_predictor:h,class_predictor:y},box_predictor_1:{box_encoding_predictor:T,class_predictor:F},box_predictor_2:{box_encoding_predictor:L,class_predictor:G},box_predictor_3:{box_encoding_predictor:et,class_predictor:it},box_predictor_4:{box_encoding_predictor:X,class_predictor:Pt},box_predictor_5:{box_encoding_predictor:_t,class_predictor:wt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=B(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qn(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function Zn(o,t){let e=j(o,t);function r(m,p,d){let u=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:u,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,d=`MobilenetV1/Conv2d_${m}_depthwise`,u=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,v=e(`${d}/depthwise_weights`,4,`${u}/filters`),_=e(`${d}/BatchNorm/gamma`,1,`${u}/batch_norm_scale`),h=e(`${d}/BatchNorm/beta`,1,`${u}/batch_norm_offset`),y=e(`${d}/BatchNorm/moving_mean`,1,`${u}/batch_norm_mean`),T=e(`${d}/BatchNorm/moving_variance`,1,`${u}/batch_norm_variance`);return{depthwise_conv:{filters:v,batch_norm_scale:_,batch_norm_offset:h,batch_norm_mean:y,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let d=e(`${m}/weights`,4,`${p}/filters`),u=e(`${m}/biases`,1,`${p}/bias`);return{filters:d,bias:u}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),d=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Zn(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return W(o,t),{params:a,paramMappings:t}}var yt=b(g());var kt=b(g());function q(o,t,e){return kt.tidy(()=>{let r=kt.conv2d(o,t.filters,e,"same");return r=kt.add(r,t.batch_norm_offset),kt.clipByValue(r,0,6)})}var Kn=.0010000000474974513;function Qn(o,t,e){return yt.tidy(()=>{let r=yt.depthwiseConv2d(o,t.filters,e,"same");return r=yt.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Kn),yt.clipByValue(r,0,6)})}function ta(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function zo(o,t){return yt.tidy(()=>{let e,r=q(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ta(i);r=Qn(r,a.depthwise_conv,c),r=q(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ea(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),d=Math.max(r[e][1],r[e][3]),u=(s-n)*(i-a),l=(p-c)*(d-m);if(u<=0||l<=0)return 0;let v=Math.max(n,c),_=Math.max(a,m),h=Math.min(s,p),y=Math.min(i,d),T=Math.max(h-v,0)*Math.max(y-_,0);return T/(u+l-T)}function Vo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>n).sort((p,d)=>d.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let d=p.score;for(let u=m.length-1;u>=0;--u){let l=ea(o,p.boxIndex,m[u]);if(l!==0&&(p.score*=c(l),p.score<=n))break}d===p.score&&m.push(p.boxIndex)}),m}var f=b(g());function ra(o){let t=f.unstack(f.transpose(o,[1,0])),e=[f.sub(t[2],t[0]),f.sub(t[3],t[1])],r=[f.add(t[0],f.div(e[0],f.scalar(2))),f.add(t[1],f.div(e[1],f.scalar(2)))];return{sizes:e,centers:r}}function oa(o,t){let{sizes:e,centers:r}=ra(o),n=f.unstack(f.transpose(t,[1,0])),a=f.div(f.mul(f.exp(f.div(n[2],f.scalar(5))),e[0]),f.scalar(2)),s=f.add(f.mul(f.div(n[0],f.scalar(10)),e[0]),r[0]),i=f.div(f.mul(f.exp(f.div(n[3],f.scalar(5))),e[1]),f.scalar(2)),c=f.add(f.mul(f.div(n[1],f.scalar(10)),e[1]),r[1]);return f.transpose(f.stack([f.sub(s,a),f.sub(c,i),f.add(s,a),f.add(c,i)]),[1,0])}function Uo(o,t,e){return f.tidy(()=>{let r=o.shape[0],n=oa(f.reshape(f.tile(e.extra_dim,[r,1,1]),[-1,4]),f.reshape(o,[-1,4]));n=f.reshape(n,[r,n.shape[0]/r,4]);let a=f.sigmoid(f.slice(t,[0,0,1],[-1,-1,-1])),s=f.slice(a,[0,0,0],[-1,-1,1]);s=f.reshape(s,[r,s.shape[1]]);let i=f.unstack(n),c=f.unstack(s);return{boxes:i,scores:c}})}var $e=b(g());var Oe=b(g());function Vt(o,t){return Oe.tidy(()=>{let e=o.shape[0],r=Oe.reshape(Gt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Oe.reshape(Gt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Xo(o,t,e){return $e.tidy(()=>{let r=q(o,e.conv_0,[1,1]),n=q(r,e.conv_1,[2,2]),a=q(n,e.conv_2,[1,1]),s=q(a,e.conv_3,[2,2]),i=q(s,e.conv_4,[1,1]),c=q(i,e.conv_5,[2,2]),m=q(c,e.conv_6,[1,1]),p=q(m,e.conv_7,[2,2]),d=Vt(t,e.box_predictor_0),u=Vt(o,e.box_predictor_1),l=Vt(n,e.box_predictor_2),v=Vt(s,e.box_predictor_3),_=Vt(c,e.box_predictor_4),h=Vt(p,e.box_predictor_5),y=$e.concat([d.boxPredictionEncoding,u.boxPredictionEncoding,l.boxPredictionEncoding,v.boxPredictionEncoding,_.boxPredictionEncoding,h.boxPredictionEncoding],1),T=$e.concat([d.classPrediction,u.classPrediction,l.classPrediction,v.classPrediction,_.classPrediction,h.classPrediction],1);return{boxPredictions:y,classPredictions:T}})}var Z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Ut=class extends S{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return st.tidy(()=>{let r=st.cast(t.toBatchTensor(512,!1),"float32"),n=st.sub(st.mul(r,st.scalar(.007843137718737125)),st.scalar(1)),a=zo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Xo(a.out,a.conv11,e.prediction_layer);return Uo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await E(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new Z(e),a=await E(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let F=1;F{let[L,G]=[Math.max(0,y[F][0]),Math.min(1,y[F][2])].map(X=>X*h),[et,it]=[Math.max(0,y[F][1]),Math.min(1,y[F][3])].map(X=>X*_);return new M(p[F],new re(et,L,it-et,G-L),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function Jo(o){let t=new Ut;return t.extractWeights(o),t}function na(o){return Jo(o)}var qo=class extends Ut{};var Zo=.4,Ko=[new x(.738768,.874946),new x(2.42204,2.65704),new x(4.30971,7.04493),new x(10.246,4.59428),new x(12.6868,11.8741)],Qo=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=b(g());var br=o=>typeof o=="number";function io(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!br(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>br(t.x)&&br(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(br)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=b(g());var K=b(g());function be(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Ft(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),be(e)})}var St=b(g());function Tt(o,t){return St.tidy(()=>{let e=St.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=St.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=St.add(e,t.bias),be(e)})}var co=b(g());function aa(o,t){let e=ce(o,t);function r(s,i){let c=co.tensor1d(o(s)),m=co.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=me(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=B(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=aa(n,s),p;if(t.withSeparableConvs){let[d,u,l,v,_,h,y,T,F]=r,L=t.isFirstLayerConv2d?i(d,u,3,"conv0"):m(d,u,"conv0"),G=m(u,l,"conv1"),et=m(l,v,"conv2"),it=m(v,_,"conv3"),X=m(_,h,"conv4"),Pt=m(h,y,"conv5"),_t=T?m(y,T,"conv6"):void 0,wt=F?m(T,F,"conv7"):void 0,Qt=i(F||T||y,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}else{let[d,u,l,v,_,h,y,T,F]=r,L=c(d,u,"conv0"),G=c(u,l,"conv1"),et=c(l,v,"conv2"),it=c(v,_,"conv3"),X=c(_,h,"conv4"),Pt=c(h,y,"conv5"),_t=c(y,T,"conv6"),wt=c(T,F,"conv7"),Qt=i(F,5*e,1,"conv8");p={conv0:L,conv1:G,conv2:et,conv3:it,conv4:X,conv5:Pt,conv6:_t,conv7:wt,conv8:Qt}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function sa(o,t){let e=j(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=pe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=sa(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return W(o,e),{params:s,paramMappings:e}}var lt=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!=0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var mo=class extends S{constructor(t){super("TinyYolov2");io(t),this._config=t}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(t,e){let r=Ft(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Ft(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=Ft(r,e.conv6),r=Ft(r,e.conv7),Gt(r,e.conv8,"valid",!1)}runMobilenet(t,e){let r=this.config.isFirstLayerConv2d?be(Gt(t,e.conv0,"valid",!1)):Tt(t,e.conv0);return r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv1),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv2),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv3),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv4),r=N.maxPool(r,[2,2],[2,2],"same"),r=Tt(r,e.conv5),r=N.maxPool(r,[2,2],[1,1],"same"),r=e.conv6?Tt(r,e.conv6):r,r=e.conv7?Tt(r,e.conv7):r,Gt(r,e.conv8,"valid",!1)}forwardInput(t,e){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let n=N.cast(t.toBatchTensor(e,!1),"float32");return n=this.config.meanRgb?ot(n,this.config.meanRgb):n,n=n.div(N.scalar(256)),this.config.withSeparableConvs?this.runMobilenet(n,r):this.runTinyYolov2(n,r)})}async forward(t,e){return this.forwardInput(await E(t),e)}async detect(t,e={}){let{inputSize:r,scoreThreshold:n}=new lt(e),a=await E(t),s=await this.forwardInput(a,r),i=N.tidy(()=>N.unstack(s)[0].expandDims()),c={width:a.getInputWidth(0),height:a.getInputHeight(0)},m=await this.extractBoxes(i,a.getReshapedInputDimensions(0),n);s.dispose(),i.dispose();let p=m.map(h=>h.box),d=m.map(h=>h.score),u=m.map(h=>h.classScore),l=m.map(h=>this.config.classes[h.label]);return Wr(p.map(h=>h.rescale(r)),d,this.config.iouThreshold,!0).map(h=>new Dt(d[h],u[h],l[h],p[h],c))}getDefaultModelName(){return""}extractParamsFromWeightMap(t){return nn(t,this.config)}extractParams(t){let e=this.config.filterSizes||mo.DEFAULT_FILTER_SIZES,r=e?e.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return on(t,this.config,this.boxEncodingSize,e)}async extractBoxes(t,e,r){let{width:n,height:a}=e,s=Math.max(n,a),i=s/n,c=s/a,m=t.shape[1],p=this.config.anchors.length,[d,u,l]=N.tidy(()=>{let y=t.reshape([m,m,p,this.boxEncodingSize]),T=y.slice([0,0,0,0],[m,m,p,4]),F=y.slice([0,0,0,4],[m,m,p,1]),L=this.withClassScores?N.softmax(y.slice([0,0,0,5],[m,m,p,this.config.classes.length]),3):N.scalar(0);return[T,F,L]}),v=[],_=await u.array(),h=await d.array();for(let y=0;yr){let G=(T+De(h[y][T][F][0]))/m*i,et=(y+De(h[y][T][F][1]))/m*c,it=Math.exp(h[y][T][F][2])*this.config.anchors[F].x/m*i,X=Math.exp(h[y][T][F][3])*this.config.anchors[F].y/m*c,Pt=G-it/2,_t=et-X/2,wt={row:y,col:T,anchor:F},{classScore:Qt,label:ho}=this.withClassScores?await this.extractPredictedClass(l,wt):{classScore:1,label:0};v.push({box:new ee(Pt,_t,Pt+it,_t+X),score:L,classScore:L*Qt,label:ho,...wt})}}return d.dispose(),u.dispose(),l.dispose(),v}async extractPredictedClass(t,e){let{row:r,col:n,anchor:a}=e,s=await t.array();return Array(this.config.classes.length).fill(0).map((i,c)=>s[r][n][a][c]).map((i,c)=>({classScore:i,label:c})).reduce((i,c)=>i.classScore>c.classScore?i:c)}},ge=mo;ge.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var ve=class extends ge{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ia(o,t=!0){let e=new ve(t);return e.extractWeights(o),e}var gr=class extends lt{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var tt=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var je=b(g());var po=b(g());async function Xt(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>zt(c)?n(c):c.detection),s=r||(t instanceof po.Tensor?await se(t,a):await ae(t,a)),i=await e(s);return s.forEach(c=>c instanceof po.Tensor&&c.dispose()),i}async function ye(o,t,e,r,n){return Xt([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new x(1.603231,2.094468),new x(6.041143,7.080126),new x(2.882459,3.518061),new x(4.266906,5.178857),new x(9.041765,10.66308)],cn=[117.001,114.697,97.404];var Fe=class extends ge{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new Ut,tinyFaceDetector:new Fe,tinyYolov2:new ve,faceLandmark68Net:new fe,faceLandmark68TinyNet:new dr,faceRecognitionNet:new xe,faceExpressionNet:new cr,ageGenderNet:new pr},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ca=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ma=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),pa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),da=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ua=o=>P.faceExpressionNet.predictExpressions(o),la=o=>P.ageGenderNet.predictAgeAndGender(o),dn=o=>P.ssdMobilenetv1.load(o),fa=o=>P.tinyFaceDetector.load(o),ha=o=>P.tinyYolov2.load(o),xa=o=>P.faceLandmark68Net.load(o),ba=o=>P.faceLandmark68TinyNet.load(o),ga=o=>P.faceRecognitionNet.load(o),va=o=>P.faceExpressionNet.load(o),ya=o=>P.ageGenderNet.load(o),Fa=dn,Ta=mn,Pa=pn;var uo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},_e=class extends uo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>mr(r,e[n]))}withAgeAndGender(){return new Te(this,this.input)}},we=class extends uo{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return mr(t,e)}withAgeAndGender(){return new Pe(this,this.input)}},Zt=class extends _e{withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Kt=class extends we{withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var lo=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.extractedFaces=r}},Te=class extends lo{async run(){let t=await this.parentTask,e=await Xt(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return hr(xr(r,s,i),a)})}withFaceExpressions(){return new _e(this,this.input)}},Pe=class extends lo{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await ye(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return hr(xr(t,r,n),e)}withFaceExpressions(){return new we(this,this.input)}},Jt=class extends Te{withFaceExpressions(){return new Zt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},qt=class extends Pe{withFaceExpressions(){return new Kt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var vr=class extends tt{constructor(t,e){super();this.parentTask=t;this.input=e}},At=class extends vr{async run(){let t=await this.parentTask;return(await Xt(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>fr(t[n],r))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}},Wt=class extends vr{async run(){let t=await this.parentTask;if(!t)return;let e=await ye(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return fr(t,e)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}};var yr=class extends tt{constructor(t,e,r){super();this.parentTask=t;this.input=e;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},Fr=class extends yr{async run(){let t=await this.parentTask,e=t.map(a=>a.detection),r=this.input instanceof je.Tensor?await se(this.input,e):await ae(this.input,e),n=await Promise.all(r.map(a=>this.landmarkNet.detectLandmarks(a)));return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),t.map((a,s)=>le(a,n[s]))}withFaceExpressions(){return new Zt(this,this.input)}withAgeAndGender(){return new Jt(this,this.input)}withFaceDescriptors(){return new At(this,this.input)}},Tr=class extends yr{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof je.Tensor?await se(this.input,[e]):await ae(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof je.Tensor&&a.dispose()),le(t,n)}withFaceExpressions(){return new Kt(this,this.input)}withAgeAndGender(){return new qt(this,this.input)}withFaceDescriptor(){return new Wt(this,this.input)}};var Pr=class extends tt{constructor(t,e=new Z){super();this.input=t;this.options=e}},He=class extends Pr{async run(){let{input:t,options:e}=this,r=e instanceof gr?n=>P.tinyFaceDetector.locateFaces(n,e):e instanceof Z?n=>P.ssdMobilenetv1.locateFaces(n,e):e instanceof lt?n=>P.tinyYolov2.locateFaces(n,e):null;if(!r)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return r(t)}runAndExtendWithFaceDetections(){return new Promise(async t=>{let e=await this.run();t(e.map(r=>$t({},r)))})}withFaceLandmarks(t=!1){return new Fr(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new _e(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Te(this.runAndExtendWithFaceDetections(),this.input)}},_r=class extends Pr{async run(){let t=await new He(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?$t({},e):void 0)})}withFaceLandmarks(t=!1){return new Tr(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new we(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Pe(this.runAndExtendWithFaceDetection(),this.input)}};function _a(o,t=new Z){return new _r(o,t)}function wr(o,t=new Z){return new He(o,t)}async function un(o,t){return wr(o,new Z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function wa(o,t={}){return wr(o,new lt(t)).withFaceLandmarks().withFaceDescriptors()}var Da=un;function fo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a**2,0))}var Dr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof xt)return s;if(s instanceof Float32Array)return new xt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new xt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>fo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Ee(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>xt.fromJSON(r));return new Dr(e,t.distanceThreshold)}};function Ea(o){let t=new Fe;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new A(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return le($t(o,n),a)}return pt(o)?$t(o,o.detection.forSize(e,r)):o instanceof V||o instanceof M?o.forSize(e,r):o}var Ca=typeof process!="undefined",Na=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",Ia={faceapi:No,node:Ca,browser:Na}; //# sourceMappingURL=face-api.node.js.map diff --git a/dist/tfjs.esm.js b/dist/tfjs.esm.js index 8ec5407..c05a31c 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -5,43 +5,43 @@ author: ' */ -var MB=Object.create,Lh=Object.defineProperty,LB=Object.getPrototypeOf,zB=Object.prototype.hasOwnProperty,BB=Object.getOwnPropertyNames,VB=Object.getOwnPropertyDescriptor;var GB=r=>Lh(r,"__esModule",{value:!0});var Br=(r,e)=>()=>(e||(e={exports:{}},r(e.exports,e)),e.exports),et=(r,e)=>{for(var t in e)Lh(r,t,{get:e[t],enumerable:!0})},WB=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of BB(e))!zB.call(r,o)&&o!=="default"&&Lh(r,o,{get:()=>e[o],enumerable:!(t=VB(e,o))||t.enumerable});return r},Sc=r=>r&&r.__esModule?r:WB(GB(Lh(r!=null?MB(LB(r)):{},"default",{value:r,enumerable:!0})),r);var tN=Br(()=>{});var FN=Br((RN,S_)=>{(function(r,e,t){function o(i){var l=this,u=a();l.next=function(){var c=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=c-(l.c=c|0)},l.c=1,l.s0=u(" "),l.s1=u(" "),l.s2=u(" "),l.s0-=u(i),l.s0<0&&(l.s0+=1),l.s1-=u(i),l.s1<0&&(l.s1+=1),l.s2-=u(i),l.s2<0&&(l.s2+=1),u=null}function n(i,l){return l.c=i.c,l.s0=i.s0,l.s1=i.s1,l.s2=i.s2,l}function s(i,l){var u=new o(i),c=l&&l.state,p=u.next;return p.int32=function(){return u.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&n(c,u),p.state=function(){return n(u,{})}),p}function a(){var i=4022871197,l=function(u){u=u.toString();for(var c=0;c>>0,p-=i,p*=i,i=p>>>0,p-=i,i+=p*4294967296}return(i>>>0)*23283064365386963e-26};return l}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s})(RN,typeof S_=="object"&&S_,typeof define=="function"&&define)});var PN=Br((ON,T_)=>{(function(r,e,t){function o(a){var i=this,l="";i.x=0,i.y=0,i.z=0,i.w=0,i.next=function(){var c=i.x^i.x<<11;return i.x=i.y,i.y=i.z,i.z=i.w,i.w^=i.w>>>19^c^c>>>8},a===(a|0)?i.x=a:l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s})(ON,typeof T_=="object"&&T_,typeof define=="function"&&define)});var LN=Br((MN,E_)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.x^i.x>>>2;return i.x=i.y,i.y=i.z,i.z=i.w,i.w=i.v,(i.d=i.d+362437|0)+(i.v=i.v^i.v<<4^(c^c<<1))|0},i.x=0,i.y=0,i.z=0,i.w=0,i.v=0,a===(a|0)?i.x=a:l+=a;for(var u=0;u>>4),i.next()}function n(a,i){return i.x=a.x,i.y=a.y,i.z=a.z,i.w=a.w,i.v=a.v,i.d=a.d,i}function s(a,i){var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s})(MN,typeof E_=="object"&&E_,typeof define=="function"&&define)});var BN=Br((zN,A_)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.x,c=i.i,p,m,f;return p=u[c],p^=p>>>7,m=p^p<<24,p=u[c+1&7],m^=p^p>>>10,p=u[c+3&7],m^=p^p>>>3,p=u[c+4&7],m^=p^p<<7,p=u[c+7&7],p=p^p<<13,m^=p^p<<9,u[c]=m,i.i=c+1&7,m};function l(u,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)u.next()}l(i,a)}function n(a,i){return i.x=a.x.slice(),i.i=a.i,i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.x&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s})(zN,typeof A_=="object"&&A_,typeof define=="function"&&define)});var GN=Br((VN,D_)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.w,c=i.X,p=i.i,m,f;return i.w=u=u+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,i.i=p,f+(u^u>>>16)|0};function l(u,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;u.w=h,u.X=g,u.i=f}l(i,a)}function n(a,i){return i.i=a.i,i.w=a.w,i.X=a.X.slice(),i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.X&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s})(VN,typeof D_=="object"&&D_,typeof define=="function"&&define)});var UN=Br((WN,$_)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.b,p=i.c,m=i.d,f=i.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,i.b=c=c<<20^c>>>12^p,i.c=p=p-m|0,i.d=m<<16^p>>>16^f,i.a=f-c|0},i.a=0,i.b=0,i.c=2654435769|0,i.d=1367130551,a===Math.floor(a)?(i.a=a/4294967296|0,i.b=a|0):l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s})(WN,typeof $_=="object"&&$_,typeof define=="function"&&define)});var jN=Br(()=>{});var HN=Br((Dxe,ag)=>{(function(r,e){var t=this,o=256,n=6,s=52,a="random",i=e.pow(o,n),l=e.pow(2,s),u=l*2,c=o-1,p;function m(_,w,v){var $=[];w=w==!0?{entropy:!0}:w||{};var A=g(h(w.entropy?[_,b(r)]:_==null?x():_,3),$),R=new f($),M=function(){for(var z=R.g(n),W=i,U=0;z=u;)z/=2,W/=2,U>>>=1;return(z+U)/W};return M.int32=function(){return R.g(4)|0},M.quick=function(){return R.g(4)/4294967296},M.double=M,g(b(R.S),r),(w.pass||v||function(z,W,U,q){return q&&(q.S&&d(q,R),z.state=function(){return d(R,{})}),U?(e[a]=z,W):z})(M,A,"global"in w?w.global:this==e,w.state)}e["seed"+a]=m;function f(_){var w,v=_.length,$=this,A=0,R=$.i=$.j=0,M=$.S=[];for(v||(_=[v++]);A{var f4=FN(),d4=PN(),h4=LN(),g4=BN(),x4=GN(),y4=UN(),Ru=HN();Ru.alea=f4;Ru.xor128=d4;Ru.xorwow=h4;Ru.xorshift7=g4;Ru.xor4096=x4;Ru.tychei=y4;qN.exports=Ru});var RE=Br(()=>{});var Kp=Br(()=>{});var hz=Br(()=>{});var gz=Br(()=>{});var xz=Br((Yx,tI)=>{var rI=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};function t(){return K.buffer!=qe&&wr(K.buffer),Ft}function o(){return K.buffer!=qe&&wr(K.buffer),po}function n(){return K.buffer!=qe&&wr(K.buffer),_r}function s(){return K.buffer!=qe&&wr(K.buffer),Bo}function a(){return K.buffer!=qe&&wr(K.buffer),fo}var i=typeof e!="undefined"?e:{},l={},u;for(u in i)i.hasOwnProperty(u)&&(l[u]=i[u]);var c=[],p="./this.program",m=function(I,D){throw D},f=!1,d=!1,h=!1,g=!1;f=typeof window=="object",d=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!f&&!h&&!d;var x=i.ENVIRONMENT_IS_PTHREAD||!1;x&&(qe=i.buffer,ts=i.DYNAMIC_BASE,So=i.DYNAMICTOP_PTR);var b="";function _(I){return i.locateFile?i.locateFile(I,b):b+I}var w,v,$,A,R,M;if(h){d?b=Kp().dirname(b)+"/":b=__dirname+"/",w=function(D,P){return R||(R=require("fs")),M||(M=Kp()),D=M.normalize(D),R.readFileSync(D,P?null:"utf8")},$=function(D){var P=w(D,!0);return P.buffer||(P=new Uint8Array(P)),ge(P.buffer),P},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),c=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof hI))throw I}),process.on("unhandledRejection",ea),m=function(I){process.exit(I)},i.inspect=function(){return"[Emscripten Module object]"};var z;try{z=hz()}catch(I){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),I}Worker=z.Worker}else g?(typeof read!="undefined"&&(w=function(D){return read(D)}),$=function(D){var P;return typeof readbuffer=="function"?new Uint8Array(readbuffer(D)):(P=read(D,"binary"),ge(typeof P=="object"),P)},typeof scriptArgs!="undefined"?c=scriptArgs:typeof arguments!="undefined"&&(c=arguments),typeof quit=="function"&&(m=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(f||d)&&(d?b=self.location.href:document.currentScript&&(b=document.currentScript.src),typeof r!="undefined"&&r&&(b=r),b.indexOf("blob:")!==0?b=b.substr(0,b.lastIndexOf("/")+1):b="",h?(w=function(D,P){return R||(R=require("fs")),M||(M=Kp()),D=M.normalize(D),R.readFileSync(D,P?null:"utf8")},$=function(D){var P=w(D,!0);return P.buffer||(P=new Uint8Array(P)),ge(P.buffer),P}):(w=function(D){var P=new XMLHttpRequest;return P.open("GET",D,!1),P.send(null),P.responseText},d&&($=function(D){var P=new XMLHttpRequest;return P.open("GET",D,!1),P.responseType="arraybuffer",P.send(null),new Uint8Array(P.response)}),v=function(D,P,j){var me=new XMLHttpRequest;me.open("GET",D,!0),me.responseType="arraybuffer",me.onload=function(){if(me.status==200||me.status==0&&me.response){P(me.response);return}j()},me.onerror=j,me.send(null)}),A=function(I){document.title=I});h&&typeof performance=="undefined"&&(performance=gz().performance);var W=i.print||console.log.bind(console),U=i.printErr||console.warn.bind(console);for(u in l)l.hasOwnProperty(u)&&(i[u]=l[u]);l=null,i.arguments&&(c=i.arguments),i.thisProgram&&(p=i.thisProgram),i.quit&&(m=i.quit);var q=Atomics.load,Z=Atomics.store,X=Atomics.compareExchange,Y;i.wasmBinary&&(Y=i.wasmBinary);var te;i.noExitRuntime&&(te=i.noExitRuntime),typeof WebAssembly!="object"&&U("no native wasm support detected");var K,re=new WebAssembly.Table({initial:169,maximum:169+0,element:"anyfunc"}),ie,se=0,pe=0,ae=!1,xe=0;function ge(I,D){I||ea("Assertion failed: "+D)}function _e(I){var D=i["_"+I];return ge(D,"Cannot call unknown function "+I+", make sure it is exported"),D}function ke(I,D,P,j,me){var he={string:function(go){var Xa=0;if(go!=null&&go!==0){var pm=(go.length<<2)+1;Xa=vc(pm),ut(go,Xa,pm)}return Xa},array:function(go){var Xa=vc(go.length);return kt(go,Xa),Xa}};function fe(go){return D==="string"?Re(go):D==="boolean"?Boolean(go):go}var Se=_e(I),mt=[],pr=0;if(j)for(var Ar=0;Ar=j);){var he=I[D++];if(!he)return me;if(!(he&128)){me+=String.fromCharCode(he);continue}var fe=I[D++]&63;if((he&224)==192){me+=String.fromCharCode((he&31)<<6|fe);continue}var Se=I[D++]&63;if((he&240)==224?he=(he&15)<<12|fe<<6|Se:he=(he&7)<<18|fe<<12|Se<<6|I[D++]&63,he<65536)me+=String.fromCharCode(he);else{var mt=he-65536;me+=String.fromCharCode(55296|mt>>10,56320|mt&1023)}}return me}function Re(I,D){return I?$e(o(),I,D):""}function He(I,D,P,j){if(!(j>0))return 0;for(var me=P,he=P+j-1,fe=0;fe=55296&&Se<=57343){var mt=I.charCodeAt(++fe);Se=65536+((Se&1023)<<10)|mt&1023}if(Se<=127){if(P>=he)break;D[P++]=Se}else if(Se<=2047){if(P+1>=he)break;D[P++]=192|Se>>6,D[P++]=128|Se&63}else if(Se<=65535){if(P+2>=he)break;D[P++]=224|Se>>12,D[P++]=128|Se>>6&63,D[P++]=128|Se&63}else{if(P+3>=he)break;D[P++]=240|Se>>18,D[P++]=128|Se>>12&63,D[P++]=128|Se>>6&63,D[P++]=128|Se&63}}return D[P]=0,P-me}function ut(I,D,P){return He(I,o(),D,P)}function wt(I){for(var D=0,P=0;P=55296&&j<=57343&&(j=65536+((j&1023)<<10)|I.charCodeAt(++P)&1023),j<=127?++D:j<=2047?D+=2:j<=65535?D+=3:D+=4}return D}function kt(I,D){t().set(I,D)}var pt=65536;function vt(I,D){return I%D>0&&(I+=D-I%D),I}var qe,Ft,po,Zt,mo,_r,Bo,Jr,fo;function wr(I){qe=I,i.HEAP8=Ft=new Int8Array(I),i.HEAP16=Zt=new Int16Array(I),i.HEAP32=_r=new Int32Array(I),i.HEAPU8=po=new Uint8Array(I),i.HEAPU16=mo=new Uint16Array(I),i.HEAPU32=Bo=new Uint32Array(I),i.HEAPF32=Jr=new Float32Array(I),i.HEAPF64=fo=new Float64Array(I)}var No=5256480,Vo=No,Qr=13600,ts=5256480,So=12672,gc=i.INITIAL_MEMORY||16777216;if(x)K=i.wasmMemory,qe=i.buffer;else if(i.wasmMemory)K=i.wasmMemory;else if(K=new WebAssembly.Memory({initial:gc/pt,maximum:2147483648/pt,shared:!0}),!(K.buffer instanceof SharedArrayBuffer))throw U("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),h&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");K&&(qe=K.buffer),gc=qe.byteLength,wr(qe),x||(n()[So>>2]=ts);function rs(I){for(;I.length>0;){var D=I.shift();if(typeof D=="function"){D(i);continue}var P=D.func;typeof P=="number"?D.arg===void 0?i.dynCall_v(P):i.dynCall_vi(P,D.arg):P(D.arg===void 0?null:D.arg)}}var Ji=[],$l=[],ey=[],Xp=[],xh=[],Yp=!1;x&&(Yp=!0);function Go(){if(!x){if(i.preRun)for(typeof i.preRun=="function"&&(i.preRun=[i.preRun]);i.preRun.length;)oy(i.preRun.shift());rs(Ji)}}function yh(){Yp=!0,rs($l)}function ty(){x||rs(ey)}function ry(){if(!x){if(i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;)Rl(i.postRun.shift());rs(xh)}}function oy(I){Ji.unshift(I)}function Rl(I){xh.unshift(I)}var xc=Math.ceil,ny=Math.floor,Qi=0,Zp=null,Fl=null;function sy(I){ge(!x,"addRunDependency cannot be used in a pthread worker"),Qi++,i.monitorRunDependencies&&i.monitorRunDependencies(Qi)}function iy(I){if(Qi--,i.monitorRunDependencies&&i.monitorRunDependencies(Qi),Qi==0&&(Zp!==null&&(clearInterval(Zp),Zp=null),Fl)){var D=Fl;Fl=null,D()}}i.preloadedImages={},i.preloadedAudios={};function ea(I){throw i.onAbort&&i.onAbort(I),x&&console.error("Pthread aborting at "+new Error().stack),I+="",W(I),U(I),ae=!0,xe=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(I)}function Jp(I,D){return String.prototype.startsWith?I.startsWith(D):I.indexOf(D)===0}var ay="data:application/octet-stream;base64,";function bh(I){return Jp(I,ay)}var ly="file://";function _h(I){return Jp(I,ly)}var Wo="tfjs-backend-wasm-threaded-simd.wasm";bh(Wo)||(Wo=_(Wo));function wh(){try{if(Y)return new Uint8Array(Y);if($)return $(Wo);throw"both async and sync fetching of the wasm failed"}catch(I){ea(I)}}function uy(){return!Y&&(f||d)&&typeof fetch=="function"&&!_h(Wo)?fetch(Wo,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+Wo+"'";return I.arrayBuffer()}).catch(function(){return wh()}):new Promise(function(I,D){I(wh())})}function cy(){var I={a:tb};function D(fe,Se){var mt=fe.exports;if(i.asm=mt,ie=Se,!x){var pr=we.unusedWorkers.length;we.unusedWorkers.forEach(function(Ar){we.loadWasmModuleToWorker(Ar,function(){--pr||iy("wasm-instantiate")})})}}x||sy("wasm-instantiate");function P(fe){D(fe.instance,fe.module)}function j(fe){return uy().then(function(Se){return WebAssembly.instantiate(Se,I)}).then(fe,function(Se){U("failed to asynchronously prepare wasm: "+Se),ea(Se)})}function me(){if(!Y&&typeof WebAssembly.instantiateStreaming=="function"&&!bh(Wo)&&!_h(Wo)&&typeof fetch=="function")fetch(Wo,{credentials:"same-origin"}).then(function(fe){var Se=WebAssembly.instantiateStreaming(fe,I);return Se.then(P,function(mt){U("wasm streaming compile failed: "+mt),U("falling back to ArrayBuffer instantiation"),j(P)})});else return j(P)}if(i.instantiateWasm)try{var he=i.instantiateWasm(I,D);return he}catch(fe){return U("Module.instantiateWasm callback failed with error: "+fe),!1}return me(),{}}var py={};function my(){we.initRuntime()}x||$l.push({func:function(){tm()}});var kh=0,vh=0,Ch=0;function yc(I,D,P){I=I|0,D=D|0,P=P|0,kh=I,Ch=D,vh=P}i.__register_pthread_ptr=yc;var Qp={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},bc=13584;function _c(I,D){if(I<=0||I>t().length||I&!0||D<0)return-28;if(D==0)return 0;D>=2147483647&&(D=Infinity);var P=Atomics.load(n(),bc>>2),j=0;if(P==I){var me=Atomics.compareExchange(n(),bc>>2,P,0);if(me==P&&(--D,j=1,D<=0))return 1}var he=Atomics.notify(n(),I>>2,D);if(he>=0)return he+j;throw"Atomics.notify returned an unexpected value "+he}i._emscripten_futex_wake=_c;function fy(I){if(x)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in _kill_thread!";n()[I+12>>2]=0;var D=we.pthreads[I];D.worker.terminate(),we.freeThreadData(D),we.runningWorkers.splice(we.runningWorkers.indexOf(D.worker),1),D.worker.pthread=void 0}function dy(I){if(x)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var D=we.pthreads[I];D.worker.postMessage({cmd:"cancel"})}function hy(I){if(x)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";n()[I+12>>2]=0;var D=we.pthreads[I];if(D){var P=D.worker;we.returnWorkerToPool(P)}}var we={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){yc(we.mainThreadBlock,!d,1),pI(we.mainThreadBlock)},initMainThreadBlock:function(){for(var I=8,D=0;D>2]=we.mainThreadBlock;var P=we.mainThreadBlock+156;n()[P>>2]=P;for(var j=13072,D=0;D<128;++D)s()[j/4+D]=0;Atomics.store(s(),we.mainThreadBlock+104>>2,j),Atomics.store(s(),we.mainThreadBlock+40>>2,we.mainThreadBlock),Atomics.store(s(),we.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(we.exitHandlers!==null){for(;we.exitHandlers.length>0;)we.exitHandlers.pop()();we.exitHandlers=null}x&&se&&cI()},threadExit:function(I){var D=Gs();D&&(Atomics.store(s(),D+4>>2,I),Atomics.store(s(),D+0>>2,1),Atomics.store(s(),D+60>>2,1),Atomics.store(s(),D+64>>2,0),we.runExitHandlers(),_c(D+0,2147483647),yc(0,0,0),se=0,x&&postMessage({cmd:"exit"}))},threadCancel:function(){we.runExitHandlers(),Atomics.store(s(),se+4>>2,-1),Atomics.store(s(),se+0>>2,1),_c(se+0,2147483647),se=pe=0,yc(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var I in we.pthreads){var D=we.pthreads[I];D&&D.worker&&we.returnWorkerToPool(D.worker)}we.pthreads={};for(var P=0;P>2];n()[I.threadInfoStruct+104>>2]=0,am(D),am(I.threadInfoStruct)}I.threadInfoStruct=0,I.allocatedOwnStack&&I.stackBase&&am(I.stackBase),I.stackBase=0,I.worker&&(I.worker.pthread=null)}},returnWorkerToPool:function(I){delete we.pthreads[I.pthread.thread],we.unusedWorkers.push(I),we.runningWorkers.splice(we.runningWorkers.indexOf(I),1),we.freeThreadData(I.pthread),I.pthread=void 0},receiveObjectTransfer:function(I){},loadWasmModuleToWorker:function(I,D){I.onmessage=function(P){var j=P.data,me=j.cmd;if(I.pthread&&(we.currentProxiedOperationCallerThread=I.pthread.threadInfoStruct),j.targetThread&&j.targetThread!=Gs()){var he=we.pthreads[j.targetThread];he?he.worker.postMessage(P.data,j.transferList):console.error('Internal error! Worker sent a message "'+me+'" to target pthread '+j.targetThread+", but that thread no longer exists!"),we.currentProxiedOperationCallerThread=void 0;return}if(me==="processQueuedMainThreadWork")nb();else if(me==="spawnThread")Ah(P.data);else if(me==="cleanupThread")hy(j.thread);else if(me==="killThread")fy(j.thread);else if(me==="cancelThread")dy(j.thread);else if(me==="loaded")I.loaded=!0,D&&D(I),I.runPthread&&(I.runPthread(),delete I.runPthread);else if(me==="print")W("Thread "+j.threadId+": "+j.text);else if(me==="printErr")U("Thread "+j.threadId+": "+j.text);else if(me==="alert")alert("Thread "+j.threadId+": "+j.text);else if(me==="exit"){var fe=I.pthread&&Atomics.load(s(),I.pthread.thread+68>>2);fe&&we.returnWorkerToPool(I)}else me==="cancelDone"?we.returnWorkerToPool(I):me==="objectTransfer"?we.receiveObjectTransfer(P.data):P.data.target==="setimmediate"?I.postMessage(P.data):U("worker sent an unknown command "+me);we.currentProxiedOperationCallerThread=void 0},I.onerror=function(P){U("pthread sent an error! "+P.filename+":"+P.lineno+": "+P.message)},h&&(I.on("message",function(P){I.onmessage({data:P})}),I.on("error",function(P){I.onerror(P)}),I.on("exit",function(P){console.log("worker exited - TODO: update the worker queue?")})),I.postMessage({cmd:"load",urlOrBlob:i.mainScriptUrlOrBlob||r,wasmMemory:K,wasmModule:ie,DYNAMIC_BASE:ts,DYNAMICTOP_PTR:So})},allocateUnusedWorker:function(){var I=_("tfjs-backend-wasm-threaded-simd.worker.js");we.unusedWorkers.push(new Worker(I))},getNewWorker:function(){return we.unusedWorkers.length==0&&(we.allocateUnusedWorker(),we.loadWasmModuleToWorker(we.unusedWorkers[0])),we.unusedWorkers.length>0?we.unusedWorkers.pop():null},busySpinWait:function(I){for(var D=performance.now()+I;performance.now()>2]=I,I}function wy(I,D){if(x)return Ha(1,1,I,D);Xp.unshift({func:I,arg:D})}function ky(I,D){if(I==D)postMessage({cmd:"processQueuedMainThreadWork"});else if(x)postMessage({targetThread:I,cmd:"processThreadQueue"});else{var P=we.pthreads[I],j=P&&P.worker;if(!j)return;j.postMessage({cmd:"processThreadQueue"})}return 1}function vy(){ea()}function Cy(I,D){I=I|0,D=D|0}function Iy(I,D,P){if(I<=0||I>t().length||I&!0)return-28;if(d){var j=Atomics.wait(n(),I>>2,D,P);if(j==="timed-out")return-73;if(j==="not-equal")return-6;if(j==="ok")return 0;throw"Atomics.wait returned an unexpected value "+j}else{var me=Atomics.load(n(),I>>2);if(D!=me)return-6;var he=performance.now(),fe=he+P;Atomics.store(n(),bc>>2,I);for(var Se=I;I==Se;){if(he=performance.now(),he>fe)return-73;nb(),I=Atomics.load(n(),bc>>2)}return 0}}function Ny(){return Ch|0}function Sy(){return vh|0}function Ty(I,D,P){o().copyWithin(I,D,D+P)}function Ey(){return navigator.hardwareConcurrency}function Ha(I,D){for(var P=arguments.length-2,j=lm(),me=vc(P*8),he=me>>3,fe=0;fe>3]),D+=8):(D=D+3&~3,P.push(n()[D>>2]),D+=4);return P}function Ay(I,D,P){Pl.length=D;for(var j=P>>3,me=0;me>>16),wr(K.buffer),1}catch(D){}}function Ry(I){I=I>>>0;var D=Dy();if(I<=D)return!1;var P=65536,j=2147483648;if(I>j)return!1;for(var me=16777216,he=1;he<=4;he*=2){var fe=D*(1+.2/he);fe=Math.min(fe,I+100663296);var Se=Math.min(j,vt(Math.max(me,I,fe),P)),mt=$y(Se);if(mt)return!0}return!1}var Ze={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var I=Ze.eventHandlers.length-1;I>=0;--I)Ze._removeHandler(I);Ze.eventHandlers=[],Ze.deferredCalls=[]},registerRemoveEventListeners:function(){Ze.removeEventListenersRegistered||(Xp.push(Ze.removeAllEventListeners),Ze.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(I,D,P){function j(fe,Se){if(fe.length!=Se.length)return!1;for(var mt in fe)if(fe[mt]!=Se[mt])return!1;return!0}for(var me in Ze.deferredCalls){var he=Ze.deferredCalls[me];if(he.targetFunction==I&&j(he.argsList,P))return}Ze.deferredCalls.push({targetFunction:I,precedence:D,argsList:P}),Ze.deferredCalls.sort(function(fe,Se){return fe.precedence>2]=P,n()[fe+4>>2]=j,n()[fe+8>>2]=me,sb(I,637534208,D,j,fe),Cc(he)},getTargetThreadForEventCallback:function(I){switch(I){case 1:return 0;case 2:return we.currentProxiedOperationCallerThread;default:return I}},getNodeNameForTarget:function(I){return I?I==window?"#window":I==screen?"#screen":I&&I.nodeName?I.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function Fy(I){var D=wt(I)+1,P=im(D);return ut(I,P,D),P}function Oy(I,D,P,j){var me=lm(),he=vc(12),fe=0;D&&(fe=Fy(D)),n()[he>>2]=fe,n()[he+4>>2]=P,n()[he+8>>2]=j,sb(I,657457152,0,fe,he),Cc(me)}function Py(I,D,P,j){D=D?Re(D):"",Oy(I,D,P,j)}function My(I){return I>2?Re(I):I}var Ly=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function zy(I){I=My(I);var D=Ly[I]||(typeof document!="undefined"?document.querySelector(I):void 0);return D}function em(I){return zy(I)}function Ih(I,D,P){var j=em(I);if(!j)return-4;if(j.canvasSharedPtr&&(n()[j.canvasSharedPtr>>2]=D,n()[j.canvasSharedPtr+4>>2]=P),j.offscreenCanvas||!j.controlTransferredOffscreen){j.offscreenCanvas&&(j=j.offscreenCanvas);var me=!1;if(j.GLctxObject&&j.GLctxObject.GLctx){var he=j.GLctxObject.GLctx.getParameter(2978);me=he[0]===0&&he[1]===0&&he[2]===j.width&&he[3]===j.height}j.width=D,j.height=P,me&&j.GLctxObject.GLctx.viewport(0,0,D,P)}else if(j.canvasSharedPtr){var fe=n()[j.canvasSharedPtr+8>>2];return Py(fe,I,D,P),1}else return-4;return 0}function Nh(I,D,P){return x?Ha(2,1,I,D,P):Ih(I,D,P)}function By(I,D,P){var j=em(I);return j?Ih(I,D,P):Nh(I,D,P)}function Vy(I){I=I|0}function Gy(I,D){I=I|0,D=D|0}function Wy(I){var D=I.getExtension("ANGLE_instanced_arrays");if(D)return I.vertexAttribDivisor=function(P,j){D.vertexAttribDivisorANGLE(P,j)},I.drawArraysInstanced=function(P,j,me,he){D.drawArraysInstancedANGLE(P,j,me,he)},I.drawElementsInstanced=function(P,j,me,he,fe){D.drawElementsInstancedANGLE(P,j,me,he,fe)},1}function Uy(I){var D=I.getExtension("OES_vertex_array_object");if(D)return I.createVertexArray=function(){return D.createVertexArrayOES()},I.deleteVertexArray=function(P){D.deleteVertexArrayOES(P)},I.bindVertexArray=function(P){D.bindVertexArrayOES(P)},I.isVertexArray=function(P){return D.isVertexArrayOES(P)},1}function jy(I){var D=I.getExtension("WEBGL_draw_buffers");if(D)return I.drawBuffers=function(P,j){D.drawBuffersWEBGL(P,j)},1}var rt={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var I=new Float32Array(rt.MINI_TEMP_BUFFER_SIZE),D=0;D>2]:-1;me+=Re(n()[P+he*4>>2],fe<0?void 0:fe)}return me},createContext:function(I,D){var P=I.getContext("webgl",D);if(!P)return 0;var j=rt.registerContext(P,D);return j},registerContext:function(I,D){var P=im(8);n()[P+4>>2]=Gs();var j={handle:P,attributes:D,version:D.majorVersion,GLctx:I};return I.canvas&&(I.canvas.GLctxObject=j),rt.contexts[P]=j,(typeof D.enableExtensionsByDefault=="undefined"||D.enableExtensionsByDefault)&&rt.initExtensions(j),P},makeContextCurrent:function(I){return rt.currentContext=rt.contexts[I],i.ctx=qa=rt.currentContext&&rt.currentContext.GLctx,!(I&&!qa)},getContext:function(I){return rt.contexts[I]},deleteContext:function(I){rt.currentContext===rt.contexts[I]&&(rt.currentContext=null),typeof Ze=="object"&&Ze.removeAllHandlersOnTarget(rt.contexts[I].GLctx.canvas),rt.contexts[I]&&rt.contexts[I].GLctx.canvas&&(rt.contexts[I].GLctx.canvas.GLctxObject=void 0),am(rt.contexts[I].handle),rt.contexts[I]=null},initExtensions:function(I){if(I||(I=rt.currentContext),!I.initExtensionsDone){I.initExtensionsDone=!0;var D=I.GLctx;Wy(D),Uy(D),jy(D),D.disjointTimerQueryExt=D.getExtension("EXT_disjoint_timer_query");var P=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],j=D.getSupportedExtensions()||[];j.forEach(function(me){P.indexOf(me)!=-1&&D.getExtension(me)})}},populateUniformTable:function(I){for(var D=rt.programs[I],P=rt.programInfos[I]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},j=P.uniforms,me=qa.getProgramParameter(D,35718),he=0;he>2;P.alpha=!!n()[j+(0>>2)],P.depth=!!n()[j+(4>>2)],P.stencil=!!n()[j+(8>>2)],P.antialias=!!n()[j+(12>>2)],P.premultipliedAlpha=!!n()[j+(16>>2)],P.preserveDrawingBuffer=!!n()[j+(20>>2)];var me=n()[j+(24>>2)];P.powerPreference=Hy[me],P.failIfMajorPerformanceCaveat=!!n()[j+(28>>2)],P.majorVersion=n()[j+(32>>2)],P.minorVersion=n()[j+(36>>2)],P.enableExtensionsByDefault=n()[j+(40>>2)],P.explicitSwapControl=n()[j+(44>>2)],P.proxyContextToMainThread=n()[j+(48>>2)],P.renderViaOffscreenBackBuffer=n()[j+(52>>2)];var he=em(I);if(!he)return-4;if(P.explicitSwapControl)return-1;var fe=rt.createContext(he,P);return fe}function Ky(I,D){return qy(I,D)}var Ml={splitPath:function(I){var D=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return D.exec(I).slice(1)},normalizeArray:function(I,D){for(var P=0,j=I.length-1;j>=0;j--){var me=I[j];me==="."?I.splice(j,1):me===".."?(I.splice(j,1),P++):P&&(I.splice(j,1),P--)}if(D)for(;P;P--)I.unshift("..");return I},normalize:function(I){var D=I.charAt(0)==="/",P=I.substr(-1)==="/";return I=Ml.normalizeArray(I.split("/").filter(function(j){return!!j}),!D).join("/"),!I&&!D&&(I="."),I&&P&&(I+="/"),(D?"/":"")+I},dirname:function(I){var D=Ml.splitPath(I),P=D[0],j=D[1];return!P&&!j?".":(j&&(j=j.substr(0,j.length-1)),P+j)},basename:function(I){if(I==="/")return"/";var D=I.lastIndexOf("/");return D===-1?I:I.substr(D+1)},extname:function(I){return Ml.splitPath(I)[3]},join:function(){var I=Array.prototype.slice.call(arguments,0);return Ml.normalize(I.join("/"))},join2:function(I,D){return Ml.normalize(I+"/"+D)}},kc={mappings:{},buffers:[null,[],[]],printChar:function(I,D){var P=kc.buffers[I];D===0||D===10?((I===1?W:U)($e(P,0)),P.length=0):P.push(D)},varargs:void 0,get:function(){kc.varargs+=4;var I=n()[kc.varargs-4>>2];return I},getStr:function(I){var D=Re(I);return D},get64:function(I,D){return I}};function Sh(I){return x?Ha(3,1,I):0}function Th(I,D,P,j,me){if(x)return Ha(4,1,I,D,P,j,me)}function Eh(I,D,P,j){if(x)return Ha(5,1,I,D,P,j);for(var me=0,he=0;he>2],Se=n()[D+(he*8+4)>>2],mt=0;mt>2]=me,0}function Xy(I){var D=we.exitHandlers.pop();I&&D()}function Yy(I,D){we.exitHandlers===null&&(we.exitHandlers=[]),we.exitHandlers.push(function(){dI(I,D)})}function Ah(I){if(x)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var D=we.getNewWorker();if(D.pthread!==void 0)throw"Internal error!";if(!I.pthread_ptr)throw"Internal error, no pthread ptr!";we.runningWorkers.push(D);for(var P=im(128*4),j=0;j<128;++j)n()[P+j*4>>2]=0;var me=I.stackBase+I.stackSize,he=we.pthreads[I.pthread_ptr]={worker:D,stackBase:I.stackBase,stackSize:I.stackSize,allocatedOwnStack:I.allocatedOwnStack,thread:I.pthread_ptr,threadInfoStruct:I.pthread_ptr},fe=he.threadInfoStruct>>2;Atomics.store(s(),fe+(0>>2),0),Atomics.store(s(),fe+(4>>2),0),Atomics.store(s(),fe+(8>>2),0),Atomics.store(s(),fe+(68>>2),I.detached),Atomics.store(s(),fe+(104>>2),P),Atomics.store(s(),fe+(48>>2),0),Atomics.store(s(),fe+(40>>2),he.threadInfoStruct),Atomics.store(s(),fe+(44>>2),42),Atomics.store(s(),fe+(108>>2),I.stackSize),Atomics.store(s(),fe+(84>>2),I.stackSize),Atomics.store(s(),fe+(80>>2),me),Atomics.store(s(),fe+(108+8>>2),me),Atomics.store(s(),fe+(108+12>>2),I.detached),Atomics.store(s(),fe+(108+20>>2),I.schedPolicy),Atomics.store(s(),fe+(108+24>>2),I.schedPrio);var Se=lI(),mt=Se+40;Atomics.store(s(),fe+(176>>2),mt),D.pthread=he;var pr={cmd:"run",start_routine:I.startRoutine,arg:I.arg,threadInfoStruct:I.pthread_ptr,selfThreadId:I.pthread_ptr,parentThreadId:I.parent_pthread_ptr,stackBase:I.stackBase,stackSize:I.stackSize};D.runPthread=function(){pr.time=performance.now(),D.postMessage(pr,I.transferList)},D.loaded&&(D.runPthread(),delete D.runPthread)}function Zy(I,D,P){if(!D&&!P)return Qp.EINVAL;if(!I)return U("pthread_getschedparam called with a null thread pointer!"),Qp.ESRCH;var j=n()[I+12>>2];if(j!==I)return U("pthread_getschedparam attempted on thread "+I+", which does not point to a valid thread, or does not exist anymore!"),Qp.ESRCH;var me=Atomics.load(s(),I+108+20>>2),he=Atomics.load(s(),I+108+24>>2);return D&&(n()[D>>2]=me),P&&(n()[P>>2]=he),0}function Gs(){return kh|0}i._pthread_self=Gs;function Jy(I,D,P,j){if(typeof SharedArrayBuffer=="undefined")return U("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!I)return U("pthread_create called with a null thread pointer!"),28;var me=[],he=0;if(x&&(me.length===0||he))return mI(687865856,I,D,P,j);if(he)return he;var fe=0,Se=0,mt=0,pr=0,Ar=0;if(D){fe=n()[D>>2],fe+=81920,Se=n()[D+8>>2],mt=n()[D+12>>2]!==0;var Ic=n()[D+16>>2]===0;if(Ic){var cm=n()[D+20>>2],go=n()[D+24>>2],Xa=we.currentProxiedOperationCallerThread?we.currentProxiedOperationCallerThread:Gs();Zy(Xa,D+20,D+24),pr=n()[D+20>>2],Ar=n()[D+24>>2],n()[D+20>>2]=cm,n()[D+24>>2]=go}else pr=n()[D+20>>2],Ar=n()[D+24>>2]}else fe=2097152;var pm=Se==0;pm?Se=uI(16,fe):(Se-=fe,ge(Se>0));for(var Nc=im(232),ab=0;ab<232>>2;++ab)s()[(Nc>>2)+ab]=0;n()[I>>2]=Nc,n()[Nc+12>>2]=Nc;var gI=Nc+156;n()[gI>>2]=gI;var lb={stackBase:Se,stackSize:fe,allocatedOwnStack:pm,schedPolicy:pr,schedPrio:Ar,detached:mt,startRoutine:P,pthread_ptr:Nc,parent_pthread_ptr:Gs(),arg:j,transferList:me};return x?(lb.cmd="spawnThread",postMessage(lb,me)):Ah(lb),0}function Qy(I){return I=+I,I>=0?+ny(I+.5):+xc(I-.5)}function Dh(I){if(x)return Ha(6,1,I);switch(I){case 30:return 16384;case 85:var D=2147483648;return D/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return _y(28),-1}x?we.initWorker():we.initMainThreadBlock();var qa;rt.init();var eb=[null,wy,Nh,Sh,Th,Eh,Dh],tb={e:yy,r:by,w:ky,a:vy,l:Cy,d:Iy,c:_c,h:Ol,g:Ny,x:Sy,q:Ty,B:Ey,t:Ay,A:Ry,u:By,k:Vy,s:Gy,v:Ky,m:Sh,o:Th,i:Eh,p:my,memory:K||i.wasmMemory,y:Xy,z:Yy,j:Jy,b:Gs,f:Qy,n:Dh,table:re},$h=cy();i.asm=$h;var tm=i.___wasm_call_ctors=function(){return(tm=i.___wasm_call_ctors=i.asm.C).apply(null,arguments)},rm=i._init=function(){return(rm=i._init=i.asm.D).apply(null,arguments)},Rh=i._register_tensor=function(){return(Rh=i._register_tensor=i.asm.E).apply(null,arguments)},Ll=i._dispose_data=function(){return(Ll=i._dispose_data=i.asm.F).apply(null,arguments)},om=i._dispose=function(){return(om=i._dispose=i.asm.G).apply(null,arguments)},rb=i._Abs=function(){return(rb=i._Abs=i.asm.H).apply(null,arguments)},ob=i._Add=function(){return(ob=i._Add=i.asm.I).apply(null,arguments)},nm=i._AddN=function(){return(nm=i._AddN=i.asm.J).apply(null,arguments)},Fh=i._ArgMax=function(){return(Fh=i._ArgMax=i.asm.K).apply(null,arguments)},Oh=i._AvgPool=function(){return(Oh=i._AvgPool=i.asm.L).apply(null,arguments)},H=i._BatchMatMul=function(){return(H=i._BatchMatMul=i.asm.M).apply(null,arguments)},ne=i._ClipByValue=function(){return(ne=i._ClipByValue=i.asm.N).apply(null,arguments)},be=i._Conv2D=function(){return(be=i._Conv2D=i.asm.O).apply(null,arguments)},Ke=i._Conv2DBackpropInput=function(){return(Ke=i._Conv2DBackpropInput=i.asm.P).apply(null,arguments)},Xe=i._Cos=function(){return(Xe=i._Cos=i.asm.Q).apply(null,arguments)},Ht=i._CropAndResize=function(){return(Ht=i._CropAndResize=i.asm.R).apply(null,arguments)},at=i._Cumsum=function(){return(at=i._Cumsum=i.asm.S).apply(null,arguments)},nt=i._DepthToSpace=function(){return(nt=i._DepthToSpace=i.asm.T).apply(null,arguments)},xr=i._DepthwiseConv2dNative=function(){return(xr=i._DepthwiseConv2dNative=i.asm.U).apply(null,arguments)},ta=i._Equal=function(){return(ta=i._Equal=i.asm.V).apply(null,arguments)},ra=i._Exp=function(){return(ra=i._Exp=i.asm.W).apply(null,arguments)},Ph=i._FlipLeftRight=function(){return(Ph=i._FlipLeftRight=i.asm.X).apply(null,arguments)},sm=i._Floor=function(){return(sm=i._Floor=i.asm.Y).apply(null,arguments)},ho=i._FloorDiv=function(){return(ho=i._FloorDiv=i.asm.Z).apply(null,arguments)},Ka=i._FusedBatchNorm=function(){return(Ka=i._FusedBatchNorm=i.asm._).apply(null,arguments)},Mh=i._FusedConv2D=function(){return(Mh=i._FusedConv2D=i.asm.$).apply(null,arguments)},vz=i._FusedDepthwiseConv2D=function(){return(vz=i._FusedDepthwiseConv2D=i.asm.aa).apply(null,arguments)},Cz=i._Gather=function(){return(Cz=i._Gather=i.asm.ba).apply(null,arguments)},Iz=i._GatherNd=function(){return(Iz=i._GatherNd=i.asm.ca).apply(null,arguments)},Nz=i._Greater=function(){return(Nz=i._Greater=i.asm.da).apply(null,arguments)},Sz=i._GreaterEqual=function(){return(Sz=i._GreaterEqual=i.asm.ea).apply(null,arguments)},Tz=i._LeakyRelu=function(){return(Tz=i._LeakyRelu=i.asm.fa).apply(null,arguments)},Ez=i._Less=function(){return(Ez=i._Less=i.asm.ga).apply(null,arguments)},Az=i._LessEqual=function(){return(Az=i._LessEqual=i.asm.ha).apply(null,arguments)},Dz=i._Log=function(){return(Dz=i._Log=i.asm.ia).apply(null,arguments)},$z=i._LogicalAnd=function(){return($z=i._LogicalAnd=i.asm.ja).apply(null,arguments)},Rz=i._Max=function(){return(Rz=i._Max=i.asm.ka).apply(null,arguments)},Fz=i._MaxPool=function(){return(Fz=i._MaxPool=i.asm.la).apply(null,arguments)},Oz=i._Maximum=function(){return(Oz=i._Maximum=i.asm.ma).apply(null,arguments)},Pz=i._Mean=function(){return(Pz=i._Mean=i.asm.na).apply(null,arguments)},Mz=i._Min=function(){return(Mz=i._Min=i.asm.oa).apply(null,arguments)},Lz=i._Minimum=function(){return(Lz=i._Minimum=i.asm.pa).apply(null,arguments)},zz=i._Multiply=function(){return(zz=i._Multiply=i.asm.qa).apply(null,arguments)},Bz=i._Neg=function(){return(Bz=i._Neg=i.asm.ra).apply(null,arguments)},Vz=i._NonMaxSuppressionV3=function(){return(Vz=i._NonMaxSuppressionV3=i.asm.sa).apply(null,arguments)},Gz=i._NonMaxSuppressionV4=function(){return(Gz=i._NonMaxSuppressionV4=i.asm.ta).apply(null,arguments)},Wz=i._NonMaxSuppressionV5=function(){return(Wz=i._NonMaxSuppressionV5=i.asm.ua).apply(null,arguments)},Uz=i._NotEqual=function(){return(Uz=i._NotEqual=i.asm.va).apply(null,arguments)},jz=i._OneHot=function(){return(jz=i._OneHot=i.asm.wa).apply(null,arguments)},Hz=i._PadV2=function(){return(Hz=i._PadV2=i.asm.xa).apply(null,arguments)},qz=i._Pow=function(){return(qz=i._Pow=i.asm.ya).apply(null,arguments)},Kz=i._Prelu=function(){return(Kz=i._Prelu=i.asm.za).apply(null,arguments)},Xz=i._Prod=function(){return(Xz=i._Prod=i.asm.Aa).apply(null,arguments)},Yz=i._RealDiv=function(){return(Yz=i._RealDiv=i.asm.Ba).apply(null,arguments)},Zz=i._Relu=function(){return(Zz=i._Relu=i.asm.Ca).apply(null,arguments)},Jz=i._Relu6=function(){return(Jz=i._Relu6=i.asm.Da).apply(null,arguments)},Qz=i._ResizeBilinear=function(){return(Qz=i._ResizeBilinear=i.asm.Ea).apply(null,arguments)},eB=i._Reverse=function(){return(eB=i._Reverse=i.asm.Fa).apply(null,arguments)},tB=i._RotateWithOffset=function(){return(tB=i._RotateWithOffset=i.asm.Ga).apply(null,arguments)},rB=i._Round=function(){return(rB=i._Round=i.asm.Ha).apply(null,arguments)},oB=i._Rsqrt=function(){return(oB=i._Rsqrt=i.asm.Ia).apply(null,arguments)},nB=i._ScatterNd=function(){return(nB=i._ScatterNd=i.asm.Ja).apply(null,arguments)},sB=i._SelectV2=function(){return(sB=i._SelectV2=i.asm.Ka).apply(null,arguments)},iB=i._Sigmoid=function(){return(iB=i._Sigmoid=i.asm.La).apply(null,arguments)},aB=i._Sin=function(){return(aB=i._Sin=i.asm.Ma).apply(null,arguments)},lB=i._Softmax=function(){return(lB=i._Softmax=i.asm.Na).apply(null,arguments)},uB=i._Sqrt=function(){return(uB=i._Sqrt=i.asm.Oa).apply(null,arguments)},cB=i._Square=function(){return(cB=i._Square=i.asm.Pa).apply(null,arguments)},pB=i._SquaredDifference=function(){return(pB=i._SquaredDifference=i.asm.Qa).apply(null,arguments)},mB=i._Step=function(){return(mB=i._Step=i.asm.Ra).apply(null,arguments)},fB=i._StridedSlice=function(){return(fB=i._StridedSlice=i.asm.Sa).apply(null,arguments)},dB=i._Sub=function(){return(dB=i._Sub=i.asm.Ta).apply(null,arguments)},hB=i._Sum=function(){return(hB=i._Sum=i.asm.Ua).apply(null,arguments)},gB=i._Tanh=function(){return(gB=i._Tanh=i.asm.Va).apply(null,arguments)},xB=i._Tile=function(){return(xB=i._Tile=i.asm.Wa).apply(null,arguments)},yB=i._TopK=function(){return(yB=i._TopK=i.asm.Xa).apply(null,arguments)},bB=i._Transpose=function(){return(bB=i._Transpose=i.asm.Ya).apply(null,arguments)},_B=i.__FusedMatMul=function(){return(_B=i.__FusedMatMul=i.asm.Za).apply(null,arguments)},im=i._malloc=function(){return(im=i._malloc=i.asm._a).apply(null,arguments)},am=i._free=function(){return(am=i._free=i.asm.$a).apply(null,arguments)},wB=i.___em_js__initPthreadsJS=function(){return(wB=i.___em_js__initPthreadsJS=i.asm.ab).apply(null,arguments)},aI=i.___errno_location=function(){return(aI=i.___errno_location=i.asm.bb).apply(null,arguments)},lI=i._emscripten_get_global_libc=function(){return(lI=i._emscripten_get_global_libc=i.asm.cb).apply(null,arguments)},uI=i._memalign=function(){return(uI=i._memalign=i.asm.db).apply(null,arguments)},cI=i.___pthread_tsd_run_dtors=function(){return(cI=i.___pthread_tsd_run_dtors=i.asm.eb).apply(null,arguments)},nb=i._emscripten_main_thread_process_queued_calls=function(){return(nb=i._emscripten_main_thread_process_queued_calls=i.asm.fb).apply(null,arguments)},kB=i._emscripten_current_thread_process_queued_calls=function(){return(kB=i._emscripten_current_thread_process_queued_calls=i.asm.gb).apply(null,arguments)},pI=i._emscripten_register_main_browser_thread_id=function(){return(pI=i._emscripten_register_main_browser_thread_id=i.asm.hb).apply(null,arguments)},vB=i._emscripten_main_browser_thread_id=function(){return(vB=i._emscripten_main_browser_thread_id=i.asm.ib).apply(null,arguments)},CB=i._emscripten_async_run_in_main_thread=function(){return(CB=i._emscripten_async_run_in_main_thread=i.asm.jb).apply(null,arguments)},IB=i._emscripten_sync_run_in_main_thread=function(){return(IB=i._emscripten_sync_run_in_main_thread=i.asm.kb).apply(null,arguments)},NB=i._emscripten_sync_run_in_main_thread_0=function(){return(NB=i._emscripten_sync_run_in_main_thread_0=i.asm.lb).apply(null,arguments)},SB=i._emscripten_sync_run_in_main_thread_1=function(){return(SB=i._emscripten_sync_run_in_main_thread_1=i.asm.mb).apply(null,arguments)},TB=i._emscripten_sync_run_in_main_thread_2=function(){return(TB=i._emscripten_sync_run_in_main_thread_2=i.asm.nb).apply(null,arguments)},EB=i._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(EB=i._emscripten_sync_run_in_main_thread_xprintf_varargs=i.asm.ob).apply(null,arguments)},AB=i._emscripten_sync_run_in_main_thread_3=function(){return(AB=i._emscripten_sync_run_in_main_thread_3=i.asm.pb).apply(null,arguments)},mI=i._emscripten_sync_run_in_main_thread_4=function(){return(mI=i._emscripten_sync_run_in_main_thread_4=i.asm.qb).apply(null,arguments)},DB=i._emscripten_sync_run_in_main_thread_5=function(){return(DB=i._emscripten_sync_run_in_main_thread_5=i.asm.rb).apply(null,arguments)},$B=i._emscripten_sync_run_in_main_thread_6=function(){return($B=i._emscripten_sync_run_in_main_thread_6=i.asm.sb).apply(null,arguments)},RB=i._emscripten_sync_run_in_main_thread_7=function(){return(RB=i._emscripten_sync_run_in_main_thread_7=i.asm.tb).apply(null,arguments)},fI=i._emscripten_run_in_main_runtime_thread_js=function(){return(fI=i._emscripten_run_in_main_runtime_thread_js=i.asm.ub).apply(null,arguments)},sb=i._emscripten_async_queue_on_thread_=function(){return(sb=i._emscripten_async_queue_on_thread_=i.asm.vb).apply(null,arguments)},FB=i._emscripten_tls_init=function(){return(FB=i._emscripten_tls_init=i.asm.wb).apply(null,arguments)},lm=i.stackSave=function(){return(lm=i.stackSave=i.asm.xb).apply(null,arguments)},vc=i.stackAlloc=function(){return(vc=i.stackAlloc=i.asm.yb).apply(null,arguments)},Cc=i.stackRestore=function(){return(Cc=i.stackRestore=i.asm.zb).apply(null,arguments)},dI=i.dynCall_vi=function(){return(dI=i.dynCall_vi=i.asm.Ab).apply(null,arguments)},OB=i.dynCall_v=function(){return(OB=i.dynCall_v=i.asm.Bb).apply(null,arguments)},PB=i.dynCall_ii=function(){return(PB=i.dynCall_ii=i.asm.Cb).apply(null,arguments)};i.asm=$h,i.cwrap=De,i.PThread=we,i.PThread=we,i._pthread_self=Gs,i.wasmMemory=K,i.ExitStatus=hI;var um;i.then=function(I){if(um)I(i);else{var D=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){D&&D(),I(i)}}return i};function hI(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}Fl=function I(){um||ib(),um||(Fl=I)};function ib(I){if(I=I||c,Qi>0||(Go(),Qi>0))return;function D(){um||(um=!0,i.calledRun=!0,!ae&&(yh(),ty(),i.onRuntimeInitialized&&i.onRuntimeInitialized(),ry()))}i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),D()},1)):D()}if(i.run=ib,i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return x||(te=!0),x||ib(),e}}();typeof Yx=="object"&&typeof tI=="object"?tI.exports=rI:typeof define=="function"&&define.amd?define([],function(){return rI}):typeof Yx=="object"&&(Yx.WasmBackendModuleThreadedSimd=rI)});var bz=Br((Zx,oI)=>{var nI=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};var t=typeof e!="undefined"?e:{},o={},n;for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);var s=[],a="./this.program",i=function(H,ne){throw ne},l=!1,u=!1,c=!1,p=!1;l=typeof window=="object",u=typeof importScripts=="function",c=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",p=!l&&!c&&!u;var m="";function f(H){return t.locateFile?t.locateFile(H,m):m+H}var d,h,g,x,b,_;c?(u?m=Kp().dirname(m)+"/":m=__dirname+"/",d=function(ne,be){return b||(b=require("fs")),_||(_=Kp()),ne=_.normalize(ne),b.readFileSync(ne,be?null:"utf8")},g=function(ne){var be=d(ne,!0);return be.buffer||(be=new Uint8Array(be)),U(be.buffer),be},process.argv.length>1&&(a=process.argv[1].replace(/\\/g,"/")),s=process.argv.slice(2),process.on("uncaughtException",function(H){if(!(H instanceof om))throw H}),process.on("unhandledRejection",Ji),i=function(H){process.exit(H)},t.inspect=function(){return"[Emscripten Module object]"}):p?(typeof read!="undefined"&&(d=function(ne){return read(ne)}),g=function(ne){var be;return typeof readbuffer=="function"?new Uint8Array(readbuffer(ne)):(be=read(ne,"binary"),U(typeof be=="object"),be)},typeof scriptArgs!="undefined"?s=scriptArgs:typeof arguments!="undefined"&&(s=arguments),typeof quit=="function"&&(i=function(H){quit(H)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(l||u)&&(u?m=self.location.href:document.currentScript&&(m=document.currentScript.src),r&&(m=r),m.indexOf("blob:")!==0?m=m.substr(0,m.lastIndexOf("/")+1):m="",d=function(ne){var be=new XMLHttpRequest;return be.open("GET",ne,!1),be.send(null),be.responseText},u&&(g=function(ne){var be=new XMLHttpRequest;return be.open("GET",ne,!1),be.responseType="arraybuffer",be.send(null),new Uint8Array(be.response)}),h=function(ne,be,Ke){var Xe=new XMLHttpRequest;Xe.open("GET",ne,!0),Xe.responseType="arraybuffer",Xe.onload=function(){if(Xe.status==200||Xe.status==0&&Xe.response){be(Xe.response);return}Ke()},Xe.onerror=Ke,Xe.send(null)},x=function(H){document.title=H});var w=t.print||console.log.bind(console),v=t.printErr||console.warn.bind(console);for(n in o)o.hasOwnProperty(n)&&(t[n]=o[n]);o=null,t.arguments&&(s=t.arguments),t.thisProgram&&(a=t.thisProgram),t.quit&&(i=t.quit);var $;t.wasmBinary&&($=t.wasmBinary);var A;t.noExitRuntime&&(A=t.noExitRuntime),typeof WebAssembly!="object"&&v("no native wasm support detected");var R,M=new WebAssembly.Table({initial:151,maximum:151+0,element:"anyfunc"}),z=!1,W=0;function U(H,ne){H||Ji("Assertion failed: "+ne)}function q(H){var ne=t["_"+H];return U(ne,"Cannot call unknown function "+H+", make sure it is exported"),ne}function Z(H,ne,be,Ke,Xe){var Ht={string:function(ho){var Ka=0;if(ho!=null&&ho!==0){var Mh=(ho.length<<2)+1;Ka=rm(Mh),ie(ho,Ka,Mh)}return Ka},array:function(ho){var Ka=rm(ho.length);return se(ho,Ka),Ka}};function at(ho){return ne==="string"?K(ho):ne==="boolean"?Boolean(ho):ho}var nt=q(H),xr=[],ta=0;if(Ke)for(var ra=0;ra=Ke);)++Xe;if(Xe-ne>16&&H.subarray&&Y)return Y.decode(H.subarray(ne,Xe));for(var Ht="";ne>10,56320|ta&1023)}}return Ht}function K(H,ne){return H?te(xe,H,ne):""}function re(H,ne,be,Ke){if(!(Ke>0))return 0;for(var Xe=be,Ht=be+Ke-1,at=0;at=55296&&nt<=57343){var xr=H.charCodeAt(++at);nt=65536+((nt&1023)<<10)|xr&1023}if(nt<=127){if(be>=Ht)break;ne[be++]=nt}else if(nt<=2047){if(be+1>=Ht)break;ne[be++]=192|nt>>6,ne[be++]=128|nt&63}else if(nt<=65535){if(be+2>=Ht)break;ne[be++]=224|nt>>12,ne[be++]=128|nt>>6&63,ne[be++]=128|nt&63}else{if(be+3>=Ht)break;ne[be++]=240|nt>>18,ne[be++]=128|nt>>12&63,ne[be++]=128|nt>>6&63,ne[be++]=128|nt&63}}return ne[be]=0,be-Xe}function ie(H,ne,be){return re(H,xe,ne,be)}function se(H,ne){ae.set(H,ne)}var pe,ae,xe,ge,_e,ke,De,$e,Re;function He(H){pe=H,t.HEAP8=ae=new Int8Array(H),t.HEAP16=ge=new Int16Array(H),t.HEAP32=ke=new Int32Array(H),t.HEAPU8=xe=new Uint8Array(H),t.HEAPU16=_e=new Uint16Array(H),t.HEAPU32=De=new Uint32Array(H),t.HEAPF32=$e=new Float32Array(H),t.HEAPF64=Re=new Float64Array(H)}var ut=t.INITIAL_MEMORY||16777216;function wt(H){for(;H.length>0;){var ne=H.shift();if(typeof ne=="function"){ne(t);continue}var be=ne.func;typeof be=="number"?ne.arg===void 0?t.dynCall_v(be):t.dynCall_vi(be,ne.arg):be(ne.arg===void 0?null:ne.arg)}}var kt=[],pt=[],vt=[],qe=[],Ft=!1,po=!1;function Zt(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)fo(t.preRun.shift());wt(kt)}function mo(){Ft=!0,wt(pt)}function _r(){wt(vt)}function Bo(){po=!0}function Jr(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)wr(t.postRun.shift());wt(qe)}function fo(H){kt.unshift(H)}function wr(H){qe.unshift(H)}var No=Math.ceil,Vo=Math.floor,Qr=0,ts=null,So=null;function gc(H){Qr++,t.monitorRunDependencies&&t.monitorRunDependencies(Qr)}function rs(H){if(Qr--,t.monitorRunDependencies&&t.monitorRunDependencies(Qr),Qr==0&&(ts!==null&&(clearInterval(ts),ts=null),So)){var ne=So;So=null,ne()}}t.preloadedImages={},t.preloadedAudios={};function Ji(H){throw t.onAbort&&t.onAbort(H),H+="",w(H),v(H),z=!0,W=1,H="abort("+H+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(H)}function $l(H,ne){return String.prototype.startsWith?H.startsWith(ne):H.indexOf(ne)===0}var ey="data:application/octet-stream;base64,";function Xp(H){return $l(H,ey)}var xh="file://";function Yp(H){return $l(H,xh)}var Go="tfjs-backend-wasm.wasm";Xp(Go)||(Go=f(Go));function yh(){try{if($)return new Uint8Array($);if(g)return g(Go);throw"both async and sync fetching of the wasm failed"}catch(H){Ji(H)}}function ty(){return!$&&(l||u)&&typeof fetch=="function"&&!Yp(Go)?fetch(Go,{credentials:"same-origin"}).then(function(H){if(!H.ok)throw"failed to load wasm binary file at '"+Go+"'";return H.arrayBuffer()}).catch(function(){return yh()}):new Promise(function(H,ne){H(yh())})}function ry(){var H={env:ea,wasi_snapshot_preview1:ea};function ne(at,nt){var xr=at.exports;t.asm=xr,R=xr.memory,He(R.buffer),rs("wasm-instantiate")}gc("wasm-instantiate");function be(at){ne(at.instance)}function Ke(at){return ty().then(function(nt){return WebAssembly.instantiate(nt,H)}).then(at,function(nt){v("failed to asynchronously prepare wasm: "+nt),Ji(nt)})}function Xe(){if(!$&&typeof WebAssembly.instantiateStreaming=="function"&&!Xp(Go)&&!Yp(Go)&&typeof fetch=="function")fetch(Go,{credentials:"same-origin"}).then(function(at){var nt=WebAssembly.instantiateStreaming(at,H);return nt.then(be,function(xr){v("wasm streaming compile failed: "+xr),v("falling back to ArrayBuffer instantiation"),Ke(be)})});else return Ke(be)}if(t.instantiateWasm)try{var Ht=t.instantiateWasm(H,ne);return Ht}catch(at){return v("Module.instantiateWasm callback failed with error: "+at),!1}return Xe(),{}}pt.push();function oy(H){He(R.buffer)}var Rl={splitPath:function(H){var ne=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return ne.exec(H).slice(1)},normalizeArray:function(H,ne){for(var be=0,Ke=H.length-1;Ke>=0;Ke--){var Xe=H[Ke];Xe==="."?H.splice(Ke,1):Xe===".."?(H.splice(Ke,1),be++):be&&(H.splice(Ke,1),be--)}if(ne)for(;be;be--)H.unshift("..");return H},normalize:function(H){var ne=H.charAt(0)==="/",be=H.substr(-1)==="/";return H=Rl.normalizeArray(H.split("/").filter(function(Ke){return!!Ke}),!ne).join("/"),!H&&!ne&&(H="."),H&&be&&(H+="/"),(ne?"/":"")+H},dirname:function(H){var ne=Rl.splitPath(H),be=ne[0],Ke=ne[1];return!be&&!Ke?".":(Ke&&(Ke=Ke.substr(0,Ke.length-1)),be+Ke)},basename:function(H){if(H==="/")return"/";var ne=H.lastIndexOf("/");return ne===-1?H:H.substr(ne+1)},extname:function(H){return Rl.splitPath(H)[3]},join:function(){var H=Array.prototype.slice.call(arguments,0);return Rl.normalize(H.join("/"))},join2:function(H,ne){return Rl.normalize(H+"/"+ne)}},xc={mappings:{},buffers:[null,[],[]],printChar:function(H,ne){var be=xc.buffers[H];ne===0||ne===10?((H===1?w:v)(te(be,0)),be.length=0):be.push(ne)},varargs:void 0,get:function(){xc.varargs+=4;var H=ke[xc.varargs-4>>2];return H},getStr:function(H){var ne=K(H);return ne},get64:function(H,ne){return H}};function ny(H){return 0}function Qi(H,ne,be,Ke,Xe){}function Zp(H,ne,be,Ke){for(var Xe=0,Ht=0;Ht>2],nt=ke[ne+(Ht*8+4)>>2],xr=0;xr>2]=Xe,0}function Fl(H){Fh(H)}function sy(H){Fl(H)}function iy(H){return H=+H,H>=0?+Vo(H+.5):+No(H-.5)}var ea={emscripten_notify_memory_growth:oy,fd_close:ny,fd_seek:Qi,fd_write:Zp,proc_exit:sy,roundf:iy},Jp=ry();t.asm=Jp;var ay=t._init=function(){return(ay=t._init=t.asm.init).apply(null,arguments)},bh=t._register_tensor=function(){return(bh=t._register_tensor=t.asm.register_tensor).apply(null,arguments)},ly=t._dispose_data=function(){return(ly=t._dispose_data=t.asm.dispose_data).apply(null,arguments)},_h=t._dispose=function(){return(_h=t._dispose=t.asm.dispose).apply(null,arguments)},Wo=t._Abs=function(){return(Wo=t._Abs=t.asm.Abs).apply(null,arguments)},wh=t._Add=function(){return(wh=t._Add=t.asm.Add).apply(null,arguments)},uy=t._AddN=function(){return(uy=t._AddN=t.asm.AddN).apply(null,arguments)},cy=t._ArgMax=function(){return(cy=t._ArgMax=t.asm.ArgMax).apply(null,arguments)},py=t._AvgPool=function(){return(py=t._AvgPool=t.asm.AvgPool).apply(null,arguments)},my=t._BatchMatMul=function(){return(my=t._BatchMatMul=t.asm.BatchMatMul).apply(null,arguments)},kh=t._ClipByValue=function(){return(kh=t._ClipByValue=t.asm.ClipByValue).apply(null,arguments)},vh=t._Conv2D=function(){return(vh=t._Conv2D=t.asm.Conv2D).apply(null,arguments)},Ch=t._Conv2DBackpropInput=function(){return(Ch=t._Conv2DBackpropInput=t.asm.Conv2DBackpropInput).apply(null,arguments)},yc=t._Cos=function(){return(yc=t._Cos=t.asm.Cos).apply(null,arguments)},Qp=t._CropAndResize=function(){return(Qp=t._CropAndResize=t.asm.CropAndResize).apply(null,arguments)},bc=t._Cumsum=function(){return(bc=t._Cumsum=t.asm.Cumsum).apply(null,arguments)},_c=t._DepthToSpace=function(){return(_c=t._DepthToSpace=t.asm.DepthToSpace).apply(null,arguments)},fy=t._DepthwiseConv2dNative=function(){return(fy=t._DepthwiseConv2dNative=t.asm.DepthwiseConv2dNative).apply(null,arguments)},dy=t._Equal=function(){return(dy=t._Equal=t.asm.Equal).apply(null,arguments)},hy=t._Exp=function(){return(hy=t._Exp=t.asm.Exp).apply(null,arguments)},we=t._FlipLeftRight=function(){return(we=t._FlipLeftRight=t.asm.FlipLeftRight).apply(null,arguments)},gy=t._Floor=function(){return(gy=t._Floor=t.asm.Floor).apply(null,arguments)},xy=t._FloorDiv=function(){return(xy=t._FloorDiv=t.asm.FloorDiv).apply(null,arguments)},yy=t._FusedBatchNorm=function(){return(yy=t._FusedBatchNorm=t.asm.FusedBatchNorm).apply(null,arguments)},by=t._FusedConv2D=function(){return(by=t._FusedConv2D=t.asm.FusedConv2D).apply(null,arguments)},Ol=t._FusedDepthwiseConv2D=function(){return(Ol=t._FusedDepthwiseConv2D=t.asm.FusedDepthwiseConv2D).apply(null,arguments)},_y=t._Gather=function(){return(_y=t._Gather=t.asm.Gather).apply(null,arguments)},wy=t._GatherNd=function(){return(wy=t._GatherNd=t.asm.GatherNd).apply(null,arguments)},ky=t._Greater=function(){return(ky=t._Greater=t.asm.Greater).apply(null,arguments)},vy=t._GreaterEqual=function(){return(vy=t._GreaterEqual=t.asm.GreaterEqual).apply(null,arguments)},Cy=t._LeakyRelu=function(){return(Cy=t._LeakyRelu=t.asm.LeakyRelu).apply(null,arguments)},Iy=t._Less=function(){return(Iy=t._Less=t.asm.Less).apply(null,arguments)},Ny=t._LessEqual=function(){return(Ny=t._LessEqual=t.asm.LessEqual).apply(null,arguments)},Sy=t._Log=function(){return(Sy=t._Log=t.asm.Log).apply(null,arguments)},Ty=t._LogicalAnd=function(){return(Ty=t._LogicalAnd=t.asm.LogicalAnd).apply(null,arguments)},Ey=t._Max=function(){return(Ey=t._Max=t.asm.Max).apply(null,arguments)},Ha=t._MaxPool=function(){return(Ha=t._MaxPool=t.asm.MaxPool).apply(null,arguments)},Pl=t._Maximum=function(){return(Pl=t._Maximum=t.asm.Maximum).apply(null,arguments)},wc=t._Mean=function(){return(wc=t._Mean=t.asm.Mean).apply(null,arguments)},Ay=t._Min=function(){return(Ay=t._Min=t.asm.Min).apply(null,arguments)},Dy=t._Minimum=function(){return(Dy=t._Minimum=t.asm.Minimum).apply(null,arguments)},$y=t._Multiply=function(){return($y=t._Multiply=t.asm.Multiply).apply(null,arguments)},Ry=t._Neg=function(){return(Ry=t._Neg=t.asm.Neg).apply(null,arguments)},Ze=t._NonMaxSuppressionV3=function(){return(Ze=t._NonMaxSuppressionV3=t.asm.NonMaxSuppressionV3).apply(null,arguments)},Fy=t._NonMaxSuppressionV4=function(){return(Fy=t._NonMaxSuppressionV4=t.asm.NonMaxSuppressionV4).apply(null,arguments)},Oy=t._NonMaxSuppressionV5=function(){return(Oy=t._NonMaxSuppressionV5=t.asm.NonMaxSuppressionV5).apply(null,arguments)},Py=t._NotEqual=function(){return(Py=t._NotEqual=t.asm.NotEqual).apply(null,arguments)},My=t._OneHot=function(){return(My=t._OneHot=t.asm.OneHot).apply(null,arguments)},Ly=t._PadV2=function(){return(Ly=t._PadV2=t.asm.PadV2).apply(null,arguments)},zy=t._Pow=function(){return(zy=t._Pow=t.asm.Pow).apply(null,arguments)},em=t._Prelu=function(){return(em=t._Prelu=t.asm.Prelu).apply(null,arguments)},Ih=t._Prod=function(){return(Ih=t._Prod=t.asm.Prod).apply(null,arguments)},Nh=t._RealDiv=function(){return(Nh=t._RealDiv=t.asm.RealDiv).apply(null,arguments)},By=t._Relu=function(){return(By=t._Relu=t.asm.Relu).apply(null,arguments)},Vy=t._Relu6=function(){return(Vy=t._Relu6=t.asm.Relu6).apply(null,arguments)},Gy=t._ResizeBilinear=function(){return(Gy=t._ResizeBilinear=t.asm.ResizeBilinear).apply(null,arguments)},Wy=t._Reverse=function(){return(Wy=t._Reverse=t.asm.Reverse).apply(null,arguments)},Uy=t._RotateWithOffset=function(){return(Uy=t._RotateWithOffset=t.asm.RotateWithOffset).apply(null,arguments)},jy=t._Round=function(){return(jy=t._Round=t.asm.Round).apply(null,arguments)},rt=t._Rsqrt=function(){return(rt=t._Rsqrt=t.asm.Rsqrt).apply(null,arguments)},Hy=t._ScatterNd=function(){return(Hy=t._ScatterNd=t.asm.ScatterNd).apply(null,arguments)},qy=t._SelectV2=function(){return(qy=t._SelectV2=t.asm.SelectV2).apply(null,arguments)},Ky=t._Sigmoid=function(){return(Ky=t._Sigmoid=t.asm.Sigmoid).apply(null,arguments)},Ml=t._Sin=function(){return(Ml=t._Sin=t.asm.Sin).apply(null,arguments)},kc=t._Softmax=function(){return(kc=t._Softmax=t.asm.Softmax).apply(null,arguments)},Sh=t._Sqrt=function(){return(Sh=t._Sqrt=t.asm.Sqrt).apply(null,arguments)},Th=t._Square=function(){return(Th=t._Square=t.asm.Square).apply(null,arguments)},Eh=t._SquaredDifference=function(){return(Eh=t._SquaredDifference=t.asm.SquaredDifference).apply(null,arguments)},Xy=t._Step=function(){return(Xy=t._Step=t.asm.Step).apply(null,arguments)},Yy=t._StridedSlice=function(){return(Yy=t._StridedSlice=t.asm.StridedSlice).apply(null,arguments)},Ah=t._Sub=function(){return(Ah=t._Sub=t.asm.Sub).apply(null,arguments)},Zy=t._Sum=function(){return(Zy=t._Sum=t.asm.Sum).apply(null,arguments)},Gs=t._Tanh=function(){return(Gs=t._Tanh=t.asm.Tanh).apply(null,arguments)},Jy=t._Tile=function(){return(Jy=t._Tile=t.asm.Tile).apply(null,arguments)},Qy=t._TopK=function(){return(Qy=t._TopK=t.asm.TopK).apply(null,arguments)},Dh=t._Transpose=function(){return(Dh=t._Transpose=t.asm.Transpose).apply(null,arguments)},qa=t.__FusedMatMul=function(){return(qa=t.__FusedMatMul=t.asm._FusedMatMul).apply(null,arguments)},eb=t._malloc=function(){return(eb=t._malloc=t.asm.malloc).apply(null,arguments)},tb=t._free=function(){return(tb=t._free=t.asm.free).apply(null,arguments)},$h=t.__start=function(){return($h=t.__start=t.asm._start).apply(null,arguments)},tm=t.stackSave=function(){return(tm=t.stackSave=t.asm.stackSave).apply(null,arguments)},rm=t.stackAlloc=function(){return(rm=t.stackAlloc=t.asm.stackAlloc).apply(null,arguments)},Rh=t.stackRestore=function(){return(Rh=t.stackRestore=t.asm.stackRestore).apply(null,arguments)};t.asm=Jp,t.cwrap=X;var Ll;t.then=function(H){if(Ll)H(t);else{var ne=t.onRuntimeInitialized;t.onRuntimeInitialized=function(){ne&&ne(),H(t)}}return t};function om(H){this.name="ExitStatus",this.message="Program terminated with exit("+H+")",this.status=H}var rb=!1;So=function H(){Ll||nm(),Ll||(So=H)};function ob(H){var ne=t.__start;try{ne();var be=0;Fh(be,!0)}catch(Xe){if(Xe instanceof om)return;if(Xe=="unwind"){A=!0;return}else{var Ke=Xe;Xe&&typeof Xe=="object"&&Xe.stack&&(Ke=[Xe,Xe.stack]),v("exception thrown: "+Ke),i(1,Xe)}}finally{rb=!0}}function nm(H){if(H=H||s,Qr>0||(Zt(),Qr>0))return;function ne(){Ll||(Ll=!0,t.calledRun=!0,!z&&(mo(),_r(),t.onRuntimeInitialized&&t.onRuntimeInitialized(),Oh&&ob(H),Jr()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),ne()},1)):ne()}t.run=nm;function Fh(H,ne){ne&&A&&H===0||(A||(z=!0,W=H,Bo(),t.onExit&&t.onExit(H)),i(H,new om(H)))}if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();var Oh=!0;return t.noInitialRun&&(Oh=!1),A=!0,nm(),e}}();typeof Zx=="object"&&typeof oI=="object"?oI.exports=nI:typeof define=="function"&&define.amd?define([],function(){return nI}):typeof Zx=="object"&&(Zx.WasmBackendModule=nI)});var UB=1e-7,jB=1e-4,Ya=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},Ws=class{decComplexRef(e){}time(e){return Us("time")}read(e){return Us("read")}readSync(e){return Us("readSync")}numDataIds(){return Us("numDataIds")}disposeData(e){return Us("disposeData")}write(e,t,o){return Us("write")}move(e,t,o,n){return Us("move")}memory(){return Us("memory")}floatPrecision(){return Us("floatPrecision")}epsilon(){return this.floatPrecision()===32?UB:jB}dispose(){return Us("dispose")}};function Us(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function xI(r){let e=r.length,t=0,o=0;for(;e>0;)o=Math.random()*e|0,e--,t=r[e],r[e]=r[o],r[o]=t}function HB(r,e){if(r.length!==e.length)throw Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${e.length}`);let t=r.length,o,n,s=0;for(;t>0;)s=Math.random()*t|0,t--,o=r[t],n=e[t],r[t]=r[s],e[t]=e[s],r[s]=o,e[s]=n}function Tc(r,e,t){return Math.max(r,Math.min(e,t))}function qB(r){return r%2==0?r:r+1}function KB(r){let e=0;for(let t=0;tt+` Shapes ${r} and ${e} must match`)}function To(r){T(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function os(r,e=[],t=!1){if(e==null&&(e=[]),Array.isArray(r)||rr(r)&&!t)for(let o=0;o0,t){return new Promise((o,n)=>{let s=0,a=()=>{if(r()){o();return}s++;let i=e(s);if(t!=null&&s>=t){n();return}setTimeout(a,i)};a()})}function r3(r,e){let t=1,o=-1;for(let s=0;s=0)t*=r[s];else if(r[s]===-1){if(o!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${o} and dim ${s}`);o=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(o===-1){if(e>0&&e!==t)throw Error(`Size(${e}) must match the product of shape ${r}`);return r}if(t===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(e%t!=0)throw Error(`The implicit shape can't be a fractional number. Got ${e} / ${t}`);let n=r.slice();return n[o]=e/t,n}function Jt(r,e){let t=e.length;return r=r==null?e.map((o,n)=>n):[].concat(r),T(r.every(o=>o>=-t&&o`All values in axis param must be in range [-${t}, ${t}) but got axis ${r}`),T(r.every(o=>st(o)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(o=>o<0?t+o:o)}function ub(r,e){let t=[],o=[],n=e!=null&&Array.isArray(e)&&e.length===0,s=e==null||n?null:Jt(e,r).sort(),a=0;for(let i=0;ii)&&r[i]===1&&(t.push(r[i]),o.push(i)),s[a]<=i&&a++}r[i]!==1&&(t.push(r[i]),o.push(i))}return{newShape:t,keptDims:o}}function cb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else throw new Error(`Unknown data type ${r}`);return t}function pb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else if(r==="string")t=new Array(e);else throw new Error(`Unknown data type ${r}`);return t}function mb(r,e){for(let t=0;te+=t.length),e}function ns(r){return typeof r=="string"||r instanceof String}function yI(r){return typeof r=="boolean"}function bI(r){return typeof r=="number"}function Ec(r){return Array.isArray(r)?Ec(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array?"int32":bI(r)?"float32":ns(r)?"string":yI(r)?"bool":"float32"}function js(r){return!!(r&&r.constructor&&r.call&&r.apply)}function Ac(r,e){for(let t=e;t=0;--o)t[o]=t[o+1]*r[o+1];return t}function _I(r,e,t){let o=new Array;if(e.length===1){let n=e[0];for(let s=0;si*l);for(let i=0;io*n);if(t===0)return[];if(t!==e.length)throw new Error(`[${r}] does not match the input size ${e.length}.`);return _I(0,r,e)}function mm(r,e){let t=Dc(r,e);for(let o=0;oo*n,1);if(e==null||e==="float32")return Bl(r,new Float32Array(t));if(e==="int32")return Bl(r,new Int32Array(t));if(e==="bool")return Bl(r,new Uint8Array(t));throw new Error(`Unknown data type ${e}`)}function fm(r){r.forEach(e=>{T(Number.isInteger(e)&&e>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function s3(r,e,t){if(e===0)return 0;if(e===1)return r[0];let o=r[r.length-1];for(let n=0;n{let[n,s]=o.split(":");this.urlFlags[n]=l3(n,s)})}};function a3(r){let e={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(t,...o)=>(u3(e,o[0],o[1]),o.join("="))),e}function u3(r,e,t){r[decodeURIComponent(e)]=decodeURIComponent(t||"")}function l3(r,e){if(e=e.toLowerCase(),e==="true"||e==="false")return e==="true";if(`${+e}`===e)return+e;throw new Error(`Could not parse value flag value ${e} for flag ${r}.`)}function G(){return gb}var gb=null;function kI(r){gb=r}var xb;function yb(){if(xb==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");xb=r}return xb}function c3(){let r=yb();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function hm(r,e){let t=c3();if(t.has(r))return t.get(r);{let o=e();return t.set(r,o),t.get(r)}}var ss="Abs",qs="Acos",Ks="Acosh",xo="Add",Uo="AddN",Vl="All",Gl="Any",jo="ArgMax",oa="ArgMin",Xs="Asin",Ys="Asinh",Zs="Atan",Js="Atanh",Qs="Atan2",Ho="AvgPool",Wl="AvgPoolGrad",na="AvgPool3D",Ul="AvgPool3DGrad",qo="BatchMatMul",sa="BatchToSpaceND",jl="Bincount",bb="BroadcastTo",Eo="Cast",ei="Ceil",Ao="ClipByValue",Hl="Complex",ia="ComplexAbs",is="Concat",Ko="Conv2D",ql="Conv2DBackpropFilter",Xo="Conv2DBackpropInput",aa="Conv3D",Kl="Conv3DBackpropFilterV2",Xl="Conv3DBackpropInputV2",Yo="Cos",ti="Cosh",Zo="Cumsum",ri="CropAndResize",Yl="DenseBincount",oi="DepthToSpace",Jo="DepthwiseConv2dNative",Zl="DepthwiseConv2dNativeBackpropFilter",Jl="DepthwiseConv2dNativeBackpropInput",Ql="Diag",la="Dilation2D",$c="Dilation2DBackpropInput",Rc="Dilation2DBackpropFilter",Qo="RealDiv",ni="Elu",eu="EluGrad",si="Erf",ii="Equal",en="Exp",as="ExpandDims",ai="Expm1",tu="FFT",ua="Fill",li="FlipLeftRight",tn="Floor",rn="FloorDiv",on="FusedBatchNorm",ls="GatherV2",ui="GatherNd",ci="Greater",nn="GreaterEqual",us="Identity",ru="IFFT",ou="Imag",pi="IsFinite",mi="IsInf",fi="IsNan",sn="LeakyRelu",di="Less",hi="LessEqual",nu="LinSpace",an="Log",gi="Log1p",xi="LogicalAnd",Za="LogicalNot",Ja="LogicalOr",_b="LogSoftmax",ca="LRN",su="LRNGrad",ln="Max",un="Maximum",cn="MaxPool",iu="MaxPoolGrad",pa="MaxPool3D",au="MaxPool3DGrad",lu="MaxPoolWithArgmax",pn="Mean",mn="Min",fn="Minimum",ma="MirrorPad",yi="Mod",uu="Multinomial",dn="Multiply",cs="Neg",bi="NotEqual",_i="NonMaxSuppressionV3",wi="NonMaxSuppressionV4",ki="NonMaxSuppressionV5",ps="OnesLike",hn="OneHot",ms="Pack",gn="PadV2",p3="Pool",xn="Pow",yn="Prelu",vi="Prod",fa="Range",cu="Real",Ci="Reciprocal",bn="Relu",fs="Reshape",da="ResizeNearestNeighbor",pu="ResizeNearestNeighborGrad",_n="ResizeBilinear",mu="ResizeBilinearGrad",wn="Relu6",kn="Reverse",vn="Round",Cn="Rsqrt",Ii="ScatterNd",ds="Select",Ni="Selu",hs="Slice",In="Sin",Si="Sinh",Ti="Sign",Nn="Sigmoid",Ei="Softplus",Sn="Sqrt",Tn="Sum",ha="SpaceToBatchND",gs="SplitV",En="Softmax",An="SquaredDifference",ga="Square",Dn="Sub",fu="SparseToDense",Ai="StridedSlice",Di="Tan",$n="Tanh",yo="Tile",$i="TopK",Rn="Transpose",du="Unique",xs="Unpack",xa="UnsortedSegmentSum",ys="ZerosLike",Do="Step",Fc="FromPixels",Ri="RotateWithOffset",bs="_FusedMatMul",_s="FusedConv2D",ws="FusedDepthwiseConv2D";var Oc=hm("kernelRegistry",()=>new Map),gm=hm("gradRegistry",()=>new Map);function Pc(r,e){let t=wb(r,e);return Oc.get(t)}function Bh(r){return gm.get(r)}function xm(r){let e=Oc.entries(),t=[];for(;;){let{done:o,value:n}=e.next();if(o)break;let[s,a]=n,[i]=s.split("_");i===r&&t.push(a)}return t}function Qa(r){let{kernelName:e,backendName:t}=r,o=wb(e,t);Oc.has(o)&&console.warn(`The kernel '${e}' for backend '${t}' is already registered`),Oc.set(o,r)}function kb(r){let{kernelName:e}=r;gm.has(e)&&G().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${e}'`),gm.set(e,r)}function m3(r,e){let t=wb(r,e);if(!Oc.has(t))throw new Error(`The kernel '${r}' for backend '${e}' is not registered`);Oc.delete(t)}function f3(r){if(!gm.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);gm.delete(r)}function d3(r,e){xm(r).forEach(o=>{let n=Object.assign({},o,{backendName:e});Qa(n)})}function wb(r,e){return`${e}_${r}`}var y={};et(y,{arraysEqual:()=>Vr,assert:()=>T,assertNonNegativeIntegerDimensions:()=>fm,assertNonNull:()=>To,assertShapesMatch:()=>Nt,bytesFromStringArray:()=>hb,bytesPerElement:()=>db,checkConversionForErrors:()=>mb,clamp:()=>Tc,computeStrides:()=>Hs,createScalarValue:()=>h3,createShuffledIndices:()=>e3,decodeString:()=>Lc,distSquared:()=>YB,encodeString:()=>el,fetch:()=>x3,flatten:()=>os,getArrayFromDType:()=>pb,getTypedArrayFromDType:()=>cb,hasEncodingLoss:()=>o3,indexToLoc:()=>i3,inferDtype:()=>Ec,inferFromImplicitShape:()=>r3,isBoolean:()=>yI,isFunction:()=>js,isInt:()=>st,isNumber:()=>bI,isPromise:()=>dm,isScalarShape:()=>ZB,isString:()=>ns,isTypedArray:()=>rr,isValidDtype:()=>fb,locToIndex:()=>s3,makeOnesTypedArray:()=>mm,makeZerosNestedTypedArray:()=>n3,makeZerosTypedArray:()=>Dc,nearestDivisor:()=>Ac,nearestLargerEven:()=>qB,now:()=>Vh,parseAxisParam:()=>Jt,randUniform:()=>XB,repeatedTry:()=>t3,rightPad:()=>zl,shuffle:()=>xI,shuffleCombo:()=>HB,sizeFromShape:()=>ft,sizeToSquarishShape:()=>QB,squeezeShape:()=>ub,sum:()=>KB,tanh:()=>JB,toNestedArray:()=>Bl,toTypedArray:()=>Mc});function h3(r,e){return e==="string"?el(r):Mc([r],e)}function g3(r,e){return r instanceof Float32Array&&e==="float32"||r instanceof Int32Array&&e==="int32"||r instanceof Uint8Array&&e==="bool"}function Mc(r,e){if(e==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=os(r)),G().getBool("DEBUG")&&mb(r,e),g3(r,e))return r;if(e==null||e==="float32"||e==="complex64")return new Float32Array(r);if(e==="int32")return new Int32Array(r);if(e==="bool"){let t=new Uint8Array(r.length);for(let o=0;o{n=o()},a=this.backendTimer.time(s);if(G().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{y3(c,u.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:a.then(l=>l.kernelMs),extraInfo:a.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:o,timeMs:n,inputs:s,extraInfo:a}=e;o.forEach(i=>{Promise.all([i.data(),n,a]).then(l=>{this.logger.logKernelProfile(t,i,l[0],l[1],s,l[2])})})}};function y3(r,e,t){if(e!=="float32")return!1;for(let o=0;o0?h:""} `}}console.log(`%c${l} %c${i} %c${u}D ${p} %c${c} %c${m} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function CI(r,e,t){let o={},n={};for(let l=0;lo[h.id]=!0),f=!0,n[u.id]=!0;break}if(f)break}}let s={};s[t.id]=!0;let a={};for(let l=r.length-1;l>=0;l--){let u=r[l],c=u.inputs;for(let p=0;p=0;n--){let s=e[n],a=[];if(s.outputs.forEach(l=>{let u=r[l.id];u!=null?a.push(u):a.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let i=s.gradient(a);for(let l in s.inputs){if(!(l in i))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(i)}.`);let u=t(()=>i[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=s.inputs[l];if(!Vr(u.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=u;else{let p=r[c.id];r[c.id]=o(p,u),p.dispose()}}}}var NI=20,ym=3,Cb=7;function SI(r,e,t,o){let n=Hs(e),s=b3(r,e,t,n),a=e.length,i=Gh(r,e,t,n,s),l=["Tensor"];return o&&(l.push(` dtype: ${t}`),l.push(` rank: ${a}`),l.push(` shape: [${e}]`),l.push(" values:")),l.push(i.map(u=>" "+u).join(` +var GB=Object.create,Wh=Object.defineProperty,WB=Object.getPrototypeOf,UB=Object.prototype.hasOwnProperty,jB=Object.getOwnPropertyNames,HB=Object.getOwnPropertyDescriptor;var qB=r=>Wh(r,"__esModule",{value:!0});var Br=(r,e)=>()=>(e||(e={exports:{}},r(e.exports,e)),e.exports),et=(r,e)=>{for(var t in e)Wh(r,t,{get:e[t],enumerable:!0})},KB=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of jB(e))!UB.call(r,o)&&o!=="default"&&Wh(r,o,{get:()=>e[o],enumerable:!(t=HB(e,o))||t.enumerable});return r},Tc=r=>r&&r.__esModule?r:KB(qB(Wh(r!=null?GB(WB(r)):{},"default",{value:r,enumerable:!0})),r);var nN=Br(()=>{});var MN=Br((PN,$_)=>{(function(r,e,t){function o(i){var l=this,u=a();l.next=function(){var c=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=c-(l.c=c|0)},l.c=1,l.s0=u(" "),l.s1=u(" "),l.s2=u(" "),l.s0-=u(i),l.s0<0&&(l.s0+=1),l.s1-=u(i),l.s1<0&&(l.s1+=1),l.s2-=u(i),l.s2<0&&(l.s2+=1),u=null}function n(i,l){return l.c=i.c,l.s0=i.s0,l.s1=i.s1,l.s2=i.s2,l}function s(i,l){var u=new o(i),c=l&&l.state,p=u.next;return p.int32=function(){return u.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&n(c,u),p.state=function(){return n(u,{})}),p}function a(){var i=4022871197,l=function(u){u=u.toString();for(var c=0;c>>0,p-=i,p*=i,i=p>>>0,p-=i,i+=p*4294967296}return(i>>>0)*23283064365386963e-26};return l}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s})(PN,typeof $_=="object"&&$_,typeof define=="function"&&define)});var zN=Br((LN,R_)=>{(function(r,e,t){function o(a){var i=this,l="";i.x=0,i.y=0,i.z=0,i.w=0,i.next=function(){var c=i.x^i.x<<11;return i.x=i.y,i.y=i.z,i.z=i.w,i.w^=i.w>>>19^c^c>>>8},a===(a|0)?i.x=a:l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s})(LN,typeof R_=="object"&&R_,typeof define=="function"&&define)});var VN=Br((BN,F_)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.x^i.x>>>2;return i.x=i.y,i.y=i.z,i.z=i.w,i.w=i.v,(i.d=i.d+362437|0)+(i.v=i.v^i.v<<4^(c^c<<1))|0},i.x=0,i.y=0,i.z=0,i.w=0,i.v=0,a===(a|0)?i.x=a:l+=a;for(var u=0;u>>4),i.next()}function n(a,i){return i.x=a.x,i.y=a.y,i.z=a.z,i.w=a.w,i.v=a.v,i.d=a.d,i}function s(a,i){var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s})(BN,typeof F_=="object"&&F_,typeof define=="function"&&define)});var WN=Br((GN,O_)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.x,c=i.i,p,m,f;return p=u[c],p^=p>>>7,m=p^p<<24,p=u[c+1&7],m^=p^p>>>10,p=u[c+3&7],m^=p^p>>>3,p=u[c+4&7],m^=p^p<<7,p=u[c+7&7],p=p^p<<13,m^=p^p<<9,u[c]=m,i.i=c+1&7,m};function l(u,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)u.next()}l(i,a)}function n(a,i){return i.x=a.x.slice(),i.i=a.i,i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.x&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s})(GN,typeof O_=="object"&&O_,typeof define=="function"&&define)});var jN=Br((UN,P_)=>{(function(r,e,t){function o(a){var i=this;i.next=function(){var u=i.w,c=i.X,p=i.i,m,f;return i.w=u=u+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,i.i=p,f+(u^u>>>16)|0};function l(u,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;u.w=h,u.X=g,u.i=f}l(i,a)}function n(a,i){return i.i=a.i,i.w=a.w,i.X=a.X.slice(),i}function s(a,i){a==null&&(a=+new Date);var l=new o(a),u=i&&i.state,c=function(){return(l.next()>>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(u.X&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s})(UN,typeof P_=="object"&&P_,typeof define=="function"&&define)});var qN=Br((HN,M_)=>{(function(r,e,t){function o(a){var i=this,l="";i.next=function(){var c=i.b,p=i.c,m=i.d,f=i.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,i.b=c=c<<20^c>>>12^p,i.c=p=p-m|0,i.d=m<<16^p>>>16^f,i.a=f-c|0},i.a=0,i.b=0,i.c=2654435769|0,i.d=1367130551,a===Math.floor(a)?(i.a=a/4294967296|0,i.b=a|0):l+=a;for(var u=0;u>>0)/4294967296};return c.double=function(){do var p=l.next()>>>11,m=(l.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=l.next,c.quick=c,u&&(typeof u=="object"&&n(u,l),c.state=function(){return n(l,{})}),c}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s})(HN,typeof M_=="object"&&M_,typeof define=="function"&&define)});var KN=Br(()=>{});var XN=Br((Oxe,mg)=>{(function(r,e){var t=this,o=256,n=6,s=52,a="random",i=e.pow(o,n),l=e.pow(2,s),u=l*2,c=o-1,p;function m(_,w,v){var $=[];w=w==!0?{entropy:!0}:w||{};var A=g(h(w.entropy?[_,b(r)]:_==null?x():_,3),$),R=new f($),M=function(){for(var V=R.g(n),G=i,W=0;V=u;)V/=2,G/=2,W>>>=1;return(V+W)/G};return M.int32=function(){return R.g(4)|0},M.quick=function(){return R.g(4)/4294967296},M.double=M,g(b(R.S),r),(w.pass||v||function(V,G,W,q){return q&&(q.S&&d(q,R),V.state=function(){return d(R,{})}),W?(e[a]=V,G):V})(M,A,"global"in w?w.global:this==e,w.state)}e["seed"+a]=m;function f(_){var w,v=_.length,$=this,A=0,R=$.i=$.j=0,M=$.S=[];for(v||(_=[v++]);A{var y4=MN(),b4=zN(),_4=VN(),w4=WN(),k4=jN(),v4=qN(),Fu=XN();Fu.alea=y4;Fu.xor128=b4;Fu.xorwow=_4;Fu.xorshift7=w4;Fu.xor4096=k4;Fu.tychei=v4;YN.exports=Fu});var ME=Br(()=>{});var Jp=Br(()=>{});var _z=Br(()=>{});var wz=Br(()=>{});var kz=Br((ry,nI)=>{var sI=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};function t(){return K.buffer!=qe&&wr(K.buffer),Ft}function o(){return K.buffer!=qe&&wr(K.buffer),po}function n(){return K.buffer!=qe&&wr(K.buffer),_r}function s(){return K.buffer!=qe&&wr(K.buffer),Go}function a(){return K.buffer!=qe&&wr(K.buffer),fo}var i=typeof e!="undefined"?e:{},l={},u;for(u in i)i.hasOwnProperty(u)&&(l[u]=i[u]);var c=[],p="./this.program",m=function(I,D){throw D},f=!1,d=!1,h=!1,g=!1;f=typeof window=="object",d=typeof importScripts=="function",h=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g=!f&&!h&&!d;var x=i.ENVIRONMENT_IS_PTHREAD||!1;x&&(qe=i.buffer,ss=i.DYNAMIC_BASE,So=i.DYNAMICTOP_PTR);var b="";function _(I){return i.locateFile?i.locateFile(I,b):b+I}var w,v,$,A,R,M;if(h){d?b=Jp().dirname(b)+"/":b=__dirname+"/",w=function(D,P){return R||(R=require("fs")),M||(M=Jp()),D=M.normalize(D),R.readFileSync(D,P?null:"utf8")},$=function(D){var P=w(D,!0);return P.buffer||(P=new Uint8Array(P)),ge(P.buffer),P},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),c=process.argv.slice(2),process.on("uncaughtException",function(I){if(!(I instanceof yI))throw I}),process.on("unhandledRejection",ea),m=function(I){process.exit(I)},i.inspect=function(){return"[Emscripten Module object]"};var V;try{V=_z()}catch(I){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),I}Worker=V.Worker}else g?(typeof read!="undefined"&&(w=function(D){return read(D)}),$=function(D){var P;return typeof readbuffer=="function"?new Uint8Array(readbuffer(D)):(P=read(D,"binary"),ge(typeof P=="object"),P)},typeof scriptArgs!="undefined"?c=scriptArgs:typeof arguments!="undefined"&&(c=arguments),typeof quit=="function"&&(m=function(I){quit(I)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(f||d)&&(d?b=self.location.href:document.currentScript&&(b=document.currentScript.src),typeof r!="undefined"&&r&&(b=r),b.indexOf("blob:")!==0?b=b.substr(0,b.lastIndexOf("/")+1):b="",h?(w=function(D,P){return R||(R=require("fs")),M||(M=Jp()),D=M.normalize(D),R.readFileSync(D,P?null:"utf8")},$=function(D){var P=w(D,!0);return P.buffer||(P=new Uint8Array(P)),ge(P.buffer),P}):(w=function(D){var P=new XMLHttpRequest;return P.open("GET",D,!1),P.send(null),P.responseText},d&&($=function(D){var P=new XMLHttpRequest;return P.open("GET",D,!1),P.responseType="arraybuffer",P.send(null),new Uint8Array(P.response)}),v=function(D,P,j){var me=new XMLHttpRequest;me.open("GET",D,!0),me.responseType="arraybuffer",me.onload=function(){if(me.status==200||me.status==0&&me.response){P(me.response);return}j()},me.onerror=j,me.send(null)}),A=function(I){document.title=I});h&&typeof performance=="undefined"&&(performance=wz().performance);var G=i.print||console.log.bind(console),W=i.printErr||console.warn.bind(console);for(u in l)l.hasOwnProperty(u)&&(i[u]=l[u]);l=null,i.arguments&&(c=i.arguments),i.thisProgram&&(p=i.thisProgram),i.quit&&(m=i.quit);var q=Atomics.load,Z=Atomics.store,X=Atomics.compareExchange,Y;i.wasmBinary&&(Y=i.wasmBinary);var te;i.noExitRuntime&&(te=i.noExitRuntime),typeof WebAssembly!="object"&&W("no native wasm support detected");var K,re=new WebAssembly.Table({initial:171,maximum:171+0,element:"anyfunc"}),ie,se=0,pe=0,ae=!1,xe=0;function ge(I,D){I||ea("Assertion failed: "+D)}function _e(I){var D=i["_"+I];return ge(D,"Cannot call unknown function "+I+", make sure it is exported"),D}function ke(I,D,P,j,me){var he={string:function(go){var Xa=0;if(go!=null&&go!==0){var dm=(go.length<<2)+1;Xa=Cc(dm),ut(go,Xa,dm)}return Xa},array:function(go){var Xa=Cc(go.length);return kt(go,Xa),Xa}};function fe(go){return D==="string"?Re(go):D==="boolean"?Boolean(go):go}var Se=_e(I),mt=[],pr=0;if(j)for(var Ar=0;Ar=j);){var he=I[D++];if(!he)return me;if(!(he&128)){me+=String.fromCharCode(he);continue}var fe=I[D++]&63;if((he&224)==192){me+=String.fromCharCode((he&31)<<6|fe);continue}var Se=I[D++]&63;if((he&240)==224?he=(he&15)<<12|fe<<6|Se:he=(he&7)<<18|fe<<12|Se<<6|I[D++]&63,he<65536)me+=String.fromCharCode(he);else{var mt=he-65536;me+=String.fromCharCode(55296|mt>>10,56320|mt&1023)}}return me}function Re(I,D){return I?$e(o(),I,D):""}function He(I,D,P,j){if(!(j>0))return 0;for(var me=P,he=P+j-1,fe=0;fe=55296&&Se<=57343){var mt=I.charCodeAt(++fe);Se=65536+((Se&1023)<<10)|mt&1023}if(Se<=127){if(P>=he)break;D[P++]=Se}else if(Se<=2047){if(P+1>=he)break;D[P++]=192|Se>>6,D[P++]=128|Se&63}else if(Se<=65535){if(P+2>=he)break;D[P++]=224|Se>>12,D[P++]=128|Se>>6&63,D[P++]=128|Se&63}else{if(P+3>=he)break;D[P++]=240|Se>>18,D[P++]=128|Se>>12&63,D[P++]=128|Se>>6&63,D[P++]=128|Se&63}}return D[P]=0,P-me}function ut(I,D,P){return He(I,o(),D,P)}function wt(I){for(var D=0,P=0;P=55296&&j<=57343&&(j=65536+((j&1023)<<10)|I.charCodeAt(++P)&1023),j<=127?++D:j<=2047?D+=2:j<=65535?D+=3:D+=4}return D}function kt(I,D){t().set(I,D)}var pt=65536;function vt(I,D){return I%D>0&&(I+=D-I%D),I}var qe,Ft,po,Zt,mo,_r,Go,Jr,fo;function wr(I){qe=I,i.HEAP8=Ft=new Int8Array(I),i.HEAP16=Zt=new Int16Array(I),i.HEAP32=_r=new Int32Array(I),i.HEAPU8=po=new Uint8Array(I),i.HEAPU16=mo=new Uint16Array(I),i.HEAPU32=Go=new Uint32Array(I),i.HEAPF32=Jr=new Float32Array(I),i.HEAPF64=fo=new Float64Array(I)}var No=5256464,Wo=No,Qr=13584,ss=5256464,So=12656,xc=i.INITIAL_MEMORY||16777216;if(x)K=i.wasmMemory,qe=i.buffer;else if(i.wasmMemory)K=i.wasmMemory;else if(K=new WebAssembly.Memory({initial:xc/pt,maximum:2147483648/pt,shared:!0}),!(K.buffer instanceof SharedArrayBuffer))throw W("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),h&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");K&&(qe=K.buffer),xc=qe.byteLength,wr(qe),x||(n()[So>>2]=ss);function is(I){for(;I.length>0;){var D=I.shift();if(typeof D=="function"){D(i);continue}var P=D.func;typeof P=="number"?D.arg===void 0?i.dynCall_v(P):i.dynCall_vi(P,D.arg):P(D.arg===void 0?null:D.arg)}}var Ji=[],$l=[],iy=[],Qp=[],_h=[],em=!1;x&&(em=!0);function Uo(){if(!x){if(i.preRun)for(typeof i.preRun=="function"&&(i.preRun=[i.preRun]);i.preRun.length;)uy(i.preRun.shift());is(Ji)}}function wh(){em=!0,is($l)}function ay(){x||is(iy)}function ly(){if(!x){if(i.postRun)for(typeof i.postRun=="function"&&(i.postRun=[i.postRun]);i.postRun.length;)Rl(i.postRun.shift());is(_h)}}function uy(I){Ji.unshift(I)}function Rl(I){_h.unshift(I)}var yc=Math.ceil,cy=Math.floor,Qi=0,tm=null,Fl=null;function py(I){ge(!x,"addRunDependency cannot be used in a pthread worker"),Qi++,i.monitorRunDependencies&&i.monitorRunDependencies(Qi)}function my(I){if(Qi--,i.monitorRunDependencies&&i.monitorRunDependencies(Qi),Qi==0&&(tm!==null&&(clearInterval(tm),tm=null),Fl)){var D=Fl;Fl=null,D()}}i.preloadedImages={},i.preloadedAudios={};function ea(I){throw i.onAbort&&i.onAbort(I),x&&console.error("Pthread aborting at "+new Error().stack),I+="",G(I),W(I),ae=!0,xe=1,I="abort("+I+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(I)}function rm(I,D){return String.prototype.startsWith?I.startsWith(D):I.indexOf(D)===0}var fy="data:application/octet-stream;base64,";function kh(I){return rm(I,fy)}var dy="file://";function vh(I){return rm(I,dy)}var jo="tfjs-backend-wasm-threaded-simd.wasm";kh(jo)||(jo=_(jo));function Ch(){try{if(Y)return new Uint8Array(Y);if($)return $(jo);throw"both async and sync fetching of the wasm failed"}catch(I){ea(I)}}function hy(){return!Y&&(f||d)&&typeof fetch=="function"&&!vh(jo)?fetch(jo,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+jo+"'";return I.arrayBuffer()}).catch(function(){return Ch()}):new Promise(function(I,D){I(Ch())})}function gy(){var I={a:ab};function D(fe,Se){var mt=fe.exports;if(i.asm=mt,ie=Se,!x){var pr=we.unusedWorkers.length;we.unusedWorkers.forEach(function(Ar){we.loadWasmModuleToWorker(Ar,function(){--pr||my("wasm-instantiate")})})}}x||py("wasm-instantiate");function P(fe){D(fe.instance,fe.module)}function j(fe){return hy().then(function(Se){return WebAssembly.instantiate(Se,I)}).then(fe,function(Se){W("failed to asynchronously prepare wasm: "+Se),ea(Se)})}function me(){if(!Y&&typeof WebAssembly.instantiateStreaming=="function"&&!kh(jo)&&!vh(jo)&&typeof fetch=="function")fetch(jo,{credentials:"same-origin"}).then(function(fe){var Se=WebAssembly.instantiateStreaming(fe,I);return Se.then(P,function(mt){W("wasm streaming compile failed: "+mt),W("falling back to ArrayBuffer instantiation"),j(P)})});else return j(P)}if(i.instantiateWasm)try{var he=i.instantiateWasm(I,D);return he}catch(fe){return W("Module.instantiateWasm callback failed with error: "+fe),!1}return me(),{}}var xy={};function yy(){we.initRuntime()}x||$l.push({func:function(){Ph()}});var Ih=0,Nh=0,Sh=0;function bc(I,D,P){I=I|0,D=D|0,P=P|0,Ih=I,Sh=D,Nh=P}i.__register_pthread_ptr=bc;var om={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},_c=13568;function wc(I,D){if(I<=0||I>t().length||I&!0||D<0)return-28;if(D==0)return 0;D>=2147483647&&(D=Infinity);var P=Atomics.load(n(),_c>>2),j=0;if(P==I){var me=Atomics.compareExchange(n(),_c>>2,P,0);if(me==P&&(--D,j=1,D<=0))return 1}var he=Atomics.notify(n(),I>>2,D);if(he>=0)return he+j;throw"Atomics.notify returned an unexpected value "+he}i._emscripten_futex_wake=wc;function by(I){if(x)throw"Internal Error! _kill_thread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in _kill_thread!";n()[I+12>>2]=0;var D=we.pthreads[I];D.worker.terminate(),we.freeThreadData(D),we.runningWorkers.splice(we.runningWorkers.indexOf(D.worker),1),D.worker.pthread=void 0}function _y(I){if(x)throw"Internal Error! _cancel_thread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in _cancel_thread!";var D=we.pthreads[I];D.worker.postMessage({cmd:"cancel"})}function wy(I){if(x)throw"Internal Error! _cleanup_thread() can only ever be called from main application thread!";if(!I)throw"Internal Error! Null pthread_ptr in _cleanup_thread!";n()[I+12>>2]=0;var D=we.pthreads[I];if(D){var P=D.worker;we.returnWorkerToPool(P)}}var we={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){bc(we.mainThreadBlock,!d,1),dI(we.mainThreadBlock)},initMainThreadBlock:function(){for(var I=8,D=0;D>2]=we.mainThreadBlock;var P=we.mainThreadBlock+156;n()[P>>2]=P;for(var j=13056,D=0;D<128;++D)s()[j/4+D]=0;Atomics.store(s(),we.mainThreadBlock+104>>2,j),Atomics.store(s(),we.mainThreadBlock+40>>2,we.mainThreadBlock),Atomics.store(s(),we.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(we.exitHandlers!==null){for(;we.exitHandlers.length>0;)we.exitHandlers.pop()();we.exitHandlers=null}x&&se&&fI()},threadExit:function(I){var D=Us();D&&(Atomics.store(s(),D+4>>2,I),Atomics.store(s(),D+0>>2,1),Atomics.store(s(),D+60>>2,1),Atomics.store(s(),D+64>>2,0),we.runExitHandlers(),wc(D+0,2147483647),bc(0,0,0),se=0,x&&postMessage({cmd:"exit"}))},threadCancel:function(){we.runExitHandlers(),Atomics.store(s(),se+4>>2,-1),Atomics.store(s(),se+0>>2,1),wc(se+0,2147483647),se=pe=0,bc(0,0,0),postMessage({cmd:"cancelDone"})},terminateAllThreads:function(){for(var I in we.pthreads){var D=we.pthreads[I];D&&D.worker&&we.returnWorkerToPool(D.worker)}we.pthreads={};for(var P=0;P>2];n()[I.threadInfoStruct+104>>2]=0,cm(D),cm(I.threadInfoStruct)}I.threadInfoStruct=0,I.allocatedOwnStack&&I.stackBase&&cm(I.stackBase),I.stackBase=0,I.worker&&(I.worker.pthread=null)}},returnWorkerToPool:function(I){delete we.pthreads[I.pthread.thread],we.unusedWorkers.push(I),we.runningWorkers.splice(we.runningWorkers.indexOf(I),1),we.freeThreadData(I.pthread),I.pthread=void 0},receiveObjectTransfer:function(I){},loadWasmModuleToWorker:function(I,D){I.onmessage=function(P){var j=P.data,me=j.cmd;if(I.pthread&&(we.currentProxiedOperationCallerThread=I.pthread.threadInfoStruct),j.targetThread&&j.targetThread!=Us()){var he=we.pthreads[j.targetThread];he?he.worker.postMessage(P.data,j.transferList):console.error('Internal error! Worker sent a message "'+me+'" to target pthread '+j.targetThread+", but that thread no longer exists!"),we.currentProxiedOperationCallerThread=void 0;return}if(me==="processQueuedMainThreadWork")cb();else if(me==="spawnThread")Rh(P.data);else if(me==="cleanupThread")wy(j.thread);else if(me==="killThread")by(j.thread);else if(me==="cancelThread")_y(j.thread);else if(me==="loaded")I.loaded=!0,D&&D(I),I.runPthread&&(I.runPthread(),delete I.runPthread);else if(me==="print")G("Thread "+j.threadId+": "+j.text);else if(me==="printErr")W("Thread "+j.threadId+": "+j.text);else if(me==="alert")alert("Thread "+j.threadId+": "+j.text);else if(me==="exit"){var fe=I.pthread&&Atomics.load(s(),I.pthread.thread+68>>2);fe&&we.returnWorkerToPool(I)}else me==="cancelDone"?we.returnWorkerToPool(I):me==="objectTransfer"?we.receiveObjectTransfer(P.data):P.data.target==="setimmediate"?I.postMessage(P.data):W("worker sent an unknown command "+me);we.currentProxiedOperationCallerThread=void 0},I.onerror=function(P){W("pthread sent an error! "+P.filename+":"+P.lineno+": "+P.message)},h&&(I.on("message",function(P){I.onmessage({data:P})}),I.on("error",function(P){I.onerror(P)}),I.on("exit",function(P){console.log("worker exited - TODO: update the worker queue?")})),I.postMessage({cmd:"load",urlOrBlob:i.mainScriptUrlOrBlob||r,wasmMemory:K,wasmModule:ie,DYNAMIC_BASE:ss,DYNAMICTOP_PTR:So})},allocateUnusedWorker:function(){var I=_("tfjs-backend-wasm-threaded-simd.worker.js");we.unusedWorkers.push(new Worker(I))},getNewWorker:function(){return we.unusedWorkers.length==0&&(we.allocateUnusedWorker(),we.loadWasmModuleToWorker(we.unusedWorkers[0])),we.unusedWorkers.length>0?we.unusedWorkers.pop():null},busySpinWait:function(I){for(var D=performance.now()+I;performance.now()>2]=I,I}function Sy(I,D){if(x)return Ha(1,1,I,D);Qp.unshift({func:I,arg:D})}function Ty(I,D){if(I==D)postMessage({cmd:"processQueuedMainThreadWork"});else if(x)postMessage({targetThread:I,cmd:"processThreadQueue"});else{var P=we.pthreads[I],j=P&&P.worker;if(!j)return;j.postMessage({cmd:"processThreadQueue"})}return 1}function Ey(){ea()}function Ay(I,D){I=I|0,D=D|0}function Dy(I,D,P){if(I<=0||I>t().length||I&!0)return-28;if(d){var j=Atomics.wait(n(),I>>2,D,P);if(j==="timed-out")return-73;if(j==="not-equal")return-6;if(j==="ok")return 0;throw"Atomics.wait returned an unexpected value "+j}else{var me=Atomics.load(n(),I>>2);if(D!=me)return-6;var he=performance.now(),fe=he+P;Atomics.store(n(),_c>>2,I);for(var Se=I;I==Se;){if(he=performance.now(),he>fe)return-73;cb(),I=Atomics.load(n(),_c>>2)}return 0}}function $y(){return Sh|0}function Ry(){return Nh|0}function Fy(I,D,P){o().copyWithin(I,D,D+P)}function Oy(){return navigator.hardwareConcurrency}function Ha(I,D){for(var P=arguments.length-2,j=pm(),me=Cc(P*8),he=me>>3,fe=0;fe>3]),D+=8):(D=D+3&~3,P.push(n()[D>>2]),D+=4);return P}function Py(I,D,P){Pl.length=D;for(var j=P>>3,me=0;me>>16),wr(K.buffer),1}catch(D){}}function zy(I){I=I>>>0;var D=My();if(I<=D)return!1;var P=65536,j=2147483648;if(I>j)return!1;for(var me=16777216,he=1;he<=4;he*=2){var fe=D*(1+.2/he);fe=Math.min(fe,I+100663296);var Se=Math.min(j,vt(Math.max(me,I,fe),P)),mt=Ly(Se);if(mt)return!0}return!1}var Ze={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:!1,removeAllEventListeners:function(){for(var I=Ze.eventHandlers.length-1;I>=0;--I)Ze._removeHandler(I);Ze.eventHandlers=[],Ze.deferredCalls=[]},registerRemoveEventListeners:function(){Ze.removeEventListenersRegistered||(Qp.push(Ze.removeAllEventListeners),Ze.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(I,D,P){function j(fe,Se){if(fe.length!=Se.length)return!1;for(var mt in fe)if(fe[mt]!=Se[mt])return!1;return!0}for(var me in Ze.deferredCalls){var he=Ze.deferredCalls[me];if(he.targetFunction==I&&j(he.argsList,P))return}Ze.deferredCalls.push({targetFunction:I,precedence:D,argsList:P}),Ze.deferredCalls.sort(function(fe,Se){return fe.precedence>2]=P,n()[fe+4>>2]=j,n()[fe+8>>2]=me,pb(I,637534208,D,j,fe),Ic(he)},getTargetThreadForEventCallback:function(I){switch(I){case 1:return 0;case 2:return we.currentProxiedOperationCallerThread;default:return I}},getNodeNameForTarget:function(I){return I?I==window?"#window":I==screen?"#screen":I&&I.nodeName?I.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function By(I){var D=wt(I)+1,P=um(D);return ut(I,P,D),P}function Vy(I,D,P,j){var me=pm(),he=Cc(12),fe=0;D&&(fe=By(D)),n()[he>>2]=fe,n()[he+4>>2]=P,n()[he+8>>2]=j,pb(I,657457152,0,fe,he),Ic(me)}function Gy(I,D,P,j){D=D?Re(D):"",Vy(I,D,P,j)}function Wy(I){return I>2?Re(I):I}var Uy=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function jy(I){I=Wy(I);var D=Uy[I]||(typeof document!="undefined"?document.querySelector(I):void 0);return D}function nm(I){return jy(I)}function Th(I,D,P){var j=nm(I);if(!j)return-4;if(j.canvasSharedPtr&&(n()[j.canvasSharedPtr>>2]=D,n()[j.canvasSharedPtr+4>>2]=P),j.offscreenCanvas||!j.controlTransferredOffscreen){j.offscreenCanvas&&(j=j.offscreenCanvas);var me=!1;if(j.GLctxObject&&j.GLctxObject.GLctx){var he=j.GLctxObject.GLctx.getParameter(2978);me=he[0]===0&&he[1]===0&&he[2]===j.width&&he[3]===j.height}j.width=D,j.height=P,me&&j.GLctxObject.GLctx.viewport(0,0,D,P)}else if(j.canvasSharedPtr){var fe=n()[j.canvasSharedPtr+8>>2];return Gy(fe,I,D,P),1}else return-4;return 0}function Eh(I,D,P){return x?Ha(2,1,I,D,P):Th(I,D,P)}function Hy(I,D,P){var j=nm(I);return j?Th(I,D,P):Eh(I,D,P)}function qy(I){I=I|0}function Ky(I,D){I=I|0,D=D|0}function Xy(I){var D=I.getExtension("ANGLE_instanced_arrays");if(D)return I.vertexAttribDivisor=function(P,j){D.vertexAttribDivisorANGLE(P,j)},I.drawArraysInstanced=function(P,j,me,he){D.drawArraysInstancedANGLE(P,j,me,he)},I.drawElementsInstanced=function(P,j,me,he,fe){D.drawElementsInstancedANGLE(P,j,me,he,fe)},1}function Yy(I){var D=I.getExtension("OES_vertex_array_object");if(D)return I.createVertexArray=function(){return D.createVertexArrayOES()},I.deleteVertexArray=function(P){D.deleteVertexArrayOES(P)},I.bindVertexArray=function(P){D.bindVertexArrayOES(P)},I.isVertexArray=function(P){return D.isVertexArrayOES(P)},1}function Zy(I){var D=I.getExtension("WEBGL_draw_buffers");if(D)return I.drawBuffers=function(P,j){D.drawBuffersWEBGL(P,j)},1}var rt={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){for(var I=new Float32Array(rt.MINI_TEMP_BUFFER_SIZE),D=0;D>2]:-1;me+=Re(n()[P+he*4>>2],fe<0?void 0:fe)}return me},createContext:function(I,D){var P=I.getContext("webgl",D);if(!P)return 0;var j=rt.registerContext(P,D);return j},registerContext:function(I,D){var P=um(8);n()[P+4>>2]=Us();var j={handle:P,attributes:D,version:D.majorVersion,GLctx:I};return I.canvas&&(I.canvas.GLctxObject=j),rt.contexts[P]=j,(typeof D.enableExtensionsByDefault=="undefined"||D.enableExtensionsByDefault)&&rt.initExtensions(j),P},makeContextCurrent:function(I){return rt.currentContext=rt.contexts[I],i.ctx=qa=rt.currentContext&&rt.currentContext.GLctx,!(I&&!qa)},getContext:function(I){return rt.contexts[I]},deleteContext:function(I){rt.currentContext===rt.contexts[I]&&(rt.currentContext=null),typeof Ze=="object"&&Ze.removeAllHandlersOnTarget(rt.contexts[I].GLctx.canvas),rt.contexts[I]&&rt.contexts[I].GLctx.canvas&&(rt.contexts[I].GLctx.canvas.GLctxObject=void 0),cm(rt.contexts[I].handle),rt.contexts[I]=null},initExtensions:function(I){if(I||(I=rt.currentContext),!I.initExtensionsDone){I.initExtensionsDone=!0;var D=I.GLctx;Xy(D),Yy(D),Zy(D),D.disjointTimerQueryExt=D.getExtension("EXT_disjoint_timer_query");var P=["OES_texture_float","OES_texture_half_float","OES_standard_derivatives","OES_vertex_array_object","WEBGL_compressed_texture_s3tc","WEBGL_depth_texture","OES_element_index_uint","EXT_texture_filter_anisotropic","EXT_frag_depth","WEBGL_draw_buffers","ANGLE_instanced_arrays","OES_texture_float_linear","OES_texture_half_float_linear","EXT_blend_minmax","EXT_shader_texture_lod","EXT_texture_norm16","WEBGL_compressed_texture_pvrtc","EXT_color_buffer_half_float","WEBGL_color_buffer_float","EXT_sRGB","WEBGL_compressed_texture_etc1","EXT_disjoint_timer_query","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_astc","EXT_color_buffer_float","WEBGL_compressed_texture_s3tc_srgb","EXT_disjoint_timer_query_webgl2","WEBKIT_WEBGL_compressed_texture_pvrtc"],j=D.getSupportedExtensions()||[];j.forEach(function(me){P.indexOf(me)!=-1&&D.getExtension(me)})}},populateUniformTable:function(I){for(var D=rt.programs[I],P=rt.programInfos[I]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1},j=P.uniforms,me=qa.getProgramParameter(D,35718),he=0;he>2;P.alpha=!!n()[j+(0>>2)],P.depth=!!n()[j+(4>>2)],P.stencil=!!n()[j+(8>>2)],P.antialias=!!n()[j+(12>>2)],P.premultipliedAlpha=!!n()[j+(16>>2)],P.preserveDrawingBuffer=!!n()[j+(20>>2)];var me=n()[j+(24>>2)];P.powerPreference=Jy[me],P.failIfMajorPerformanceCaveat=!!n()[j+(28>>2)],P.majorVersion=n()[j+(32>>2)],P.minorVersion=n()[j+(36>>2)],P.enableExtensionsByDefault=n()[j+(40>>2)],P.explicitSwapControl=n()[j+(44>>2)],P.proxyContextToMainThread=n()[j+(48>>2)],P.renderViaOffscreenBackBuffer=n()[j+(52>>2)];var he=nm(I);if(!he)return-4;if(P.explicitSwapControl)return-1;var fe=rt.createContext(he,P);return fe}function eb(I,D){return Qy(I,D)}var Ml={splitPath:function(I){var D=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return D.exec(I).slice(1)},normalizeArray:function(I,D){for(var P=0,j=I.length-1;j>=0;j--){var me=I[j];me==="."?I.splice(j,1):me===".."?(I.splice(j,1),P++):P&&(I.splice(j,1),P--)}if(D)for(;P;P--)I.unshift("..");return I},normalize:function(I){var D=I.charAt(0)==="/",P=I.substr(-1)==="/";return I=Ml.normalizeArray(I.split("/").filter(function(j){return!!j}),!D).join("/"),!I&&!D&&(I="."),I&&P&&(I+="/"),(D?"/":"")+I},dirname:function(I){var D=Ml.splitPath(I),P=D[0],j=D[1];return!P&&!j?".":(j&&(j=j.substr(0,j.length-1)),P+j)},basename:function(I){if(I==="/")return"/";var D=I.lastIndexOf("/");return D===-1?I:I.substr(D+1)},extname:function(I){return Ml.splitPath(I)[3]},join:function(){var I=Array.prototype.slice.call(arguments,0);return Ml.normalize(I.join("/"))},join2:function(I,D){return Ml.normalize(I+"/"+D)}},vc={mappings:{},buffers:[null,[],[]],printChar:function(I,D){var P=vc.buffers[I];D===0||D===10?((I===1?G:W)($e(P,0)),P.length=0):P.push(D)},varargs:void 0,get:function(){vc.varargs+=4;var I=n()[vc.varargs-4>>2];return I},getStr:function(I){var D=Re(I);return D},get64:function(I,D){return I}};function Ah(I){return x?Ha(3,1,I):0}function Dh(I,D,P,j,me){if(x)return Ha(4,1,I,D,P,j,me)}function $h(I,D,P,j){if(x)return Ha(5,1,I,D,P,j);for(var me=0,he=0;he>2],Se=n()[D+(he*8+4)>>2],mt=0;mt>2]=me,0}function tb(I){var D=we.exitHandlers.pop();I&&D()}function rb(I,D){we.exitHandlers===null&&(we.exitHandlers=[]),we.exitHandlers.push(function(){xI(I,D)})}function Rh(I){if(x)throw"Internal Error! _spawn_thread() can only ever be called from main application thread!";var D=we.getNewWorker();if(D.pthread!==void 0)throw"Internal error!";if(!I.pthread_ptr)throw"Internal error, no pthread ptr!";we.runningWorkers.push(D);for(var P=um(128*4),j=0;j<128;++j)n()[P+j*4>>2]=0;var me=I.stackBase+I.stackSize,he=we.pthreads[I.pthread_ptr]={worker:D,stackBase:I.stackBase,stackSize:I.stackSize,allocatedOwnStack:I.allocatedOwnStack,thread:I.pthread_ptr,threadInfoStruct:I.pthread_ptr},fe=he.threadInfoStruct>>2;Atomics.store(s(),fe+(0>>2),0),Atomics.store(s(),fe+(4>>2),0),Atomics.store(s(),fe+(8>>2),0),Atomics.store(s(),fe+(68>>2),I.detached),Atomics.store(s(),fe+(104>>2),P),Atomics.store(s(),fe+(48>>2),0),Atomics.store(s(),fe+(40>>2),he.threadInfoStruct),Atomics.store(s(),fe+(44>>2),42),Atomics.store(s(),fe+(108>>2),I.stackSize),Atomics.store(s(),fe+(84>>2),I.stackSize),Atomics.store(s(),fe+(80>>2),me),Atomics.store(s(),fe+(108+8>>2),me),Atomics.store(s(),fe+(108+12>>2),I.detached),Atomics.store(s(),fe+(108+20>>2),I.schedPolicy),Atomics.store(s(),fe+(108+24>>2),I.schedPrio);var Se=pI(),mt=Se+40;Atomics.store(s(),fe+(176>>2),mt),D.pthread=he;var pr={cmd:"run",start_routine:I.startRoutine,arg:I.arg,threadInfoStruct:I.pthread_ptr,selfThreadId:I.pthread_ptr,parentThreadId:I.parent_pthread_ptr,stackBase:I.stackBase,stackSize:I.stackSize};D.runPthread=function(){pr.time=performance.now(),D.postMessage(pr,I.transferList)},D.loaded&&(D.runPthread(),delete D.runPthread)}function ob(I,D,P){if(!D&&!P)return om.EINVAL;if(!I)return W("pthread_getschedparam called with a null thread pointer!"),om.ESRCH;var j=n()[I+12>>2];if(j!==I)return W("pthread_getschedparam attempted on thread "+I+", which does not point to a valid thread, or does not exist anymore!"),om.ESRCH;var me=Atomics.load(s(),I+108+20>>2),he=Atomics.load(s(),I+108+24>>2);return D&&(n()[D>>2]=me),P&&(n()[P>>2]=he),0}function Us(){return Ih|0}i._pthread_self=Us;function nb(I,D,P,j){if(typeof SharedArrayBuffer=="undefined")return W("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!I)return W("pthread_create called with a null thread pointer!"),28;var me=[],he=0;if(x&&(me.length===0||he))return hI(687865856,I,D,P,j);if(he)return he;var fe=0,Se=0,mt=0,pr=0,Ar=0;if(D){fe=n()[D>>2],fe+=81920,Se=n()[D+8>>2],mt=n()[D+12>>2]!==0;var Nc=n()[D+16>>2]===0;if(Nc){var fm=n()[D+20>>2],go=n()[D+24>>2],Xa=we.currentProxiedOperationCallerThread?we.currentProxiedOperationCallerThread:Us();ob(Xa,D+20,D+24),pr=n()[D+20>>2],Ar=n()[D+24>>2],n()[D+20>>2]=fm,n()[D+24>>2]=go}else pr=n()[D+20>>2],Ar=n()[D+24>>2]}else fe=2097152;var dm=Se==0;dm?Se=mI(16,fe):(Se-=fe,ge(Se>0));for(var Sc=um(232),fb=0;fb<232>>2;++fb)s()[(Sc>>2)+fb]=0;n()[I>>2]=Sc,n()[Sc+12>>2]=Sc;var bI=Sc+156;n()[bI>>2]=bI;var db={stackBase:Se,stackSize:fe,allocatedOwnStack:dm,schedPolicy:pr,schedPrio:Ar,detached:mt,startRoutine:P,pthread_ptr:Sc,parent_pthread_ptr:Us(),arg:j,transferList:me};return x?(db.cmd="spawnThread",postMessage(db,me)):Rh(db),0}function sb(I){return I=+I,I>=0?+cy(I+.5):+yc(I-.5)}function Fh(I){if(x)return Ha(6,1,I);switch(I){case 30:return 16384;case 85:var D=2147483648;return D/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return typeof navigator=="object"&&navigator.hardwareConcurrency||1}return Ny(28),-1}x?we.initWorker():we.initMainThreadBlock();var qa;rt.init();var ib=[null,Sy,Eh,Ah,Dh,$h,Fh],ab={e:Cy,r:Iy,w:Ty,a:Ey,l:Ay,d:Dy,c:wc,h:Ol,g:$y,x:Ry,q:Fy,B:Oy,t:Py,A:zy,u:Hy,k:qy,s:Ky,v:eb,m:Ah,o:Dh,i:$h,p:yy,memory:K||i.wasmMemory,y:tb,z:rb,j:nb,b:Us,f:sb,n:Fh,table:re},Oh=gy();i.asm=Oh;var Ph=i.___wasm_call_ctors=function(){return(Ph=i.___wasm_call_ctors=i.asm.C).apply(null,arguments)},Mh=i._init=function(){return(Mh=i._init=i.asm.D).apply(null,arguments)},sm=i._register_tensor=function(){return(sm=i._register_tensor=i.asm.E).apply(null,arguments)},Lh=i._dispose_data=function(){return(Lh=i._dispose_data=i.asm.F).apply(null,arguments)},Ll=i._dispose=function(){return(Ll=i._dispose=i.asm.G).apply(null,arguments)},im=i._Abs=function(){return(im=i._Abs=i.asm.H).apply(null,arguments)},lb=i._Add=function(){return(lb=i._Add=i.asm.I).apply(null,arguments)},ub=i._AddN=function(){return(ub=i._AddN=i.asm.J).apply(null,arguments)},am=i._ArgMax=function(){return(am=i._ArgMax=i.asm.K).apply(null,arguments)},zh=i._AvgPool=function(){return(zh=i._AvgPool=i.asm.L).apply(null,arguments)},Bh=i._BatchMatMul=function(){return(Bh=i._BatchMatMul=i.asm.M).apply(null,arguments)},H=i._Ceil=function(){return(H=i._Ceil=i.asm.N).apply(null,arguments)},ne=i._ClipByValue=function(){return(ne=i._ClipByValue=i.asm.O).apply(null,arguments)},be=i._Conv2D=function(){return(be=i._Conv2D=i.asm.P).apply(null,arguments)},Ke=i._Conv2DBackpropInput=function(){return(Ke=i._Conv2DBackpropInput=i.asm.Q).apply(null,arguments)},Xe=i._Cos=function(){return(Xe=i._Cos=i.asm.R).apply(null,arguments)},Ht=i._CropAndResize=function(){return(Ht=i._CropAndResize=i.asm.S).apply(null,arguments)},at=i._Cumsum=function(){return(at=i._Cumsum=i.asm.T).apply(null,arguments)},nt=i._DepthToSpace=function(){return(nt=i._DepthToSpace=i.asm.U).apply(null,arguments)},xr=i._DepthwiseConv2dNative=function(){return(xr=i._DepthwiseConv2dNative=i.asm.V).apply(null,arguments)},ta=i._Equal=function(){return(ta=i._Equal=i.asm.W).apply(null,arguments)},ra=i._Exp=function(){return(ra=i._Exp=i.asm.X).apply(null,arguments)},Vh=i._FlipLeftRight=function(){return(Vh=i._FlipLeftRight=i.asm.Y).apply(null,arguments)},lm=i._Floor=function(){return(lm=i._Floor=i.asm.Z).apply(null,arguments)},ho=i._FloorDiv=function(){return(ho=i._FloorDiv=i.asm._).apply(null,arguments)},Ka=i._FusedBatchNorm=function(){return(Ka=i._FusedBatchNorm=i.asm.$).apply(null,arguments)},Gh=i._FusedConv2D=function(){return(Gh=i._FusedConv2D=i.asm.aa).apply(null,arguments)},Tz=i._FusedDepthwiseConv2D=function(){return(Tz=i._FusedDepthwiseConv2D=i.asm.ba).apply(null,arguments)},Ez=i._Gather=function(){return(Ez=i._Gather=i.asm.ca).apply(null,arguments)},Az=i._GatherNd=function(){return(Az=i._GatherNd=i.asm.da).apply(null,arguments)},Dz=i._Greater=function(){return(Dz=i._Greater=i.asm.ea).apply(null,arguments)},$z=i._GreaterEqual=function(){return($z=i._GreaterEqual=i.asm.fa).apply(null,arguments)},Rz=i._LeakyRelu=function(){return(Rz=i._LeakyRelu=i.asm.ga).apply(null,arguments)},Fz=i._Less=function(){return(Fz=i._Less=i.asm.ha).apply(null,arguments)},Oz=i._LessEqual=function(){return(Oz=i._LessEqual=i.asm.ia).apply(null,arguments)},Pz=i._Log=function(){return(Pz=i._Log=i.asm.ja).apply(null,arguments)},Mz=i._LogicalAnd=function(){return(Mz=i._LogicalAnd=i.asm.ka).apply(null,arguments)},Lz=i._Max=function(){return(Lz=i._Max=i.asm.la).apply(null,arguments)},zz=i._MaxPool=function(){return(zz=i._MaxPool=i.asm.ma).apply(null,arguments)},Bz=i._Maximum=function(){return(Bz=i._Maximum=i.asm.na).apply(null,arguments)},Vz=i._Mean=function(){return(Vz=i._Mean=i.asm.oa).apply(null,arguments)},Gz=i._Min=function(){return(Gz=i._Min=i.asm.pa).apply(null,arguments)},Wz=i._Minimum=function(){return(Wz=i._Minimum=i.asm.qa).apply(null,arguments)},Uz=i._Multiply=function(){return(Uz=i._Multiply=i.asm.ra).apply(null,arguments)},jz=i._Neg=function(){return(jz=i._Neg=i.asm.sa).apply(null,arguments)},Hz=i._NonMaxSuppressionV3=function(){return(Hz=i._NonMaxSuppressionV3=i.asm.ta).apply(null,arguments)},qz=i._NonMaxSuppressionV4=function(){return(qz=i._NonMaxSuppressionV4=i.asm.ua).apply(null,arguments)},Kz=i._NonMaxSuppressionV5=function(){return(Kz=i._NonMaxSuppressionV5=i.asm.va).apply(null,arguments)},Xz=i._NotEqual=function(){return(Xz=i._NotEqual=i.asm.wa).apply(null,arguments)},Yz=i._OneHot=function(){return(Yz=i._OneHot=i.asm.xa).apply(null,arguments)},Zz=i._PadV2=function(){return(Zz=i._PadV2=i.asm.ya).apply(null,arguments)},Jz=i._Pow=function(){return(Jz=i._Pow=i.asm.za).apply(null,arguments)},Qz=i._Prelu=function(){return(Qz=i._Prelu=i.asm.Aa).apply(null,arguments)},eB=i._Prod=function(){return(eB=i._Prod=i.asm.Ba).apply(null,arguments)},tB=i._RealDiv=function(){return(tB=i._RealDiv=i.asm.Ca).apply(null,arguments)},rB=i._Relu=function(){return(rB=i._Relu=i.asm.Da).apply(null,arguments)},oB=i._Relu6=function(){return(oB=i._Relu6=i.asm.Ea).apply(null,arguments)},nB=i._ResizeBilinear=function(){return(nB=i._ResizeBilinear=i.asm.Fa).apply(null,arguments)},sB=i._Reverse=function(){return(sB=i._Reverse=i.asm.Ga).apply(null,arguments)},iB=i._RotateWithOffset=function(){return(iB=i._RotateWithOffset=i.asm.Ha).apply(null,arguments)},aB=i._Round=function(){return(aB=i._Round=i.asm.Ia).apply(null,arguments)},lB=i._Rsqrt=function(){return(lB=i._Rsqrt=i.asm.Ja).apply(null,arguments)},uB=i._ScatterNd=function(){return(uB=i._ScatterNd=i.asm.Ka).apply(null,arguments)},cB=i._SelectV2=function(){return(cB=i._SelectV2=i.asm.La).apply(null,arguments)},pB=i._Sigmoid=function(){return(pB=i._Sigmoid=i.asm.Ma).apply(null,arguments)},mB=i._Sin=function(){return(mB=i._Sin=i.asm.Na).apply(null,arguments)},fB=i._Softmax=function(){return(fB=i._Softmax=i.asm.Oa).apply(null,arguments)},dB=i._Sqrt=function(){return(dB=i._Sqrt=i.asm.Pa).apply(null,arguments)},hB=i._Square=function(){return(hB=i._Square=i.asm.Qa).apply(null,arguments)},gB=i._SquaredDifference=function(){return(gB=i._SquaredDifference=i.asm.Ra).apply(null,arguments)},xB=i._Step=function(){return(xB=i._Step=i.asm.Sa).apply(null,arguments)},yB=i._StridedSlice=function(){return(yB=i._StridedSlice=i.asm.Ta).apply(null,arguments)},bB=i._Sub=function(){return(bB=i._Sub=i.asm.Ua).apply(null,arguments)},_B=i._Sum=function(){return(_B=i._Sum=i.asm.Va).apply(null,arguments)},wB=i._Tanh=function(){return(wB=i._Tanh=i.asm.Wa).apply(null,arguments)},kB=i._Tile=function(){return(kB=i._Tile=i.asm.Xa).apply(null,arguments)},vB=i._TopK=function(){return(vB=i._TopK=i.asm.Ya).apply(null,arguments)},CB=i._Transpose=function(){return(CB=i._Transpose=i.asm.Za).apply(null,arguments)},IB=i.__FusedMatMul=function(){return(IB=i.__FusedMatMul=i.asm._a).apply(null,arguments)},um=i._malloc=function(){return(um=i._malloc=i.asm.$a).apply(null,arguments)},cm=i._free=function(){return(cm=i._free=i.asm.ab).apply(null,arguments)},cI=i.___errno_location=function(){return(cI=i.___errno_location=i.asm.bb).apply(null,arguments)},pI=i._emscripten_get_global_libc=function(){return(pI=i._emscripten_get_global_libc=i.asm.cb).apply(null,arguments)},NB=i.___em_js__initPthreadsJS=function(){return(NB=i.___em_js__initPthreadsJS=i.asm.db).apply(null,arguments)},mI=i._memalign=function(){return(mI=i._memalign=i.asm.eb).apply(null,arguments)},fI=i.___pthread_tsd_run_dtors=function(){return(fI=i.___pthread_tsd_run_dtors=i.asm.fb).apply(null,arguments)},cb=i._emscripten_main_thread_process_queued_calls=function(){return(cb=i._emscripten_main_thread_process_queued_calls=i.asm.gb).apply(null,arguments)},SB=i._emscripten_current_thread_process_queued_calls=function(){return(SB=i._emscripten_current_thread_process_queued_calls=i.asm.hb).apply(null,arguments)},dI=i._emscripten_register_main_browser_thread_id=function(){return(dI=i._emscripten_register_main_browser_thread_id=i.asm.ib).apply(null,arguments)},TB=i._emscripten_main_browser_thread_id=function(){return(TB=i._emscripten_main_browser_thread_id=i.asm.jb).apply(null,arguments)},EB=i._emscripten_async_run_in_main_thread=function(){return(EB=i._emscripten_async_run_in_main_thread=i.asm.kb).apply(null,arguments)},AB=i._emscripten_sync_run_in_main_thread=function(){return(AB=i._emscripten_sync_run_in_main_thread=i.asm.lb).apply(null,arguments)},DB=i._emscripten_sync_run_in_main_thread_0=function(){return(DB=i._emscripten_sync_run_in_main_thread_0=i.asm.mb).apply(null,arguments)},$B=i._emscripten_sync_run_in_main_thread_1=function(){return($B=i._emscripten_sync_run_in_main_thread_1=i.asm.nb).apply(null,arguments)},RB=i._emscripten_sync_run_in_main_thread_2=function(){return(RB=i._emscripten_sync_run_in_main_thread_2=i.asm.ob).apply(null,arguments)},FB=i._emscripten_sync_run_in_main_thread_xprintf_varargs=function(){return(FB=i._emscripten_sync_run_in_main_thread_xprintf_varargs=i.asm.pb).apply(null,arguments)},OB=i._emscripten_sync_run_in_main_thread_3=function(){return(OB=i._emscripten_sync_run_in_main_thread_3=i.asm.qb).apply(null,arguments)},hI=i._emscripten_sync_run_in_main_thread_4=function(){return(hI=i._emscripten_sync_run_in_main_thread_4=i.asm.rb).apply(null,arguments)},PB=i._emscripten_sync_run_in_main_thread_5=function(){return(PB=i._emscripten_sync_run_in_main_thread_5=i.asm.sb).apply(null,arguments)},MB=i._emscripten_sync_run_in_main_thread_6=function(){return(MB=i._emscripten_sync_run_in_main_thread_6=i.asm.tb).apply(null,arguments)},LB=i._emscripten_sync_run_in_main_thread_7=function(){return(LB=i._emscripten_sync_run_in_main_thread_7=i.asm.ub).apply(null,arguments)},gI=i._emscripten_run_in_main_runtime_thread_js=function(){return(gI=i._emscripten_run_in_main_runtime_thread_js=i.asm.vb).apply(null,arguments)},pb=i._emscripten_async_queue_on_thread_=function(){return(pb=i._emscripten_async_queue_on_thread_=i.asm.wb).apply(null,arguments)},zB=i._emscripten_tls_init=function(){return(zB=i._emscripten_tls_init=i.asm.xb).apply(null,arguments)},pm=i.stackSave=function(){return(pm=i.stackSave=i.asm.yb).apply(null,arguments)},Cc=i.stackAlloc=function(){return(Cc=i.stackAlloc=i.asm.zb).apply(null,arguments)},Ic=i.stackRestore=function(){return(Ic=i.stackRestore=i.asm.Ab).apply(null,arguments)},xI=i.dynCall_vi=function(){return(xI=i.dynCall_vi=i.asm.Bb).apply(null,arguments)},BB=i.dynCall_v=function(){return(BB=i.dynCall_v=i.asm.Cb).apply(null,arguments)},VB=i.dynCall_ii=function(){return(VB=i.dynCall_ii=i.asm.Db).apply(null,arguments)};i.asm=Oh,i.cwrap=De,i.PThread=we,i.PThread=we,i._pthread_self=Us,i.wasmMemory=K,i.ExitStatus=yI;var mm;i.then=function(I){if(mm)I(i);else{var D=i.onRuntimeInitialized;i.onRuntimeInitialized=function(){D&&D(),I(i)}}return i};function yI(I){this.name="ExitStatus",this.message="Program terminated with exit("+I+")",this.status=I}Fl=function I(){mm||mb(),mm||(Fl=I)};function mb(I){if(I=I||c,Qi>0||(Uo(),Qi>0))return;function D(){mm||(mm=!0,i.calledRun=!0,!ae&&(wh(),ay(),i.onRuntimeInitialized&&i.onRuntimeInitialized(),ly()))}i.setStatus?(i.setStatus("Running..."),setTimeout(function(){setTimeout(function(){i.setStatus("")},1),D()},1)):D()}if(i.run=mb,i.preInit)for(typeof i.preInit=="function"&&(i.preInit=[i.preInit]);i.preInit.length>0;)i.preInit.pop()();return x||(te=!0),x||mb(),e}}();typeof ry=="object"&&typeof nI=="object"?nI.exports=sI:typeof define=="function"&&define.amd?define([],function(){return sI}):typeof ry=="object"&&(ry.WasmBackendModuleThreadedSimd=sI)});var Cz=Br((oy,iI)=>{var aI=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};var t=typeof e!="undefined"?e:{},o={},n;for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);var s=[],a="./this.program",i=function(H,ne){throw ne},l=!1,u=!1,c=!1,p=!1;l=typeof window=="object",u=typeof importScripts=="function",c=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",p=!l&&!c&&!u;var m="";function f(H){return t.locateFile?t.locateFile(H,m):m+H}var d,h,g,x,b,_;c?(u?m=Jp().dirname(m)+"/":m=__dirname+"/",d=function(ne,be){return b||(b=require("fs")),_||(_=Jp()),ne=_.normalize(ne),b.readFileSync(ne,be?null:"utf8")},g=function(ne){var be=d(ne,!0);return be.buffer||(be=new Uint8Array(be)),W(be.buffer),be},process.argv.length>1&&(a=process.argv[1].replace(/\\/g,"/")),s=process.argv.slice(2),process.on("uncaughtException",function(H){if(!(H instanceof im))throw H}),process.on("unhandledRejection",Ji),i=function(H){process.exit(H)},t.inspect=function(){return"[Emscripten Module object]"}):p?(typeof read!="undefined"&&(d=function(ne){return read(ne)}),g=function(ne){var be;return typeof readbuffer=="function"?new Uint8Array(readbuffer(ne)):(be=read(ne,"binary"),W(typeof be=="object"),be)},typeof scriptArgs!="undefined"?s=scriptArgs:typeof arguments!="undefined"&&(s=arguments),typeof quit=="function"&&(i=function(H){quit(H)}),typeof print!="undefined"&&(typeof console=="undefined"&&(console={}),console.log=print,console.warn=console.error=typeof printErr!="undefined"?printErr:print)):(l||u)&&(u?m=self.location.href:document.currentScript&&(m=document.currentScript.src),r&&(m=r),m.indexOf("blob:")!==0?m=m.substr(0,m.lastIndexOf("/")+1):m="",d=function(ne){var be=new XMLHttpRequest;return be.open("GET",ne,!1),be.send(null),be.responseText},u&&(g=function(ne){var be=new XMLHttpRequest;return be.open("GET",ne,!1),be.responseType="arraybuffer",be.send(null),new Uint8Array(be.response)}),h=function(ne,be,Ke){var Xe=new XMLHttpRequest;Xe.open("GET",ne,!0),Xe.responseType="arraybuffer",Xe.onload=function(){if(Xe.status==200||Xe.status==0&&Xe.response){be(Xe.response);return}Ke()},Xe.onerror=Ke,Xe.send(null)},x=function(H){document.title=H});var w=t.print||console.log.bind(console),v=t.printErr||console.warn.bind(console);for(n in o)o.hasOwnProperty(n)&&(t[n]=o[n]);o=null,t.arguments&&(s=t.arguments),t.thisProgram&&(a=t.thisProgram),t.quit&&(i=t.quit);var $;t.wasmBinary&&($=t.wasmBinary);var A;t.noExitRuntime&&(A=t.noExitRuntime),typeof WebAssembly!="object"&&v("no native wasm support detected");var R,M=new WebAssembly.Table({initial:153,maximum:153+0,element:"anyfunc"}),V=!1,G=0;function W(H,ne){H||Ji("Assertion failed: "+ne)}function q(H){var ne=t["_"+H];return W(ne,"Cannot call unknown function "+H+", make sure it is exported"),ne}function Z(H,ne,be,Ke,Xe){var Ht={string:function(ho){var Ka=0;if(ho!=null&&ho!==0){var Gh=(ho.length<<2)+1;Ka=sm(Gh),ie(ho,Ka,Gh)}return Ka},array:function(ho){var Ka=sm(ho.length);return se(ho,Ka),Ka}};function at(ho){return ne==="string"?K(ho):ne==="boolean"?Boolean(ho):ho}var nt=q(H),xr=[],ta=0;if(Ke)for(var ra=0;ra=Ke);)++Xe;if(Xe-ne>16&&H.subarray&&Y)return Y.decode(H.subarray(ne,Xe));for(var Ht="";ne>10,56320|ta&1023)}}return Ht}function K(H,ne){return H?te(xe,H,ne):""}function re(H,ne,be,Ke){if(!(Ke>0))return 0;for(var Xe=be,Ht=be+Ke-1,at=0;at=55296&&nt<=57343){var xr=H.charCodeAt(++at);nt=65536+((nt&1023)<<10)|xr&1023}if(nt<=127){if(be>=Ht)break;ne[be++]=nt}else if(nt<=2047){if(be+1>=Ht)break;ne[be++]=192|nt>>6,ne[be++]=128|nt&63}else if(nt<=65535){if(be+2>=Ht)break;ne[be++]=224|nt>>12,ne[be++]=128|nt>>6&63,ne[be++]=128|nt&63}else{if(be+3>=Ht)break;ne[be++]=240|nt>>18,ne[be++]=128|nt>>12&63,ne[be++]=128|nt>>6&63,ne[be++]=128|nt&63}}return ne[be]=0,be-Xe}function ie(H,ne,be){return re(H,xe,ne,be)}function se(H,ne){ae.set(H,ne)}var pe,ae,xe,ge,_e,ke,De,$e,Re;function He(H){pe=H,t.HEAP8=ae=new Int8Array(H),t.HEAP16=ge=new Int16Array(H),t.HEAP32=ke=new Int32Array(H),t.HEAPU8=xe=new Uint8Array(H),t.HEAPU16=_e=new Uint16Array(H),t.HEAPU32=De=new Uint32Array(H),t.HEAPF32=$e=new Float32Array(H),t.HEAPF64=Re=new Float64Array(H)}var ut=t.INITIAL_MEMORY||16777216;function wt(H){for(;H.length>0;){var ne=H.shift();if(typeof ne=="function"){ne(t);continue}var be=ne.func;typeof be=="number"?ne.arg===void 0?t.dynCall_v(be):t.dynCall_vi(be,ne.arg):be(ne.arg===void 0?null:ne.arg)}}var kt=[],pt=[],vt=[],qe=[],Ft=!1,po=!1;function Zt(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)fo(t.preRun.shift());wt(kt)}function mo(){Ft=!0,wt(pt)}function _r(){wt(vt)}function Go(){po=!0}function Jr(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)wr(t.postRun.shift());wt(qe)}function fo(H){kt.unshift(H)}function wr(H){qe.unshift(H)}var No=Math.ceil,Wo=Math.floor,Qr=0,ss=null,So=null;function xc(H){Qr++,t.monitorRunDependencies&&t.monitorRunDependencies(Qr)}function is(H){if(Qr--,t.monitorRunDependencies&&t.monitorRunDependencies(Qr),Qr==0&&(ss!==null&&(clearInterval(ss),ss=null),So)){var ne=So;So=null,ne()}}t.preloadedImages={},t.preloadedAudios={};function Ji(H){throw t.onAbort&&t.onAbort(H),H+="",w(H),v(H),V=!0,G=1,H="abort("+H+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(H)}function $l(H,ne){return String.prototype.startsWith?H.startsWith(ne):H.indexOf(ne)===0}var iy="data:application/octet-stream;base64,";function Qp(H){return $l(H,iy)}var _h="file://";function em(H){return $l(H,_h)}var Uo="tfjs-backend-wasm.wasm";Qp(Uo)||(Uo=f(Uo));function wh(){try{if($)return new Uint8Array($);if(g)return g(Uo);throw"both async and sync fetching of the wasm failed"}catch(H){Ji(H)}}function ay(){return!$&&(l||u)&&typeof fetch=="function"&&!em(Uo)?fetch(Uo,{credentials:"same-origin"}).then(function(H){if(!H.ok)throw"failed to load wasm binary file at '"+Uo+"'";return H.arrayBuffer()}).catch(function(){return wh()}):new Promise(function(H,ne){H(wh())})}function ly(){var H={env:ea,wasi_snapshot_preview1:ea};function ne(at,nt){var xr=at.exports;t.asm=xr,R=xr.memory,He(R.buffer),is("wasm-instantiate")}xc("wasm-instantiate");function be(at){ne(at.instance)}function Ke(at){return ay().then(function(nt){return WebAssembly.instantiate(nt,H)}).then(at,function(nt){v("failed to asynchronously prepare wasm: "+nt),Ji(nt)})}function Xe(){if(!$&&typeof WebAssembly.instantiateStreaming=="function"&&!Qp(Uo)&&!em(Uo)&&typeof fetch=="function")fetch(Uo,{credentials:"same-origin"}).then(function(at){var nt=WebAssembly.instantiateStreaming(at,H);return nt.then(be,function(xr){v("wasm streaming compile failed: "+xr),v("falling back to ArrayBuffer instantiation"),Ke(be)})});else return Ke(be)}if(t.instantiateWasm)try{var Ht=t.instantiateWasm(H,ne);return Ht}catch(at){return v("Module.instantiateWasm callback failed with error: "+at),!1}return Xe(),{}}pt.push();function uy(H){He(R.buffer)}var Rl={splitPath:function(H){var ne=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return ne.exec(H).slice(1)},normalizeArray:function(H,ne){for(var be=0,Ke=H.length-1;Ke>=0;Ke--){var Xe=H[Ke];Xe==="."?H.splice(Ke,1):Xe===".."?(H.splice(Ke,1),be++):be&&(H.splice(Ke,1),be--)}if(ne)for(;be;be--)H.unshift("..");return H},normalize:function(H){var ne=H.charAt(0)==="/",be=H.substr(-1)==="/";return H=Rl.normalizeArray(H.split("/").filter(function(Ke){return!!Ke}),!ne).join("/"),!H&&!ne&&(H="."),H&&be&&(H+="/"),(ne?"/":"")+H},dirname:function(H){var ne=Rl.splitPath(H),be=ne[0],Ke=ne[1];return!be&&!Ke?".":(Ke&&(Ke=Ke.substr(0,Ke.length-1)),be+Ke)},basename:function(H){if(H==="/")return"/";var ne=H.lastIndexOf("/");return ne===-1?H:H.substr(ne+1)},extname:function(H){return Rl.splitPath(H)[3]},join:function(){var H=Array.prototype.slice.call(arguments,0);return Rl.normalize(H.join("/"))},join2:function(H,ne){return Rl.normalize(H+"/"+ne)}},yc={mappings:{},buffers:[null,[],[]],printChar:function(H,ne){var be=yc.buffers[H];ne===0||ne===10?((H===1?w:v)(te(be,0)),be.length=0):be.push(ne)},varargs:void 0,get:function(){yc.varargs+=4;var H=ke[yc.varargs-4>>2];return H},getStr:function(H){var ne=K(H);return ne},get64:function(H,ne){return H}};function cy(H){return 0}function Qi(H,ne,be,Ke,Xe){}function tm(H,ne,be,Ke){for(var Xe=0,Ht=0;Ht>2],nt=ke[ne+(Ht*8+4)>>2],xr=0;xr>2]=Xe,0}function Fl(H){zh(H)}function py(H){Fl(H)}function my(H){return H=+H,H>=0?+Wo(H+.5):+No(H-.5)}var ea={emscripten_notify_memory_growth:uy,fd_close:cy,fd_seek:Qi,fd_write:tm,proc_exit:py,roundf:my},rm=ly();t.asm=rm;var fy=t._init=function(){return(fy=t._init=t.asm.init).apply(null,arguments)},kh=t._register_tensor=function(){return(kh=t._register_tensor=t.asm.register_tensor).apply(null,arguments)},dy=t._dispose_data=function(){return(dy=t._dispose_data=t.asm.dispose_data).apply(null,arguments)},vh=t._dispose=function(){return(vh=t._dispose=t.asm.dispose).apply(null,arguments)},jo=t._Abs=function(){return(jo=t._Abs=t.asm.Abs).apply(null,arguments)},Ch=t._Add=function(){return(Ch=t._Add=t.asm.Add).apply(null,arguments)},hy=t._AddN=function(){return(hy=t._AddN=t.asm.AddN).apply(null,arguments)},gy=t._ArgMax=function(){return(gy=t._ArgMax=t.asm.ArgMax).apply(null,arguments)},xy=t._AvgPool=function(){return(xy=t._AvgPool=t.asm.AvgPool).apply(null,arguments)},yy=t._BatchMatMul=function(){return(yy=t._BatchMatMul=t.asm.BatchMatMul).apply(null,arguments)},Ih=t._Ceil=function(){return(Ih=t._Ceil=t.asm.Ceil).apply(null,arguments)},Nh=t._ClipByValue=function(){return(Nh=t._ClipByValue=t.asm.ClipByValue).apply(null,arguments)},Sh=t._Conv2D=function(){return(Sh=t._Conv2D=t.asm.Conv2D).apply(null,arguments)},bc=t._Conv2DBackpropInput=function(){return(bc=t._Conv2DBackpropInput=t.asm.Conv2DBackpropInput).apply(null,arguments)},om=t._Cos=function(){return(om=t._Cos=t.asm.Cos).apply(null,arguments)},_c=t._CropAndResize=function(){return(_c=t._CropAndResize=t.asm.CropAndResize).apply(null,arguments)},wc=t._Cumsum=function(){return(wc=t._Cumsum=t.asm.Cumsum).apply(null,arguments)},by=t._DepthToSpace=function(){return(by=t._DepthToSpace=t.asm.DepthToSpace).apply(null,arguments)},_y=t._DepthwiseConv2dNative=function(){return(_y=t._DepthwiseConv2dNative=t.asm.DepthwiseConv2dNative).apply(null,arguments)},wy=t._Equal=function(){return(wy=t._Equal=t.asm.Equal).apply(null,arguments)},we=t._Exp=function(){return(we=t._Exp=t.asm.Exp).apply(null,arguments)},ky=t._FlipLeftRight=function(){return(ky=t._FlipLeftRight=t.asm.FlipLeftRight).apply(null,arguments)},vy=t._Floor=function(){return(vy=t._Floor=t.asm.Floor).apply(null,arguments)},Cy=t._FloorDiv=function(){return(Cy=t._FloorDiv=t.asm.FloorDiv).apply(null,arguments)},Iy=t._FusedBatchNorm=function(){return(Iy=t._FusedBatchNorm=t.asm.FusedBatchNorm).apply(null,arguments)},Ol=t._FusedConv2D=function(){return(Ol=t._FusedConv2D=t.asm.FusedConv2D).apply(null,arguments)},Ny=t._FusedDepthwiseConv2D=function(){return(Ny=t._FusedDepthwiseConv2D=t.asm.FusedDepthwiseConv2D).apply(null,arguments)},Sy=t._Gather=function(){return(Sy=t._Gather=t.asm.Gather).apply(null,arguments)},Ty=t._GatherNd=function(){return(Ty=t._GatherNd=t.asm.GatherNd).apply(null,arguments)},Ey=t._Greater=function(){return(Ey=t._Greater=t.asm.Greater).apply(null,arguments)},Ay=t._GreaterEqual=function(){return(Ay=t._GreaterEqual=t.asm.GreaterEqual).apply(null,arguments)},Dy=t._LeakyRelu=function(){return(Dy=t._LeakyRelu=t.asm.LeakyRelu).apply(null,arguments)},$y=t._Less=function(){return($y=t._Less=t.asm.Less).apply(null,arguments)},Ry=t._LessEqual=function(){return(Ry=t._LessEqual=t.asm.LessEqual).apply(null,arguments)},Fy=t._Log=function(){return(Fy=t._Log=t.asm.Log).apply(null,arguments)},Oy=t._LogicalAnd=function(){return(Oy=t._LogicalAnd=t.asm.LogicalAnd).apply(null,arguments)},Ha=t._Max=function(){return(Ha=t._Max=t.asm.Max).apply(null,arguments)},Pl=t._MaxPool=function(){return(Pl=t._MaxPool=t.asm.MaxPool).apply(null,arguments)},kc=t._Maximum=function(){return(kc=t._Maximum=t.asm.Maximum).apply(null,arguments)},Py=t._Mean=function(){return(Py=t._Mean=t.asm.Mean).apply(null,arguments)},My=t._Min=function(){return(My=t._Min=t.asm.Min).apply(null,arguments)},Ly=t._Minimum=function(){return(Ly=t._Minimum=t.asm.Minimum).apply(null,arguments)},zy=t._Multiply=function(){return(zy=t._Multiply=t.asm.Multiply).apply(null,arguments)},Ze=t._Neg=function(){return(Ze=t._Neg=t.asm.Neg).apply(null,arguments)},By=t._NonMaxSuppressionV3=function(){return(By=t._NonMaxSuppressionV3=t.asm.NonMaxSuppressionV3).apply(null,arguments)},Vy=t._NonMaxSuppressionV4=function(){return(Vy=t._NonMaxSuppressionV4=t.asm.NonMaxSuppressionV4).apply(null,arguments)},Gy=t._NonMaxSuppressionV5=function(){return(Gy=t._NonMaxSuppressionV5=t.asm.NonMaxSuppressionV5).apply(null,arguments)},Wy=t._NotEqual=function(){return(Wy=t._NotEqual=t.asm.NotEqual).apply(null,arguments)},Uy=t._OneHot=function(){return(Uy=t._OneHot=t.asm.OneHot).apply(null,arguments)},jy=t._PadV2=function(){return(jy=t._PadV2=t.asm.PadV2).apply(null,arguments)},nm=t._Pow=function(){return(nm=t._Pow=t.asm.Pow).apply(null,arguments)},Th=t._Prelu=function(){return(Th=t._Prelu=t.asm.Prelu).apply(null,arguments)},Eh=t._Prod=function(){return(Eh=t._Prod=t.asm.Prod).apply(null,arguments)},Hy=t._RealDiv=function(){return(Hy=t._RealDiv=t.asm.RealDiv).apply(null,arguments)},qy=t._Relu=function(){return(qy=t._Relu=t.asm.Relu).apply(null,arguments)},Ky=t._Relu6=function(){return(Ky=t._Relu6=t.asm.Relu6).apply(null,arguments)},Xy=t._ResizeBilinear=function(){return(Xy=t._ResizeBilinear=t.asm.ResizeBilinear).apply(null,arguments)},Yy=t._Reverse=function(){return(Yy=t._Reverse=t.asm.Reverse).apply(null,arguments)},Zy=t._RotateWithOffset=function(){return(Zy=t._RotateWithOffset=t.asm.RotateWithOffset).apply(null,arguments)},rt=t._Round=function(){return(rt=t._Round=t.asm.Round).apply(null,arguments)},Jy=t._Rsqrt=function(){return(Jy=t._Rsqrt=t.asm.Rsqrt).apply(null,arguments)},Qy=t._ScatterNd=function(){return(Qy=t._ScatterNd=t.asm.ScatterNd).apply(null,arguments)},eb=t._SelectV2=function(){return(eb=t._SelectV2=t.asm.SelectV2).apply(null,arguments)},Ml=t._Sigmoid=function(){return(Ml=t._Sigmoid=t.asm.Sigmoid).apply(null,arguments)},vc=t._Sin=function(){return(vc=t._Sin=t.asm.Sin).apply(null,arguments)},Ah=t._Softmax=function(){return(Ah=t._Softmax=t.asm.Softmax).apply(null,arguments)},Dh=t._Sqrt=function(){return(Dh=t._Sqrt=t.asm.Sqrt).apply(null,arguments)},$h=t._Square=function(){return($h=t._Square=t.asm.Square).apply(null,arguments)},tb=t._SquaredDifference=function(){return(tb=t._SquaredDifference=t.asm.SquaredDifference).apply(null,arguments)},rb=t._Step=function(){return(rb=t._Step=t.asm.Step).apply(null,arguments)},Rh=t._StridedSlice=function(){return(Rh=t._StridedSlice=t.asm.StridedSlice).apply(null,arguments)},ob=t._Sub=function(){return(ob=t._Sub=t.asm.Sub).apply(null,arguments)},Us=t._Sum=function(){return(Us=t._Sum=t.asm.Sum).apply(null,arguments)},nb=t._Tanh=function(){return(nb=t._Tanh=t.asm.Tanh).apply(null,arguments)},sb=t._Tile=function(){return(sb=t._Tile=t.asm.Tile).apply(null,arguments)},Fh=t._TopK=function(){return(Fh=t._TopK=t.asm.TopK).apply(null,arguments)},qa=t._Transpose=function(){return(qa=t._Transpose=t.asm.Transpose).apply(null,arguments)},ib=t.__FusedMatMul=function(){return(ib=t.__FusedMatMul=t.asm._FusedMatMul).apply(null,arguments)},ab=t._malloc=function(){return(ab=t._malloc=t.asm.malloc).apply(null,arguments)},Oh=t._free=function(){return(Oh=t._free=t.asm.free).apply(null,arguments)},Ph=t.__start=function(){return(Ph=t.__start=t.asm._start).apply(null,arguments)},Mh=t.stackSave=function(){return(Mh=t.stackSave=t.asm.stackSave).apply(null,arguments)},sm=t.stackAlloc=function(){return(sm=t.stackAlloc=t.asm.stackAlloc).apply(null,arguments)},Lh=t.stackRestore=function(){return(Lh=t.stackRestore=t.asm.stackRestore).apply(null,arguments)};t.asm=rm,t.cwrap=X;var Ll;t.then=function(H){if(Ll)H(t);else{var ne=t.onRuntimeInitialized;t.onRuntimeInitialized=function(){ne&&ne(),H(t)}}return t};function im(H){this.name="ExitStatus",this.message="Program terminated with exit("+H+")",this.status=H}var lb=!1;So=function H(){Ll||am(),Ll||(So=H)};function ub(H){var ne=t.__start;try{ne();var be=0;zh(be,!0)}catch(Xe){if(Xe instanceof im)return;if(Xe=="unwind"){A=!0;return}else{var Ke=Xe;Xe&&typeof Xe=="object"&&Xe.stack&&(Ke=[Xe,Xe.stack]),v("exception thrown: "+Ke),i(1,Xe)}}finally{lb=!0}}function am(H){if(H=H||s,Qr>0||(Zt(),Qr>0))return;function ne(){Ll||(Ll=!0,t.calledRun=!0,!V&&(mo(),_r(),t.onRuntimeInitialized&&t.onRuntimeInitialized(),Bh&&ub(H),Jr()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),ne()},1)):ne()}t.run=am;function zh(H,ne){ne&&A&&H===0||(A||(V=!0,G=H,Go(),t.onExit&&t.onExit(H)),i(H,new im(H)))}if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();var Bh=!0;return t.noInitialRun&&(Bh=!1),A=!0,am(),e}}();typeof oy=="object"&&typeof iI=="object"?iI.exports=aI:typeof define=="function"&&define.amd?define([],function(){return aI}):typeof oy=="object"&&(oy.WasmBackendModule=aI)});var XB=1e-7,YB=1e-4,Ya=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},js=class{refCount(e){return Ho("refCount")}incRef(e){return Ho("incRef")}timerAvailable(){return!0}time(e){return Ho("time")}read(e){return Ho("read")}readSync(e){return Ho("readSync")}numDataIds(){return Ho("numDataIds")}disposeData(e,t){return Ho("disposeData")}write(e,t,o){return Ho("write")}move(e,t,o,n,s){return Ho("move")}memory(){return Ho("memory")}floatPrecision(){return Ho("floatPrecision")}epsilon(){return this.floatPrecision()===32?XB:YB}dispose(){return Ho("dispose")}};function Ho(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function _I(r){let e=r.length,t=0,o=0;for(;e>0;)o=Math.random()*e|0,e--,t=r[e],r[e]=r[o],r[o]=t}function ZB(r,e){if(r.length!==e.length)throw Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${e.length}`);let t=r.length,o,n,s=0;for(;t>0;)s=Math.random()*t|0,t--,o=r[t],n=e[t],r[t]=r[s],e[t]=e[s],r[s]=o,e[s]=n}function Ec(r,e,t){return Math.max(r,Math.min(e,t))}function JB(r){return r%2==0?r:r+1}function QB(r){let e=0;for(let t=0;tt+` Shapes ${r} and ${e} must match`)}function To(r){T(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function as(r,e=[],t=!1){if(e==null&&(e=[]),Array.isArray(r)||rr(r)&&!t)for(let o=0;o0,t){return new Promise((o,n)=>{let s=0,a=()=>{if(r()){o();return}s++;let i=e(s);if(t!=null&&s>=t){n();return}setTimeout(a,i)};a()})}function a3(r,e){let t=1,o=-1;for(let s=0;s=0)t*=r[s];else if(r[s]===-1){if(o!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${o} and dim ${s}`);o=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(o===-1){if(e>0&&e!==t)throw Error(`Size(${e}) must match the product of shape ${r}`);return r}if(t===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(e%t!=0)throw Error(`The implicit shape can't be a fractional number. Got ${e} / ${t}`);let n=r.slice();return n[o]=e/t,n}function Jt(r,e){let t=e.length;return r=r==null?e.map((o,n)=>n):[].concat(r),T(r.every(o=>o>=-t&&o`All values in axis param must be in range [-${t}, ${t}) but got axis ${r}`),T(r.every(o=>st(o)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(o=>o<0?t+o:o)}function hb(r,e){let t=[],o=[],n=e!=null&&Array.isArray(e)&&e.length===0,s=e==null||n?null:Jt(e,r).sort(),a=0;for(let i=0;ii)&&r[i]===1&&(t.push(r[i]),o.push(i)),s[a]<=i&&a++}r[i]!==1&&(t.push(r[i]),o.push(i))}return{newShape:t,keptDims:o}}function gb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else throw new Error(`Unknown data type ${r}`);return t}function xb(r,e){let t=null;if(r==null||r==="float32")t=new Float32Array(e);else if(r==="int32")t=new Int32Array(e);else if(r==="bool")t=new Uint8Array(e);else if(r==="string")t=new Array(e);else throw new Error(`Unknown data type ${r}`);return t}function yb(r,e){for(let t=0;te+=t.length),e}function ls(r){return typeof r=="string"||r instanceof String}function wI(r){return typeof r=="boolean"}function kI(r){return typeof r=="number"}function Ac(r){return Array.isArray(r)?Ac(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array?"int32":kI(r)?"float32":ls(r)?"string":wI(r)?"bool":"float32"}function Hs(r){return!!(r&&r.constructor&&r.call&&r.apply)}function Dc(r,e){for(let t=e;t=0;--o)t[o]=t[o+1]*r[o+1];return t}function vI(r,e,t){let o=new Array;if(e.length===1){let n=e[0];for(let s=0;si*l);for(let i=0;io*n);if(t===0)return[];if(t!==e.length)throw new Error(`[${r}] does not match the input size ${e.length}.`);return vI(0,r,e)}function hm(r,e){let t=$c(r,e);for(let o=0;oo*n,1);if(e==null||e==="float32")return Bl(r,new Float32Array(t));if(e==="int32")return Bl(r,new Int32Array(t));if(e==="bool")return Bl(r,new Uint8Array(t));throw new Error(`Unknown data type ${e}`)}function gm(r){r.forEach(e=>{T(Number.isInteger(e)&&e>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function c3(r,e,t){if(e===0)return 0;if(e===1)return r[0];let o=r[r.length-1];for(let n=0;n{let[n,s]=o.split(":");this.urlFlags[n]=f3(n,s)})}};function m3(r){let e={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(t,...o)=>(d3(e,o[0],o[1]),o.join("="))),e}function d3(r,e,t){r[decodeURIComponent(e)]=decodeURIComponent(t||"")}function f3(r,e){if(e=e.toLowerCase(),e==="true"||e==="false")return e==="true";if(`${+e}`===e)return+e;throw new Error(`Could not parse value flag value ${e} for flag ${r}.`)}function U(){return wb}var wb=null;function II(r){wb=r}var kb;function vb(){if(kb==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");kb=r}return kb}function h3(){let r=vb();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function ym(r,e){let t=h3();if(t.has(r))return t.get(r);{let o=e();return t.set(r,o),t.get(r)}}var us="Abs",Ks="Acos",Xs="Acosh",xo="Add",qo="AddN",Vl="All",Gl="Any",Ko="ArgMax",oa="ArgMin",Ys="Asin",Zs="Asinh",Js="Atan",Qs="Atanh",ei="Atan2",Xo="AvgPool",Wl="AvgPoolGrad",na="AvgPool3D",Ul="AvgPool3DGrad",Yo="BatchMatMul",sa="BatchToSpaceND",jl="Bincount",Cb="BroadcastTo",Eo="Cast",Zo="Ceil",Ao="ClipByValue",Hl="Complex",ia="ComplexAbs",cs="Concat",Jo="Conv2D",ql="Conv2DBackpropFilter",Qo="Conv2DBackpropInput",aa="Conv3D",Kl="Conv3DBackpropFilterV2",Xl="Conv3DBackpropInputV2",en="Cos",ti="Cosh",tn="Cumsum",ri="CropAndResize",Yl="DenseBincount",oi="DepthToSpace",rn="DepthwiseConv2dNative",Zl="DepthwiseConv2dNativeBackpropFilter",Jl="DepthwiseConv2dNativeBackpropInput",Ql="Diag",la="Dilation2D",Rc="Dilation2DBackpropInput",Fc="Dilation2DBackpropFilter",on="RealDiv",ni="Elu",eu="EluGrad",si="Erf",ii="Equal",nn="Exp",ps="ExpandDims",ai="Expm1",tu="FFT",ua="Fill",li="FlipLeftRight",sn="Floor",an="FloorDiv",ln="FusedBatchNorm",ms="GatherV2",ui="GatherNd",ci="Greater",un="GreaterEqual",Do="Identity",ru="IFFT",ou="Imag",pi="IsFinite",mi="IsInf",fi="IsNan",cn="LeakyRelu",di="Less",hi="LessEqual",nu="LinSpace",pn="Log",gi="Log1p",xi="LogicalAnd",Za="LogicalNot",Ja="LogicalOr",Ib="LogSoftmax",ca="LRN",su="LRNGrad",mn="Max",fn="Maximum",dn="MaxPool",iu="MaxPoolGrad",pa="MaxPool3D",au="MaxPool3DGrad",lu="MaxPoolWithArgmax",hn="Mean",gn="Min",xn="Minimum",ma="MirrorPad",yi="Mod",uu="Multinomial",yn="Multiply",fs="Neg",bi="NotEqual",_i="NonMaxSuppressionV3",wi="NonMaxSuppressionV4",ki="NonMaxSuppressionV5",ds="OnesLike",bn="OneHot",hs="Pack",_n="PadV2",g3="Pool",wn="Pow",kn="Prelu",vi="Prod",fa="Range",cu="Real",Ci="Reciprocal",vn="Relu",gs="Reshape",da="ResizeNearestNeighbor",pu="ResizeNearestNeighborGrad",Cn="ResizeBilinear",mu="ResizeBilinearGrad",In="Relu6",Nn="Reverse",Sn="Round",Tn="Rsqrt",Ii="ScatterNd",xs="Select",Ni="Selu",ys="Slice",En="Sin",Si="Sinh",Ti="Sign",An="Sigmoid",Ei="Softplus",Dn="Sqrt",$n="Sum",ha="SpaceToBatchND",bs="SplitV",Rn="Softmax",Fn="SquaredDifference",ga="Square",On="Sub",fu="SparseToDense",Ai="StridedSlice",Di="Tan",Pn="Tanh",yo="Tile",$i="TopK",Mn="Transpose",du="Unique",_s="Unpack",xa="UnsortedSegmentSum",ws="ZerosLike",$o="Step",Oc="FromPixels",Ri="RotateWithOffset",ks="_FusedMatMul",vs="FusedConv2D",Cs="FusedDepthwiseConv2D";var Pc=ym("kernelRegistry",()=>new Map),bm=ym("gradRegistry",()=>new Map);function Mc(r,e){let t=Nb(r,e);return Pc.get(t)}function Hh(r){return bm.get(r)}function _m(r){let e=Pc.entries(),t=[];for(;;){let{done:o,value:n}=e.next();if(o)break;let[s,a]=n,[i]=s.split("_");i===r&&t.push(a)}return t}function Qa(r){let{kernelName:e,backendName:t}=r,o=Nb(e,t);Pc.has(o)&&console.warn(`The kernel '${e}' for backend '${t}' is already registered`),Pc.set(o,r)}function Sb(r){let{kernelName:e}=r;bm.has(e)&&U().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${e}'`),bm.set(e,r)}function x3(r,e){let t=Nb(r,e);if(!Pc.has(t))throw new Error(`The kernel '${r}' for backend '${e}' is not registered`);Pc.delete(t)}function y3(r){if(!bm.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);bm.delete(r)}function b3(r,e){_m(r).forEach(o=>{let n=Object.assign({},o,{backendName:e});Qa(n)})}function Nb(r,e){return`${e}_${r}`}var y={};et(y,{arraysEqual:()=>Vr,assert:()=>T,assertNonNegativeIntegerDimensions:()=>gm,assertNonNull:()=>To,assertShapesMatch:()=>Nt,bytesFromStringArray:()=>_b,bytesPerElement:()=>Uh,checkConversionForErrors:()=>yb,clamp:()=>Ec,computeStrides:()=>qs,createScalarValue:()=>_3,createShuffledIndices:()=>s3,decodeString:()=>zc,distSquared:()=>t3,encodeString:()=>el,fetch:()=>k3,flatten:()=>as,getArrayFromDType:()=>xb,getTypedArrayFromDType:()=>gb,hasEncodingLoss:()=>l3,indexToLoc:()=>p3,inferDtype:()=>Ac,inferFromImplicitShape:()=>a3,isBoolean:()=>wI,isFunction:()=>Hs,isInt:()=>st,isNumber:()=>kI,isPromise:()=>xm,isScalarShape:()=>r3,isString:()=>ls,isTypedArray:()=>rr,isValidDtype:()=>bb,locToIndex:()=>c3,makeOnesTypedArray:()=>hm,makeZerosNestedTypedArray:()=>u3,makeZerosTypedArray:()=>$c,nearestDivisor:()=>Dc,nearestLargerEven:()=>JB,now:()=>hu,parseAxisParam:()=>Jt,randUniform:()=>e3,repeatedTry:()=>i3,rightPad:()=>zl,shuffle:()=>_I,shuffleCombo:()=>ZB,sizeFromShape:()=>ft,sizeToSquarishShape:()=>n3,squeezeShape:()=>hb,sum:()=>QB,tanh:()=>o3,toNestedArray:()=>Bl,toTypedArray:()=>Lc});function _3(r,e){return e==="string"?el(r):Lc([r],e)}function w3(r,e){return r instanceof Float32Array&&e==="float32"||r instanceof Int32Array&&e==="int32"||r instanceof Uint8Array&&e==="bool"}function Lc(r,e){if(e==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=as(r)),U().getBool("DEBUG")&&yb(r,e),w3(r,e))return r;if(e==null||e==="float32"||e==="complex64")return new Float32Array(r);if(e==="int32")return new Int32Array(r);if(e==="bool"){let t=new Uint8Array(r.length);for(let o=0;o{n=o()},a,i=hu();if(this.backendTimer.timerAvailable()?a=this.backendTimer.time(s):(s(),n.map(u=>u.dataSync()),a=Promise.resolve({kernelMs:hu()-i})),U().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let u=0;u{v3(p,c.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:a.then(u=>u.kernelMs),extraInfo:a.then(u=>u.getExtraProfileInfo!=null?u.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:o,timeMs:n,inputs:s,extraInfo:a}=e;o.forEach(i=>{Promise.all([i.data(),n,a]).then(l=>{this.logger.logKernelProfile(t,i,l[0],l[1],s,l[2])})})}};function v3(r,e,t){if(e!=="float32")return!1;for(let o=0;o0?h:""} `}}console.log(`%c${l} %c${i} %c${u}D ${p} %c${c} %c${m} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function SI(r,e,t){let o={},n={};for(let l=0;lo[h.id]=!0),f=!0,n[u.id]=!0;break}if(f)break}}let s={};s[t.id]=!0;let a={};for(let l=r.length-1;l>=0;l--){let u=r[l],c=u.inputs;for(let p=0;p=0;n--){let s=e[n],a=[];if(s.outputs.forEach(l=>{let u=r[l.id];u!=null?a.push(u):a.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let i=s.gradient(a);for(let l in s.inputs){if(!(l in i))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(i)}.`);let u=t(()=>i[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let c=s.inputs[l];if(!Vr(u.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=u;else{let p=r[c.id];r[c.id]=o(p,u),p.dispose()}}}}var EI=20,wm=3,Eb=7;function AI(r,e,t,o){let n=qs(e),s=C3(r,e,t,n),a=e.length,i=qh(r,e,t,n,s),l=["Tensor"];return o&&(l.push(` dtype: ${t}`),l.push(` rank: ${a}`),l.push(` shape: [${e}]`),l.push(" values:")),l.push(i.map(u=>" "+u).join(` `)),l.join(` -`)}function b3(r,e,t,o){let n=ft(e),s=o[o.length-1],a=new Array(s).fill(0),i=e.length,l=t==="complex64"?_m(r):r;if(i>1)for(let u=0;uNI){let g=ym*a,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((i-ym)*a,i*a));return t==="complex64"&&(x=_m(x),b=_m(b)),["["+x.map((_,w)=>bm(_,n[w],t)).join(", ")+", ..., "+b.map((_,w)=>bm(_,n[i-ym+w],t)).join(", ")+"]"]}let h=t==="complex64"?_m(r):Array.from(r);return["["+h.map((g,x)=>bm(g,n[x],t)).join(", ")+"]"]}let u=e.slice(1),c=o.slice(1),p=o[0]*a,m=[];if(i>NI){for(let h=0;h1)for(let u=0;uEI){let g=wm*a,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((i-wm)*a,i*a));return t==="complex64"&&(x=vm(x),b=vm(b)),["["+x.map((_,w)=>km(_,n[w],t)).join(", ")+", ..., "+b.map((_,w)=>km(_,n[i-wm+w],t)).join(", ")+"]"]}let h=t==="complex64"?vm(r):Array.from(r);return["["+h.map((g,x)=>km(g,n[x],t)).join(", ")+"]"]}let u=e.slice(1),c=o.slice(1),p=o[0]*a,m=[];if(i>EI){for(let h=0;h`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=o||pb(t,this.size),this.strides=Hs(e)}set(e,...t){t.length===0&&(t=[0]),T(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let o=this.locToIndex(t);this.values[o]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let n of e){if(n<0||n>=this.shape[t]){let s=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(s)}t++}let o=e[e.length-1];for(let n=0;nLc(o))}catch(o){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Fi().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Lc(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Fi().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Fi().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return zc.print(this,e)}clone(){return this.throwIfDisposed(),zc.clone(this)}toString(e=!1){let t=this.dataSync();return SI(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),zc.cast(this,e)}variable(e=!0,t,o){return this.throwIfDisposed(),Fi().makeVariable(this,e,t,o)}};Object.defineProperty(Ve,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function F(){return hm("Tensor",()=>Ve)}F();var tl=class extends Ve{constructor(e,t,o,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=o}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Vr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Fi().disposeTensor(this),this.dataId=e.dataId,Fi().incRef(this,null)}dispose(){Fi().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(tl,Symbol.hasInstance,{value:r=>r instanceof Ve&&r.assign!=null&&r.assign instanceof Function});var Fn={};et(Fn,{assertTypesMatch:()=>Ab,getTensorsInContainer:()=>wm,isTensorInList:()=>k3,makeTypesMatch:()=>Ge});var Ib;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(Ib||(Ib={}));var Nb;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(Nb||(Nb={}));var Sb;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(Sb||(Sb={}));var Tb;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(Tb||(Tb={}));var Eb;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(Eb||(Eb={}));var w3={float32:Tb,int32:Nb,bool:Sb,complex64:Eb};function mr(r,e){if(r==="string"||e==="string"){if(r==="string"&&e==="string")return"string";throw new Error(`Can not upcast ${r} with ${e}`)}return w3[r][e]}function hu(r){return mr(r,"int32")}function Ge(r,e){if(r.dtype===e.dtype)return[r,e];let t=mr(r.dtype,e.dtype);return[r.cast(t),e.cast(t)]}function Ab(r,e){T(r.dtype===e.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${e.dtype}) input must match`)}function k3(r,e){return e.some(t=>t.id===r.id)}function wm(r){let e=[],t=new Set;return $I(r,e,t),e}function $I(r,e,t){if(r==null)return;if(r instanceof Ve){e.push(r);return}if(!v3(r))return;let o=r;for(let n in o){let s=o[n];t.has(s)||(t.add(s),$I(s,e,t))}}function v3(r){return Array.isArray(r)||typeof r=="object"}function Db(r){return r.kernelName!=null}var $b=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},gu=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new $b}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){xm(e).forEach(o=>{o.disposeFunc!=null&&o.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let o=t.factory();if(o&&!(o instanceof Ws)&&typeof o.then=="function"){let n=++this.pendingBackendInitId,s=o.then(a=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(o),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,o){e();try{let n=o();return t(),n}catch(n){throw t(),n}}nextTensorId(){return gu.nextTensorId++}nextVariableId(){return gu.nextVariableId++}clone(e){let t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),o={x:e},n=a=>({x:()=>{let i="float32",l={x:a},u={dtype:i};return E.runKernel(Eo,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,o,[t],n,s,{}),t}runKernel(e,t,o){if(!(Pc(e,this.backendName)!=null))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:o})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,o){let n=this.backend.numDataIds(),s=0;o.forEach(l=>{s+=l.dtype==="complex64"?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=n-t-s-a;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,o=[],n=this.isTapeOn(),s=this.state.numBytes,a=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let l,u=Db(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Db(e)){let{kernelName:d,inputs:h,attrs:g}=e;this.backendName==null&&this.backend;let x=Pc(d,this.backendName);T(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();l=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let _=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,_);let w=_.map(v=>{if(v.rank!=null)return v;let{dataId:$,shape:A,dtype:R}=v;return this.makeTensorFromDataId($,A,R)});if(n){let v=this.getTensorsForGradient(d,h,w);o=this.saveTensorsForBackwardMode(v)}return w}}else{let{forwardFunc:d}=e,h=g=>{!n||(o=g.map(x=>this.keep(this.clone(x))))};i=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>d(this.backend,h));let x=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,x),x}}let{inputs:c,attrs:p}=e,m=Db(e)?null:e.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(f=this.profiler.profileKernel(u,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),t=f.outputs)}),n&&this.addTapeNode(u,c,t,m,o,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-a,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:t.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(l)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(o=>this.keep(this.clone(o)))}getTensorsForGradient(e,t,o){let n=Bh(e);if(n!=null){let s=n.inputsToSave||[],a=n.outputsToSave||[],i;n.saveAllInputs?(T(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(u=>t[u])):i=s.map(u=>t[u]);let l=o.filter((u,c)=>a[c]);return i.concat(l)}return[]}makeTensor(e,t,o,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");o=o||"float32",n=n||this.backend;let s=e;o==="string"&&ns(e[0])&&(s=e.map(l=>el(l)));let a=n.write(s,t,o),i=new Ve(t,o,a,this.nextTensorId());if(this.incRef(i,n),o==="string"){let l=this.state.tensorInfo.get(a),u=hb(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return i}makeTensorFromDataId(e,t,o,n){o=o||"float32";let s=new Ve(t,o,e,this.nextTensorId());return this.incRef(s,n),s}makeVariable(e,t=!0,o,n){o=o||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));let s=new tl(e,t,o,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}incRef(e,t){let o=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,o===0){this.state.numDataBuffers++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*db(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof tl||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;let t=this.state.tensorInfo.get(e.dataId);t.refCount<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):(t.backend.decComplexRef(e.dataId),this.state.tensorInfo.get(e.dataId).refCount--)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,o=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-o;for(let n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,o,n,s,a){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:o,saved:s},l=Bh(e);l!=null&&(n=l.gradFunc),n!=null&&(i.gradient=u=>(u=u.map((c,p)=>{if(c==null){let m=o[p],f=Dc(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),n(u.length>1?u:u[0],s,a))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=wm(e),o=new Set(t.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===n.id&&this.track(s)})}gradients(e,t,o,n=!1){if(T(t.length>0,()=>"gradients() received an empty list of xs."),o!=null&&o.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${o.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));T(s instanceof Ve,()=>"The result y returned by f() must be a tensor.");let a=CI(this.state.activeTape,t,s);if(!n&&a.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[s.id]=o==null?C3(s.shape):o,II(i,a,u=>this.tidy(u),I3);let l=t.map(u=>i[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let c of u.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(e){return T(js(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{T(t.every(i=>i instanceof Ve),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let o,n={};t.forEach((i,l)=>{n[l]=i});let s=(i,l)=>(o=e(...t,l),T(o.value instanceof Ve,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),T(js(o.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),o.value),a=(i,l)=>{let u=o.gradFunc(i,l),c=Array.isArray(u)?u:[u];T(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),T(c.every(m=>m instanceof Ve),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:a,inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=Vh(),o=await this.backend.time(e);return o.wallMs=Vh()-t,o}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new $b;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};gu.nextTensorId=0;gu.nextVariableId=0;function C3(r){let e=mm(ft(r),"float32");return E.makeTensor(e,r,"float32")}function Rb(){let r=yb();if(r._tfengine==null){let e=new zh(r);r._tfengine=new gu(e)}return kI(r._tfengine.ENV),EI(()=>r._tfengine),r._tfengine}var E=Rb();function I3(r,e){let t={a:r,b:e};return E.runKernel(xo,t)}var Bc={};et(Bc,{isBrowser:()=>Fb,isMobile:()=>S3});function N3(){return typeof navigator!="undefined"&&navigator!=null}function S3(){if(N3()){let r=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(r)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(r.substr(0,4))}return!1}function Fb(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Oi=G();Oi.registerFlag("DEBUG",()=>!1,r=>{r&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Oi.registerFlag("IS_BROWSER",()=>Fb());Oi.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Oi.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Oi.registerFlag("PROD",()=>!1);Oi.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Oi.getBool("DEBUG"));Oi.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Oi.registerFlag("IS_TEST",()=>!1);Oi.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function kr(r,e){let t=r;if(rr(r))return e==="string"?[]:[r.length];if(!Array.isArray(r))return[];let o=[];for(;Array.isArray(t)||rr(t)&&e!=="string";)o.push(t.length),t=t[0];return Array.isArray(r)&&G().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&RI(r,o,[]),o}function RI(r,e,t){if(t=t||[],!Array.isArray(r)&&!rr(r)){T(e.length===0,()=>`Element arr[${t.join("][")}] is a primitive, but should be an array/TypedArray of ${e[0]} elements`);return}T(e.length>0,()=>`Element arr[${t.join("][")}] should be a primitive, but is an array of ${r.length} elements`),T(r.length===e[0],()=>`Element arr[${t.join("][")}] should have ${e[0]} elements, but has ${r.length} elements`);let o=e.slice(1);for(let n=0;n=0&&(n=o),FI(o,n,e,t),r==null||!rr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let l=r==null?"null":r.constructor.name;throw new Error(`Argument '${e}' passed to '${t}' must be a Tensor or TensorLike, but got '${l}'`)}let s=kr(r,n);!rr(r)&&!Array.isArray(r)&&(r=[r]);let i=n!=="string"?Mc(r,n):os(r,[],!0);return E.makeTensor(i,s,n)}function ya(r,e,t,o="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${e} passed to ${t} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,a)=>k(s,`${e}[${a}]`,t,o))}var OI="__op";function S(r){let e=Object.keys(r);if(e.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${e.length} keys.`);let t=e[0],o=r[t];t.endsWith("_")&&(t=t.substring(0,t.length-1)),t=t+OI;let n=(...s)=>{E.startScope(t);try{let a=o(...s);return dm(a)&&console.error("Cannot return a Promise inside of tidy."),E.endScope(a),a}catch(a){throw E.endScope(null),a}};return Object.defineProperty(n,"name",{value:t,configurable:!0}),n}function T3(r,e){let t=k(r,"real","complex"),o=k(e,"imag","complex");Nt(t.shape,o.shape,`real and imag shapes, ${t.shape} and ${o.shape}, must match in call to tf.complex().`);let n={real:t,imag:o};return E.runKernel(Hl,n)}var bo=S({complex_:T3});function Gr(r,e,t,o){if(o==null&&(o=Ec(r)),o==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!rr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(e!=null){fm(e);let n=ft(e),s=ft(t);T(n===s,()=>`Based on the provided shape, [${e}], the tensor should have ${n} values but has ${s}`);for(let a=0;a`Error creating a new Tensor. Inferred shape (${t}) does not match the provided shape (${e}). `)}}return!rr(r)&&!Array.isArray(r)&&(r=[r]),e=e||t,r=o!=="string"?Mc(r,o):os(r,[],!0),E.makeTensor(r,e,o)}function Dr(r,e,t){let o=kr(r,t);return Gr(r,e,o,t)}var km={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Wh=4;async function PI(r,e){let t=[],o=[],n=Array.isArray(r)?r.map(a=>a.name):Object.keys(r);for(let a=0;a{let m=await l.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Wh*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(e+=s.byteLength,t.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let o=new Uint8Array(e),n=0;return t.forEach(s=>{o.set(new Uint8Array(s.buffer),n),n+=s.byteLength}),o.buffer}var Ob=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function MI(r){return Ob?Buffer.byteLength(r):new Blob([r]).size}function LI(r){if(Ob)return Buffer.from(r).toString("base64");let e=new Uint8Array(r),t="";for(let o=0,n=e.length;o{e+=n.byteLength});let t=new Uint8Array(e),o=0;return r.forEach(n=>{t.set(new Uint8Array(n),o),o+=n.byteLength}),t.buffer}function Pb(r){let e="/";for(r=r.trim();r.endsWith(e);)r=r.slice(0,r.length-1);let t=r.split(e);return t[t.length-1]}function Pi(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:MI(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:MI(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function D3(){let r=t=>{let o=t<<13,n=0;for(;(o&8388608)==0;)n-=8388608,o<<=1;return o&=~8388608,n+=947912704,o|n},e=new Uint32Array(2048);e[0]=0;for(let t=1;t<1024;t++)e[t]=r(t);for(let t=1024;t<2048;t++)e[t]=939524096+(t-1024<<13);return e}function $3(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let e=1;e<31;e++)r[e]=e<<23;for(let e=33;e<63;e++)r[e]=2147483648+(e-32<<23);return r}function R3(){let r=new Uint32Array(64);for(let e=0;e<64;e++)r[e]=1024;return r[0]=r[32]=0,r}function A3(){let r=D3(),e=$3(),t=R3();return o=>{let n=new ArrayBuffer(4*o.length),s=new Uint32Array(n);for(let a=0;a>10]+(i&1023)]+e[i>>10];s[a]=l}return new Float32Array(n)}}var St=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return St.instance==null&&(St.instance=new St),St.instance}static registerSaveRouter(e){St.getInstance().saveRouters.push(e)}static registerLoadRouter(e){St.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return St.getHandlers(e,"save")}static getLoadHandlers(e,t){return St.getHandlers(e,"load",t)}static getHandlers(e,t,o){let n=[];return(t==="load"?St.getInstance().loadRouters:St.getInstance().saveRouters).forEach(a=>{let i=a(e,o);i!==null&&n.push(i)}),n}},BI=r=>St.registerSaveRouter(r),VI=r=>St.registerLoadRouter(r),GI=r=>St.getSaveHandlers(r),WI=(r,e)=>St.getLoadHandlers(r,e);var Mb="tensorflowjs",Lb=1,xu="models_store",rl="model_info_store";function UI(){if(!G().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,e=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(e==null)throw new Error("The current browser does not appear to support IndexedDB.");return e}function zb(r){let e=r.result;e.createObjectStore(xu,{keyPath:"modelPath"}),e.createObjectStore(rl,{keyPath:"modelPath"})}var ba=class{constructor(e){if(this.indexedDB=UI(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((o,n)=>{let s=this.indexedDB.open(Mb,Lb);s.onupgradeneeded=()=>zb(s),s.onsuccess=()=>{let a=s.result;if(t==null){let i=a.transaction(xu,"readonly"),u=i.objectStore(xu).get(this.modelPath);u.onsuccess=()=>{if(u.result==null)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));o(u.result.modelArtifacts)},u.onerror=c=>(a.close(),n(u.error)),i.oncomplete=()=>a.close()}else{let i=Pi(t),l=a.transaction(rl,"readwrite"),u=l.objectStore(rl),c=u.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;c.onsuccess=()=>{p=a.transaction(xu,"readwrite");let f=p.objectStore(xu).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});f.onsuccess=()=>o({modelArtifactsInfo:i}),f.onerror=d=>{u=l.objectStore(rl);let h=u.delete(this.modelPath);h.onsuccess=()=>(a.close(),n(f.error)),h.onerror=g=>(a.close(),n(f.error))}},c.onerror=m=>(a.close(),n(c.error)),l.oncomplete=()=>{p==null?a.close():p.oncomplete=()=>a.close()}}},s.onerror=a=>n(s.error)})}};ba.URL_SCHEME="indexeddb://";var jI=r=>G().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ba.URL_SCHEME)?F3(r.slice(ba.URL_SCHEME.length)):null;St.registerSaveRouter(jI);St.registerLoadRouter(jI);function F3(r){return new ba(r)}function O3(r){return r.startsWith(ba.URL_SCHEME)?r.slice(ba.URL_SCHEME.length):r}var Bb=class{constructor(){this.indexedDB=UI()}async listModels(){return new Promise((e,t)=>{let o=this.indexedDB.open(Mb,Lb);o.onupgradeneeded=()=>zb(o),o.onsuccess=()=>{let n=o.result,s=n.transaction(rl,"readonly"),i=s.objectStore(rl).getAll();i.onsuccess=()=>{let l={};for(let u of i.result)l[u.modelPath]=u.modelArtifactsInfo;e(l)},i.onerror=l=>(n.close(),t(i.error)),s.oncomplete=()=>n.close()},o.onerror=n=>t(o.error)})}async removeModel(e){return e=O3(e),new Promise((t,o)=>{let n=this.indexedDB.open(Mb,Lb);n.onupgradeneeded=()=>zb(n),n.onsuccess=()=>{let s=n.result,a=s.transaction(rl,"readwrite"),i=a.objectStore(rl),l=i.get(e),u;l.onsuccess=()=>{if(l.result==null)return s.close(),o(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),p=()=>{u=s.transaction(xu,"readwrite");let f=u.objectStore(xu).delete(e);f.onsuccess=()=>t(l.result.modelArtifactsInfo),f.onerror=d=>o(l.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),o(l.error))}},l.onerror=c=>(s.close(),o(l.error)),a.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}},n.onerror=s=>o(n.error)})}};var _a="/",Gc="tensorflowjs_models",HI="info",P3="model_topology",M3="weight_specs",L3="weight_data",z3="model_metadata";function qI(r){return{info:[Gc,r,HI].join(_a),topology:[Gc,r,P3].join(_a),weightSpecs:[Gc,r,M3].join(_a),weightData:[Gc,r,L3].join(_a),modelMetadata:[Gc,r,z3].join(_a)}}function B3(r){let e=r.split(_a);if(e.length<3)throw new Error(`Invalid key format: ${r}`);return e.slice(1,e.length-1).join(_a)}function V3(r){return r.startsWith(wa.URL_SCHEME)?r.slice(wa.URL_SCHEME.length):r}var wa=class{constructor(e){if(!G().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=qI(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),o=JSON.stringify(e.weightSpecs),n=Pi(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,o),this.LS.setItem(this.keys.weightData,LI(e.weightData));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(s.signature=e.signature),e.userDefinedMetadata!=null&&(s.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(s.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:n}}catch(s){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},o=JSON.parse(this.LS.getItem(this.keys.topology));if(o==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=o;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(n==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let i=JSON.parse(s);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let a=this.LS.getItem(this.keys.weightData);if(a==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=zI(a),t}};wa.URL_SCHEME="localstorage://";var KI=r=>G().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(wa.URL_SCHEME)?G3(r.slice(wa.URL_SCHEME.length)):null;St.registerSaveRouter(KI);St.registerLoadRouter(KI);function G3(r){return new wa(r)}var Vb=class{constructor(){T(G().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),T(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Gc+_a,o=_a+HI;for(let n=0;n"scheme must not be undefined or null."),e.endsWith(Wc)&&(e=e.slice(0,e.indexOf(Wc))),T(e.length>0,()=>"scheme must not be an empty string.");let o=Wr.getInstance();T(o.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),o.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function jh(r){if(r.indexOf(Wc)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Wr.getSchemes().join(",")}`);return{scheme:r.split(Wc)[0],path:r.split(Wc)[1]}}async function XI(r,e,t=!1){T(r!==e,()=>`Old path and new path are the same: '${r}'`);let o=St.getLoadHandlers(r);T(o.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),T(o.length<2,()=>`Copying failed because more than one (${o.length}) load handlers for source URL ${r}.`);let n=o[0],s=St.getSaveHandlers(e);T(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${e}.`),T(s.length<2,()=>`Copying failed because more than one (${o.length}) save handlers for destination URL ${e}.`);let a=s[0],i=jh(r).scheme,l=jh(r).path,u=i===jh(r).scheme,c=await n.load();t&&u&&await Wr.getManager(i).removeModel(l);let p=await a.save(c);return t&&!u&&await Wr.getManager(i).removeModel(l),p.modelArtifactsInfo}async function YI(){let r=Wr.getSchemes(),e={};for(let t of r){let o=await Wr.getManager(t).listModels();for(let n in o){let s=t+Wc+n;e[s]=o[n]}}return e}async function ZI(r){let e=jh(r);return Wr.getManager(e.scheme).removeModel(e.path)}async function JI(r,e){return XI(r,e,!1)}async function QI(r,e){return XI(r,e,!0)}var eN=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(G().get("IS_BROWSER")){G().setPlatform("browser",new eN);try{Wr.registerManager(wa.URL_SCHEME,new Vb)}catch(r){}try{Wr.registerManager(ba.URL_SCHEME,new Bb)}catch(r){}}var W3={importFetch:()=>tN()},Gb;var rN=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return G().global.fetch!=null?G().global.fetch(e,t):(Gb==null&&(Gb=W3.importFetch()),Gb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};G().get("IS_NODE")&&G().setPlatform("node",new rN);function Ce(r,e="float32",t){return e=e||"float32",fm(r),new ct(r,e,t)}function U3(r,e){let t=k(r,"x","cast");if(!fb(e))throw new Error(`Failed to cast to unknown dtype ${e}`);if(e==="string"&&t.dtype!=="string"||e!=="string"&&t.dtype==="string")throw new Error("Only strings can be casted to strings");let o={x:t},n={dtype:e};return E.runKernel(Eo,o,n)}var oe=S({cast_:U3});function j3(r){let t={x:k(r,"x","clone","string_or_numeric")};return E.runKernel(us,t)}var $o=S({clone_:j3});function Wb(r,e=!1){console.log(r.toString(e))}Rb();var H3={buffer:Ce,cast:oe,clone:$o,print:Wb};AI(H3);var vr={};et(vr,{browserFiles:()=>sN,browserHTTPRequest:()=>lN,concatenateArrayBuffers:()=>Vc,copyModel:()=>JI,decodeWeights:()=>Uh,encodeWeights:()=>PI,fromMemory:()=>cN,getLoadHandlers:()=>WI,getModelArtifactsInfoForJSON:()=>Pi,getSaveHandlers:()=>GI,http:()=>Kh,isHTTPScheme:()=>qh,listModels:()=>YI,loadWeights:()=>iN,moveModel:()=>QI,registerLoadRouter:()=>VI,registerSaveRouter:()=>BI,removeModel:()=>ZI,weightsLoaderFactory:()=>Hb,withSaveHandler:()=>pN});var q3="model",K3=".json",X3=".weights.bin";function oN(r){return new Promise(e=>setTimeout(e)).then(r)}var ol=class{constructor(e){if(!G().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(ol.URL_SCHEME)&&(e=e.slice(ol.URL_SCHEME.length)),(e==null||e.length===0)&&(e=q3),this.modelTopologyFileName=e+K3,this.weightDataFileName=e+X3}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let o=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer);let s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(a.download=this.modelTopologyFileName,a.href=s,await oN(()=>a.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await oN(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Pi(e)}}}};ol.URL_SCHEME="downloads://";var nN=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((o,n)=>{let s=new FileReader;s.onload=a=>{let i=JSON.parse(a.target.result),l=i.modelTopology;if(l==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&o({modelTopology:l});let u=i.weightsManifest;if(u==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(u,t)}catch(d){n(d);return}let p=[],m=[],f=[];u.forEach(d=>{d.paths.forEach(h=>{m.push(h),f.push(null)}),p.push(...d.weights)}),u.forEach(d=>{d.paths.forEach(h=>{let g=new FileReader;g.onload=x=>{let b=x.target.result,_=m.indexOf(h);if(f[_]=b,f.indexOf(null)===-1){let w={modelTopology:l,weightSpecs:p,weightData:Vc(f),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(w.signature=i.signature),i.userDefinedMetadata!=null&&(w.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(w.modelInitializer=i.modelInitializer),o(w)}},g.onerror=x=>n(`Failed to weights data from file of path '${h}'.`),g.readAsArrayBuffer(c[h])})})},s.onerror=a=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),s.readAsText(e)})}checkManifestAndWeightFiles(e,t){let o=[],n=t.map(a=>Pb(a.name)),s={};for(let a of e)a.paths.forEach(i=>{let l=Pb(i);if(o.indexOf(l)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${l}'`);if(o.push(l),n.indexOf(l)===-1)throw new Error(`Weight file with basename '${l}' is not provided.`);s[i]=t[n.indexOf(l)]});if(o.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${o.length}) and the number of weight files provided (${t.length}).`);return s}},Z3=r=>G().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ol.URL_SCHEME)?Y3(r.slice(ol.URL_SCHEME.length)):null;St.registerSaveRouter(Z3);function Y3(r="model"){return new ol(r)}function sN(r){return new nN(r)}function Ub(r,e,t,o){a(r),t=t==null?0:t,o=o==null?1:o,i(t,o);let n=0,s=l=>(l.then(u=>{let c=t+ ++n/r.length*(o-t);return e(c),u}),l);function a(l){T(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function i(l,u){T(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),T(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),T(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(r.map(s))}async function jb(r,e){e==null&&(e={});let t=e.fetchFunc==null?G().platform.fetch:e.fetchFunc,o=r.map(p=>t(p,e.requestInit,{isBinary:!0})),n=0,s=.5,i=(e.onProgress==null?await Promise.all(o):await Ub(o,e.onProgress,n,s)).map(p=>p.arrayBuffer()),l=.5,u=1;return e.onProgress==null?await Promise.all(i):await Ub(i,e.onProgress,l,u)}async function iN(r,e="",t,o){return Hb(a=>jb(a,{requestInit:o}))(r,e,t)}function Hb(r){return async(e,t="",o)=>{let n=e.map(()=>!1),s={},a=o!=null?o.map(()=>!1):[],i=[];if(e.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=km[x]*ft(g.shape),_=()=>{n[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};o!=null?o.forEach((w,v)=>{w===g.name&&(_(),a[v]=!0)}):_(),i.push(g.name),h+=b})}),!a.every(f=>f)){let f=o.filter((d,h)=>!a[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. -Manifest JSON has weights with names: ${i.join(", ")}.`)}let l=n.reduce((f,d,h)=>(d&&f.push(h),f),[]),u=[];l.forEach(f=>{e[f].paths.forEach(d=>{let h=t+(t.endsWith("/")?"":"/")+d;u.push(h)})});let c=await r(u),p={},m=0;return l.forEach(f=>{let d=e[f].paths.length,h=0;for(let w=0;w{let v=g.slice(w.groupOffset,w.groupOffset+w.sizeBytes),$=Uh(v,[w.manifestEntry]);for(let A in $)p[A]=$[A]}),m+=d}),p}}var J3="application/octet-stream",Q3="application/json",Hh=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(T(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=G().platform.fetch,T(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&T(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let o=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(n)],{type:Q3}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:J3}),"model.weights.bin");let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:Pi(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(d){let h=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?h+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":h+=" Please make sure the server is serving valid JSON for this request.",new Error(h)}let o=t.modelTopology,n=t.weightsManifest,s=t.generatedBy,a=t.convertedBy,i=t.format,l=t.signature,u=t.userDefinedMetadata;if(o==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,p;n!=null&&([c,p]=await this.loadWeights(n));let m={modelTopology:o,weightSpecs:c,weightData:p,generatedBy:s,convertedBy:a,format:i};l!=null&&(m.signature=l),u!=null&&(m.userDefinedMetadata=u);let f=t.modelInitializer;return f&&(m.modelInitializer=f),m}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[o,n]=eV(t),s=this.weightPathPrefix||o,a=[];for(let c of e)a.push(...c.weights);let i=[],l=[];for(let c of e)for(let p of c.paths)this.weightUrlConverter!=null?l.push(this.weightUrlConverter(p)):i.push(s+p+n);this.weightUrlConverter&&i.push(...await Promise.all(l));let u=await jb(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[a,Vc(u)]}};Hh.URL_SCHEME_REGEX=/^https?:\/\//;function eV(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("?"),o=r.substring(0,e),n=t>e?r.substring(t):"";return[o+"/",n]}function qh(r){return r.match(Hh.URL_SCHEME_REGEX)!=null}var aN=(r,e)=>{if(typeof fetch=="undefined"&&(e==null||e.fetchFunc==null))return null;{let t=!0;if(Array.isArray(r)?t=r.every(o=>qh(o)):t=qh(r),t)return Kh(r,e)}return null};St.registerSaveRouter(aN);St.registerLoadRouter(aN);function Kh(r,e){return new Hh(r,e)}function lN(r,e){return Kh(r,e)}var Xh=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},uN=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function cN(r,e,t,o){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new Xh(r):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Xh({modelTopology:r})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Xh({modelTopology:r,weightSpecs:e,weightData:t,trainingConfig:o}))}function pN(r){return new uN(r)}var mN={};et(mN,{confusionMatrix:()=>sV});function tV(r,e,t=!1,o=!1){let n=k(r,"a","matMul"),s=k(e,"b","matMul");[n,s]=Ge(n,s);let a={a:n,b:s},i={transposeA:t,transposeB:o};return E.runKernel(qo,a,i)}var We=S({matMul_:tV});function rV(r,e,t=1,o=0){if(e<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${e}`);let s={indices:k(r,"indices","oneHot","int32")},a={depth:e,onValue:t,offValue:o};return E.runKernel(hn,s,a)}var ks=S({oneHot_:rV});function oV(r,e){let t=k(r,"x","transpose");if(e==null&&(e=t.shape.map((s,a)=>a).reverse()),T(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of perm ${e}.`),e.forEach(s=>{T(s>=0&&s`All entries in 'perm' must be between 0 and ${t.rank-1} but got ${e}`)}),t.rank<=1)return t.clone();let o={x:t},n={perm:e};return E.runKernel(Rn,o,n)}var Ue=S({transpose_:oV});function nV(r,e,t){let o=k(r,"labels","confusionMatrix"),n=k(e,"predictions","confusionMatrix");T(t==null||t>0&&Number.isInteger(t),()=>`If provided, numClasses must be a positive integer, but got ${t}`),T(o.rank===1,()=>`Expected the rank of labels to be 1, but got ${o.rank}`),T(n.rank===1,()=>`Expected the rank of predictions to be 1, but got ${n.rank}`),T(o.shape[0]===n.shape[0],()=>`Mismatch in the number of examples: ${o.shape[0]} vs. ${n.shape[0]}. Labels and predictions should have the same number of elements.`),T(t>0&&Number.isInteger(t),()=>`numClasses is required to be a positive integer, but got ${t}`);let s=ks(oe(o,"int32"),t),a=ks(oe(n,"int32"),t),i=Ue(s),l=We(i,a);return oe(l,"int32")}var sV=S({confusionMatrix_:nV});var Yh={};et(Yh,{fromPixels:()=>lV,toPixels:()=>aV});function qb(r,e,t){if(To(r),e!=null&&e.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let o=kr(r,t);if(o.length!==3&&o.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Gr(r,e,o,t)}var Uc;function iV(r,e=3){if(e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let t=!1,o=!1,n=!1,s=!1,a=!1,i=!1;if(r.data instanceof Uint8Array)t=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)o=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)n=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)a=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)i=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(n){let d=2;if(n&&r.readyState element.")}if(Pc(Fc,E.backendName)!=null){let d={pixels:r},h={numChannels:e};return E.runKernel(Fc,d,h)}let[u,c]=n?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;a?p=r.getContext("2d").getImageData(0,0,u,c).data:o||t?p=r.data:(s||n||i)&&(Uc==null&&(Uc=document.createElement("canvas").getContext("2d")),Uc.canvas.width=u,Uc.canvas.height=c,Uc.drawImage(r,0,0,u,c),p=Uc.getImageData(0,0,u,c).data);let m;if(e===4)m=new Int32Array(p);else{let d=u*c;m=new Int32Array(d*e);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(t.dtype!=="float32"&&t.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${t.dtype}. Please use float32 or int32 tensors.`);let a=await t.data(),i=t.dtype==="float32"?255:1,l=new Uint8ClampedArray(n*o*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(t.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*i,c[1]=f*i,c[2]=f*i):c[m]=f*i}let p=u*4;l[p+0]=Math.round(c[0]),l[p+1]=Math.round(c[1]),l[p+2]=Math.round(c[2]),l[p+3]=Math.round(c[3])}if(e!=null){e.width=n,e.height=o;let u=e.getContext("2d"),c=new ImageData(l,n,o);u.putImageData(c,0,0)}return t!==r&&t.dispose(),l}var lV=S({fromPixels_:iV});var Zh={};et(Zh,{prepareAndValidate:()=>fN});function fN(r,e){let t=r.shape.length,o=e.shape.length;if(t<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${t}.`);if(o<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${o}.`);if(e.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.shape[o-1]>t)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${e.shape[o-1]} vs. ${t}`);if(ft(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let n=e.shape,s=n[n.length-1],a=1;for(let p=0;pp/u),1].slice(0,s);return[l,a,u,c]}var Jh={};et(Jh,{calculateShapes:()=>dN,validateInput:()=>Qh,validateUpdateShape:()=>Kb});function Kb(r,e,t){let o=e.rank>1?e.shape[e.rank-1]:1,n=e.rank>1?e.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${t.shape}, indices.shape: ${e.shape}, shape: ${r}, sliceDim: ${o}, and batchDim: ${n}.`;if(t.rank1?e.shape[o-1]:1,s=t.length,a=1;for(let p=n;puV,computeFlatOffset:()=>pV,computeOutShape:()=>hN,getNormalizedAxes:()=>CN,isSliceContinous:()=>cV,maskToAxes:()=>eg,parseSliceParams:()=>Xb,sliceInfo:()=>mV,startForAxis:()=>kN,startIndicesWithElidedDims:()=>bN,stopForAxis:()=>vN,stopIndicesWithElidedDims:()=>_N,stridesForAxis:()=>wN,stridesWithElidedDims:()=>gN});function uV(r,e,t){let o=r.shape.length;T(o===e.length,()=>`Error in slice${o}D: Length of begin ${e} must match the rank of the array (${o}).`),T(o===t.length,()=>`Error in slice${o}D: Length of size ${t} must match the rank of the array (${o}).`);for(let n=0;n`Error in slice${o}D: begin[${n}] + size[${n}] (${e[n]+t[n]}) would overflow input.shape[${n}] (${r.shape[n]})`)}function eg(r){let e=[],t=0;for(;r>0;)r&1&&e.push(t),r/=2,t++;return e}function hN(r,e,t){let o=[];for(let n=0;n0){let f=e[0],d=t+1;c=bN(a,f,d,o,r),p=_N(i,f,d,n,r),m=gN(s,f,d,r)}else for(let f=0;f-1)s[i]=0;else{let l=xN(e,t,i),u=o[l];r&1<-1)s[i]=Number.MAX_SAFE_INTEGER;else{let l=xN(e,t,i),u=o[l];r&1<0?a=Number.MIN_SAFE_INTEGER:a=Number.MAX_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),a=Tc(0,a,l-1),a}function vN(r,e,t,o,n,s){let a=e[n],i=t[n]||1;(r&1<0?a=Number.MAX_SAFE_INTEGER:a=Number.MIN_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),i>0?a=Tc(0,a,l):a=Tc(-1,a,l-1),a}function cV(r,e,t){let o=t.length;for(let n=0;n1){o=n;break}for(let n=o+1;n0||t[n]!==r[n])return!1;return!0}function pV(r,e){let t=r.length>0?r[r.length-1]:1;for(let o=0;o{T(a!==-1,()=>"slice() does not support negative begin indexing.")});let s;return t==null?s=new Array(n).fill(-1):typeof t=="number"?s=[t,...new Array(n-1).fill(-1)]:t.lengtha>=0?a:(T(a===-1,()=>`Negative size values should be exactly -1 but got ${a} for the slice() size at index ${i}.`),r.shape[i]-o[i])),[o,s]}function mV(r,e,t,o,n,s,a,i,l){let u=e.slice(),c=t.slice(),p=o;o==null&&(p=new Array(u.length));let m=eg(a);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(a!==0&&i!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(a!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let f=r.length-u.length,d=eg(i),h=r.slice();d.forEach(A=>{u[A]=0,c[A]=1,h.splice(A,0,1)});let{begin:g,end:x,strides:b}=CN(h,m,f,u,c,p,n,s,a);u=g,c=x,p=b;let _=eg(l);_.forEach(A=>{c[A]=u[A]+1,p[A]=1});let w=hN(u,c,p),v=w.filter((A,R)=>_.indexOf(R)===-1);return{nonStrided:p.every(A=>A===1),$begin:u,$end:c,$strides:p,size:w,newShape:h,outShape:v}}var J={};et(J,{Serializable:()=>tg,SerializationMap:()=>ka,registerClass:()=>eo});var tg=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},ka=class{constructor(){this.classNameMap={}}static getMap(){return ka.instance==null&&(ka.instance=new ka),ka.instance}static register(e){ka.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function eo(r){T(r.className!=null,()=>"Class being registered does not have the static className property defined."),T(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),T(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),ka.register(r)}var IN={};et(IN,{TEST_EPSILON_FLOAT16:()=>NN,encodeStrings:()=>SN,expectArrayBuffersEqual:()=>bV,expectArraysClose:()=>dV,expectArraysEqual:()=>gV,expectNumbersClose:()=>xV,expectPromiseToFail:()=>hV,expectValuesInRange:()=>yV,testEpsilon:()=>Yb});var fV=.001,NN=.1;function dV(r,e,t){return t==null&&(t=Yb()),Zb(r,e,(o,n)=>Jb(o,n,t))}function Yb(){return E.backend.floatPrecision()===32?fV:NN}function Zb(r,e,t){let o=!0;if((rr(r)||rr(e))&&(o=!1),rr(r)&&rr(e)&&(o=!0),o){let a=r.constructor.name,i=e.constructor.name;if(a!==i)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${i}`)}if(Array.isArray(r)&&Array.isArray(e)){let a=kr(r),i=kr(e);if(!Vr(a,i))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${i}]`)}let n=rr(r)?r:os(r),s=rr(e)?e:os(e);if(n.length!==s.length)throw new Error(`Arrays have different lengths actual: ${n.length} vs expected: ${s.length}. +`;return m[m.length-1]=" "+m[m.length-1]+"]"+(s?"":d),m}function vm(r){let e=[];for(let t=0;t`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=o||xb(t,this.size),this.strides=qs(e)}set(e,...t){t.length===0&&(t=[0]),T(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let o=this.locToIndex(t);this.values[o]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let n of e){if(n<0||n>=this.shape[t]){let s=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(s)}t++}let o=e[e.length-1];for(let n=0;nzc(o))}catch(o){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();let e=Fi().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>zc(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Fi().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Fi().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Bc.print(this,e)}clone(){return this.throwIfDisposed(),Bc.clone(this)}toString(e=!1){let t=this.dataSync();return AI(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Bc.cast(this,e)}variable(e=!0,t,o){return this.throwIfDisposed(),Fi().makeVariable(this,e,t,o)}};Object.defineProperty(Ve,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function F(){return ym("Tensor",()=>Ve)}F();var tl=class extends Ve{constructor(e,t,o,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=o}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Vr(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Fi().disposeTensor(this),this.dataId=e.dataId,Fi().incRef(this,null)}dispose(){Fi().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(tl,Symbol.hasInstance,{value:r=>r instanceof Ve&&r.assign!=null&&r.assign instanceof Function});var Ln={};et(Ln,{assertTypesMatch:()=>Ob,getTensorsInContainer:()=>Cm,isTensorInList:()=>S3,makeTypesMatch:()=>Ge});var Ab;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(Ab||(Ab={}));var Db;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(Db||(Db={}));var $b;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})($b||($b={}));var Rb;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(Rb||(Rb={}));var Fb;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(Fb||(Fb={}));var N3={float32:Rb,int32:Db,bool:$b,complex64:Fb};function mr(r,e){if(r==="string"||e==="string"){if(r==="string"&&e==="string")return"string";throw new Error(`Can not upcast ${r} with ${e}`)}return N3[r][e]}function gu(r){return mr(r,"int32")}function Ge(r,e){if(r.dtype===e.dtype)return[r,e];let t=mr(r.dtype,e.dtype);return[r.cast(t),e.cast(t)]}function Ob(r,e){T(r.dtype===e.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${e.dtype}) input must match`)}function S3(r,e){return e.some(t=>t.id===r.id)}function Cm(r){let e=[],t=new Set;return OI(r,e,t),e}function OI(r,e,t){if(r==null)return;if(r instanceof Ve){e.push(r);return}if(!T3(r))return;let o=r;for(let n in o){let s=o[n];t.has(s)||(t.add(s),OI(s,e,t))}}function T3(r){return Array.isArray(r)||typeof r=="object"}function Pb(r){return r.kernelName!=null}var Mb=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},xu=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Mb}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){_m(e).forEach(o=>{o.disposeFunc!=null&&o.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let o=t.factory();if(o&&!(o instanceof js)&&typeof o.then=="function"){let n=++this.pendingBackendInitId,s=o.then(a=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(o),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,o){e();try{let n=o();return t(),n}catch(n){throw t(),n}}nextTensorId(){return xu.nextTensorId++}nextVariableId(){return xu.nextVariableId++}clone(e){let t=E.runKernel(Do,{x:e}),o={x:e},n=a=>({x:()=>{let i="float32",l={x:a},u={dtype:i};return E.runKernel(Eo,l,u)}}),s=[];return this.addTapeNode(this.state.activeScope.name,o,[t],n,s,{}),t}runKernel(e,t,o){if(!(Mc(e,this.backendName)!=null))throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:o})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,o){let n=this.backend.numDataIds(),s=0;o.forEach(l=>{s+=l.dtype==="complex64"?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=n-t-s-a;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,o=[],n=this.isTapeOn(),s=this.state.numBytes,a=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let l,u=Pb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Pb(e)){let{kernelName:d,inputs:h,attrs:g}=e;this.backendName==null&&this.backend;let x=Mc(d,this.backendName);T(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),i=()=>{let b=this.backend.numDataIds();l=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let _=Array.isArray(l)?l:[l];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,_);let w=_.map(v=>{if(v.rank!=null)return v;let{dataId:$,shape:A,dtype:R}=v;return this.makeTensorFromDataId($,A,R)});if(n){let v=this.getTensorsForGradient(d,h,w);o=this.saveTensorsForBackwardMode(v)}return w}}else{let{forwardFunc:d}=e,h=g=>{!n||(o=g.map(x=>this.keep(this.clone(x))))};i=()=>{let g=this.backend.numDataIds();l=this.tidy(()=>d(this.backend,h));let x=Array.isArray(l)?l:[l];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,g,x),x}}let{inputs:c,attrs:p}=e,m=Pb(e)?null:e.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(f=this.profiler.profileKernel(u,c,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),t=f.outputs)}),n&&this.addTapeNode(u,c,t,m,o,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-a,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:t.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(l)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(o=>this.keep(this.clone(o)))}getTensorsForGradient(e,t,o){let n=Hh(e);if(n!=null){let s=n.inputsToSave||[],a=n.outputsToSave||[],i;n.saveAllInputs?(T(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(u=>t[u])):i=s.map(u=>t[u]);let l=o.filter((u,c)=>a[c]);return i.concat(l)}return[]}makeTensor(e,t,o,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");o=o||"float32",n=n||this.backend;let s=e;o==="string"&&ls(e[0])&&(s=e.map(l=>el(l)));let a=n.write(s,t,o),i=new Ve(t,o,a,this.nextTensorId());if(this.trackTensor(i,n),o==="string"){let l=this.state.tensorInfo.get(a),u=_b(s);this.state.numBytes+=u-l.bytes,l.bytes=u}return i}makeTensorFromDataId(e,t,o,n){o=o||"float32";let s=new Ve(t,o,e,this.nextTensorId());return this.trackTensor(s,n),s}makeVariable(e,t=!0,o,n){o=o||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));let s=new tl(e,t,o,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let o=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(o=e.size*Uh(e.dtype)),this.state.numBytes+=o,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:o})),e instanceof tl||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let o=e.size*Uh(e.dtype);this.state.numBytes-=o}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,o=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-o;for(let n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,o,n,s,a){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:o,saved:s},l=Hh(e);l!=null&&(n=l.gradFunc),n!=null&&(i.gradient=u=>(u=u.map((c,p)=>{if(c==null){let m=o[p],f=$c(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),n(u.length>1?u:u[0],s,a))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Cm(e),o=new Set(t.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===n.id&&this.track(s)})}gradients(e,t,o,n=!1){if(T(t.length>0,()=>"gradients() received an empty list of xs."),o!=null&&o.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${o.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));T(s instanceof Ve,()=>"The result y returned by f() must be a tensor.");let a=SI(this.state.activeTape,t,s);if(!n&&a.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[s.id]=o==null?E3(s.shape):o,TI(i,a,u=>this.tidy(u),A3);let l=t.map(u=>i[u.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(u=>{for(let c of u.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(e){return T(Hs(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{T(t.every(i=>i instanceof Ve),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let o,n={};t.forEach((i,l)=>{n[l]=i});let s=(i,l)=>(o=e(...t,l),T(o.value instanceof Ve,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),T(Hs(o.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),o.value),a=(i,l)=>{let u=o.gradFunc(i,l),c=Array.isArray(u)?u:[u];T(c.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),T(c.every(m=>m instanceof Ve),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:a,inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}async time(e){let t=hu(),o=await this.backend.time(e);return o.wallMs=hu()-t,o}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Mb;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};xu.nextTensorId=0;xu.nextVariableId=0;function E3(r){let e=hm(ft(r),"float32");return E.makeTensor(e,r,"float32")}function Lb(){let r=vb();if(r._tfengine==null){let e=new jh(r);r._tfengine=new xu(e)}return II(r._tfengine.ENV),$I(()=>r._tfengine),r._tfengine}var E=Lb();function A3(r,e){let t={a:r,b:e};return E.runKernel(xo,t)}var Vc={};et(Vc,{isBrowser:()=>zb,isMobile:()=>$3});function D3(){return typeof navigator!="undefined"&&navigator!=null}function $3(){if(D3()){let r=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(r)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(r.substr(0,4))}return!1}function zb(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Oi=U();Oi.registerFlag("DEBUG",()=>!1,r=>{r&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Oi.registerFlag("IS_BROWSER",()=>zb());Oi.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Oi.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Oi.registerFlag("PROD",()=>!1);Oi.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Oi.getBool("DEBUG"));Oi.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Oi.registerFlag("IS_TEST",()=>!1);Oi.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);function kr(r,e){let t=r;if(rr(r))return e==="string"?[]:[r.length];if(!Array.isArray(r))return[];let o=[];for(;Array.isArray(t)||rr(t)&&e!=="string";)o.push(t.length),t=t[0];return Array.isArray(r)&&U().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&PI(r,o,[]),o}function PI(r,e,t){if(t=t||[],!Array.isArray(r)&&!rr(r)){T(e.length===0,()=>`Element arr[${t.join("][")}] is a primitive, but should be an array/TypedArray of ${e[0]} elements`);return}T(e.length>0,()=>`Element arr[${t.join("][")}] should be a primitive, but is an array of ${r.length} elements`),T(r.length===e[0],()=>`Element arr[${t.join("][")}] should have ${e[0]} elements, but has ${r.length} elements`);let o=e.slice(1);for(let n=0;n=0&&(n=o),MI(o,n,e,t),r==null||!rr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let l=r==null?"null":r.constructor.name;throw new Error(`Argument '${e}' passed to '${t}' must be a Tensor or TensorLike, but got '${l}'`)}let s=kr(r,n);!rr(r)&&!Array.isArray(r)&&(r=[r]);let i=n!=="string"?Lc(r,n):as(r,[],!0);return E.makeTensor(i,s,n)}function ya(r,e,t,o="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${e} passed to ${t} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,a)=>k(s,`${e}[${a}]`,t,o))}var LI="__op";function S(r){let e=Object.keys(r);if(e.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${e.length} keys.`);let t=e[0],o=r[t];t.endsWith("_")&&(t=t.substring(0,t.length-1)),t=t+LI;let n=(...s)=>{E.startScope(t);try{let a=o(...s);return xm(a)&&console.error("Cannot return a Promise inside of tidy."),E.endScope(a),a}catch(a){throw E.endScope(null),a}};return Object.defineProperty(n,"name",{value:t,configurable:!0}),n}function R3(r,e){let t=k(r,"real","complex"),o=k(e,"imag","complex");Nt(t.shape,o.shape,`real and imag shapes, ${t.shape} and ${o.shape}, must match in call to tf.complex().`);let n={real:t,imag:o};return E.runKernel(Hl,n)}var bo=S({complex_:R3});function Gr(r,e,t,o){if(o==null&&(o=Ac(r)),o==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!rr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(e!=null){gm(e);let n=ft(e),s=ft(t);T(n===s,()=>`Based on the provided shape, [${e}], the tensor should have ${n} values but has ${s}`);for(let a=0;a`Error creating a new Tensor. Inferred shape (${t}) does not match the provided shape (${e}). `)}}return!rr(r)&&!Array.isArray(r)&&(r=[r]),e=e||t,r=o!=="string"?Lc(r,o):as(r,[],!0),E.makeTensor(r,e,o)}function Dr(r,e,t){let o=kr(r,t);return Gr(r,e,o,t)}var Im={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Kh=4;async function zI(r,e){let t=[],o=[],n=Array.isArray(r)?r.map(a=>a.name):Object.keys(r);for(let a=0;a{let m=await l.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Kh*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(e+=s.byteLength,t.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let o=new Uint8Array(e),n=0;return t.forEach(s=>{o.set(new Uint8Array(s.buffer),n),n+=s.byteLength}),o.buffer}var Bb=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function BI(r){return Bb?Buffer.byteLength(r):new Blob([r]).size}function VI(r){if(Bb)return Buffer.from(r).toString("base64");let e=new Uint8Array(r),t="";for(let o=0,n=e.length;o{e+=n.byteLength});let t=new Uint8Array(e),o=0;return r.forEach(n=>{t.set(new Uint8Array(n),o),o+=n.byteLength}),t.buffer}function Vb(r){let e="/";for(r=r.trim();r.endsWith(e);)r=r.slice(0,r.length-1);let t=r.split(e);return t[t.length-1]}function Pi(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:BI(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:BI(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function P3(){let r=t=>{let o=t<<13,n=0;for(;(o&8388608)==0;)n-=8388608,o<<=1;return o&=~8388608,n+=947912704,o|n},e=new Uint32Array(2048);e[0]=0;for(let t=1;t<1024;t++)e[t]=r(t);for(let t=1024;t<2048;t++)e[t]=939524096+(t-1024<<13);return e}function M3(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let e=1;e<31;e++)r[e]=e<<23;for(let e=33;e<63;e++)r[e]=2147483648+(e-32<<23);return r}function L3(){let r=new Uint32Array(64);for(let e=0;e<64;e++)r[e]=1024;return r[0]=r[32]=0,r}function O3(){let r=P3(),e=M3(),t=L3();return o=>{let n=new ArrayBuffer(4*o.length),s=new Uint32Array(n);for(let a=0;a>10]+(i&1023)]+e[i>>10];s[a]=l}return new Float32Array(n)}}var St=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return St.instance==null&&(St.instance=new St),St.instance}static registerSaveRouter(e){St.getInstance().saveRouters.push(e)}static registerLoadRouter(e){St.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return St.getHandlers(e,"save")}static getLoadHandlers(e,t){return St.getHandlers(e,"load",t)}static getHandlers(e,t,o){let n=[];return(t==="load"?St.getInstance().loadRouters:St.getInstance().saveRouters).forEach(a=>{let i=a(e,o);i!==null&&n.push(i)}),n}},WI=r=>St.registerSaveRouter(r),UI=r=>St.registerLoadRouter(r),jI=r=>St.getSaveHandlers(r),HI=(r,e)=>St.getLoadHandlers(r,e);var Gb="tensorflowjs",Wb=1,yu="models_store",rl="model_info_store";function qI(){if(!U().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,e=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(e==null)throw new Error("The current browser does not appear to support IndexedDB.");return e}function Ub(r){let e=r.result;e.createObjectStore(yu,{keyPath:"modelPath"}),e.createObjectStore(rl,{keyPath:"modelPath"})}var ba=class{constructor(e){if(this.indexedDB=qI(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((o,n)=>{let s=this.indexedDB.open(Gb,Wb);s.onupgradeneeded=()=>Ub(s),s.onsuccess=()=>{let a=s.result;if(t==null){let i=a.transaction(yu,"readonly"),u=i.objectStore(yu).get(this.modelPath);u.onsuccess=()=>{if(u.result==null)return a.close(),n(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));o(u.result.modelArtifacts)},u.onerror=c=>(a.close(),n(u.error)),i.oncomplete=()=>a.close()}else{let i=Pi(t),l=a.transaction(rl,"readwrite"),u=l.objectStore(rl),c=u.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;c.onsuccess=()=>{p=a.transaction(yu,"readwrite");let f=p.objectStore(yu).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});f.onsuccess=()=>o({modelArtifactsInfo:i}),f.onerror=d=>{u=l.objectStore(rl);let h=u.delete(this.modelPath);h.onsuccess=()=>(a.close(),n(f.error)),h.onerror=g=>(a.close(),n(f.error))}},c.onerror=m=>(a.close(),n(c.error)),l.oncomplete=()=>{p==null?a.close():p.oncomplete=()=>a.close()}}},s.onerror=a=>n(s.error)})}};ba.URL_SCHEME="indexeddb://";var KI=r=>U().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ba.URL_SCHEME)?z3(r.slice(ba.URL_SCHEME.length)):null;St.registerSaveRouter(KI);St.registerLoadRouter(KI);function z3(r){return new ba(r)}function B3(r){return r.startsWith(ba.URL_SCHEME)?r.slice(ba.URL_SCHEME.length):r}var jb=class{constructor(){this.indexedDB=qI()}async listModels(){return new Promise((e,t)=>{let o=this.indexedDB.open(Gb,Wb);o.onupgradeneeded=()=>Ub(o),o.onsuccess=()=>{let n=o.result,s=n.transaction(rl,"readonly"),i=s.objectStore(rl).getAll();i.onsuccess=()=>{let l={};for(let u of i.result)l[u.modelPath]=u.modelArtifactsInfo;e(l)},i.onerror=l=>(n.close(),t(i.error)),s.oncomplete=()=>n.close()},o.onerror=n=>t(o.error)})}async removeModel(e){return e=B3(e),new Promise((t,o)=>{let n=this.indexedDB.open(Gb,Wb);n.onupgradeneeded=()=>Ub(n),n.onsuccess=()=>{let s=n.result,a=s.transaction(rl,"readwrite"),i=a.objectStore(rl),l=i.get(e),u;l.onsuccess=()=>{if(l.result==null)return s.close(),o(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let c=i.delete(e),p=()=>{u=s.transaction(yu,"readwrite");let f=u.objectStore(yu).delete(e);f.onsuccess=()=>t(l.result.modelArtifactsInfo),f.onerror=d=>o(l.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),o(l.error))}},l.onerror=c=>(s.close(),o(l.error)),a.oncomplete=()=>{u==null?s.close():u.oncomplete=()=>s.close()}},n.onerror=s=>o(n.error)})}};var _a="/",Wc="tensorflowjs_models",XI="info",V3="model_topology",G3="weight_specs",W3="weight_data",U3="model_metadata";function YI(r){return{info:[Wc,r,XI].join(_a),topology:[Wc,r,V3].join(_a),weightSpecs:[Wc,r,G3].join(_a),weightData:[Wc,r,W3].join(_a),modelMetadata:[Wc,r,U3].join(_a)}}function j3(r){let e=r.split(_a);if(e.length<3)throw new Error(`Invalid key format: ${r}`);return e.slice(1,e.length-1).join(_a)}function H3(r){return r.startsWith(wa.URL_SCHEME)?r.slice(wa.URL_SCHEME.length):r}var wa=class{constructor(e){if(!U().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=YI(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),o=JSON.stringify(e.weightSpecs),n=Pi(e);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,o),this.LS.setItem(this.keys.weightData,VI(e.weightData));let s={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};return e.signature!=null&&(s.signature=e.signature),e.userDefinedMetadata!=null&&(s.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(s.modelInitializer=e.modelInitializer),this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:n}}catch(s){throw this.LS.removeItem(this.keys.info),this.LS.removeItem(this.keys.topology),this.LS.removeItem(this.keys.weightSpecs),this.LS.removeItem(this.keys.weightData),this.LS.removeItem(this.keys.modelMetadata),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${n.modelTopologyBytes}, weightSpecsBytes=${n.weightSpecsBytes}, weightDataBytes=${n.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},o=JSON.parse(this.LS.getItem(this.keys.topology));if(o==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=o;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(n==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=n;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let i=JSON.parse(s);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer)}let a=this.LS.getItem(this.keys.weightData);if(a==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=GI(a),t}};wa.URL_SCHEME="localstorage://";var ZI=r=>U().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(wa.URL_SCHEME)?q3(r.slice(wa.URL_SCHEME.length)):null;St.registerSaveRouter(ZI);St.registerLoadRouter(ZI);function q3(r){return new wa(r)}var Hb=class{constructor(){T(U().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),T(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Wc+_a,o=_a+XI;for(let n=0;n"scheme must not be undefined or null."),e.endsWith(Uc)&&(e=e.slice(0,e.indexOf(Uc))),T(e.length>0,()=>"scheme must not be an empty string.");let o=Wr.getInstance();T(o.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),o.managers[e]=t}static getManager(e){let t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}};function Yh(r){if(r.indexOf(Uc)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Wr.getSchemes().join(",")}`);return{scheme:r.split(Uc)[0],path:r.split(Uc)[1]}}async function JI(r,e,t=!1){T(r!==e,()=>`Old path and new path are the same: '${r}'`);let o=St.getLoadHandlers(r);T(o.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),T(o.length<2,()=>`Copying failed because more than one (${o.length}) load handlers for source URL ${r}.`);let n=o[0],s=St.getSaveHandlers(e);T(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${e}.`),T(s.length<2,()=>`Copying failed because more than one (${o.length}) save handlers for destination URL ${e}.`);let a=s[0],i=Yh(r).scheme,l=Yh(r).path,u=i===Yh(r).scheme,c=await n.load();t&&u&&await Wr.getManager(i).removeModel(l);let p=await a.save(c);return t&&!u&&await Wr.getManager(i).removeModel(l),p.modelArtifactsInfo}async function QI(){let r=Wr.getSchemes(),e={};for(let t of r){let o=await Wr.getManager(t).listModels();for(let n in o){let s=t+Uc+n;e[s]=o[n]}}return e}async function eN(r){let e=Yh(r);return Wr.getManager(e.scheme).removeModel(e.path)}async function tN(r,e){return JI(r,e,!1)}async function rN(r,e){return JI(r,e,!0)}var oN=class{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}};if(U().get("IS_BROWSER")){U().setPlatform("browser",new oN);try{Wr.registerManager(wa.URL_SCHEME,new Hb)}catch(r){}try{Wr.registerManager(ba.URL_SCHEME,new jb)}catch(r){}}var K3={importFetch:()=>nN()},qb;var sN=class{constructor(){this.util=require("util"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return U().global.fetch!=null?U().global.fetch(e,t):(qb==null&&(qb=K3.importFetch()),qb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};U().get("IS_NODE")&&U().setPlatform("node",new sN);function Ce(r,e="float32",t){return e=e||"float32",gm(r),new ct(r,e,t)}function X3(r,e){let t=k(r,"x","cast");if(!bb(e))throw new Error(`Failed to cast to unknown dtype ${e}`);if(e==="string"&&t.dtype!=="string"||e!=="string"&&t.dtype==="string")throw new Error("Only strings can be casted to strings");let o={x:t},n={dtype:e};return E.runKernel(Eo,o,n)}var oe=S({cast_:X3});function Y3(r){let t={x:k(r,"x","clone","string_or_numeric")};return E.runKernel(Do,t)}var Ro=S({clone_:Y3});function Kb(r,e=!1){console.log(r.toString(e))}Lb();var Z3={buffer:Ce,cast:oe,clone:Ro,print:Kb};RI(Z3);var vr={};et(vr,{browserFiles:()=>lN,browserHTTPRequest:()=>pN,concatenateArrayBuffers:()=>Gc,copyModel:()=>tN,decodeWeights:()=>Xh,encodeWeights:()=>zI,fromMemory:()=>fN,getLoadHandlers:()=>HI,getModelArtifactsInfoForJSON:()=>Pi,getSaveHandlers:()=>jI,http:()=>Qh,isHTTPScheme:()=>Jh,listModels:()=>QI,loadWeights:()=>uN,moveModel:()=>rN,registerLoadRouter:()=>UI,registerSaveRouter:()=>WI,removeModel:()=>eN,weightsLoaderFactory:()=>Zb,withSaveHandler:()=>dN});var J3="model",Q3=".json",eV=".weights.bin";function iN(r){return new Promise(e=>setTimeout(e)).then(r)}var ol=class{constructor(e){if(!U().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(ol.URL_SCHEME)&&(e=e.slice(ol.URL_SCHEME.length)),(e==null||e.length===0)&&(e=J3),this.modelTopologyFileName=e+Q3,this.weightDataFileName=e+eV}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let o=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer);let s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(a.download=this.modelTopologyFileName,a.href=s,await iN(()=>a.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await iN(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Pi(e)}}}};ol.URL_SCHEME="downloads://";var aN=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){let e=this.files[0],t=this.files.slice(1);return new Promise((o,n)=>{let s=new FileReader;s.onload=a=>{let i=JSON.parse(a.target.result),l=i.modelTopology;if(l==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&o({modelTopology:l});let u=i.weightsManifest;if(u==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(u,t)}catch(d){n(d);return}let p=[],m=[],f=[];u.forEach(d=>{d.paths.forEach(h=>{m.push(h),f.push(null)}),p.push(...d.weights)}),u.forEach(d=>{d.paths.forEach(h=>{let g=new FileReader;g.onload=x=>{let b=x.target.result,_=m.indexOf(h);if(f[_]=b,f.indexOf(null)===-1){let w={modelTopology:l,weightSpecs:p,weightData:Gc(f),format:i.format,generatedBy:i.generatedBy,convertedBy:i.convertedBy};i.signature!=null&&(w.signature=i.signature),i.userDefinedMetadata!=null&&(w.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(w.modelInitializer=i.modelInitializer),o(w)}},g.onerror=x=>n(`Failed to weights data from file of path '${h}'.`),g.readAsArrayBuffer(c[h])})})},s.onerror=a=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),s.readAsText(e)})}checkManifestAndWeightFiles(e,t){let o=[],n=t.map(a=>Vb(a.name)),s={};for(let a of e)a.paths.forEach(i=>{let l=Vb(i);if(o.indexOf(l)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${l}'`);if(o.push(l),n.indexOf(l)===-1)throw new Error(`Weight file with basename '${l}' is not provided.`);s[i]=t[n.indexOf(l)]});if(o.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${o.length}) and the number of weight files provided (${t.length}).`);return s}},rV=r=>U().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ol.URL_SCHEME)?tV(r.slice(ol.URL_SCHEME.length)):null;St.registerSaveRouter(rV);function tV(r="model"){return new ol(r)}function lN(r){return new aN(r)}function Xb(r,e,t,o){a(r),t=t==null?0:t,o=o==null?1:o,i(t,o);let n=0,s=l=>(l.then(u=>{let c=t+ ++n/r.length*(o-t);return e(c),u}),l);function a(l){T(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function i(l,u){T(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),T(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),T(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(r.map(s))}async function Yb(r,e){e==null&&(e={});let t=e.fetchFunc==null?U().platform.fetch:e.fetchFunc,o=r.map(p=>t(p,e.requestInit,{isBinary:!0})),n=0,s=.5,i=(e.onProgress==null?await Promise.all(o):await Xb(o,e.onProgress,n,s)).map(p=>p.arrayBuffer()),l=.5,u=1;return e.onProgress==null?await Promise.all(i):await Xb(i,e.onProgress,l,u)}async function uN(r,e="",t,o){return Zb(a=>Yb(a,{requestInit:o}))(r,e,t)}function Zb(r){return async(e,t="",o)=>{let n=e.map(()=>!1),s={},a=o!=null?o.map(()=>!1):[],i=[];if(e.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=Im[x]*ft(g.shape),_=()=>{n[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};o!=null?o.forEach((w,v)=>{w===g.name&&(_(),a[v]=!0)}):_(),i.push(g.name),h+=b})}),!a.every(f=>f)){let f=o.filter((d,h)=>!a[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. +Manifest JSON has weights with names: ${i.join(", ")}.`)}let l=n.reduce((f,d,h)=>(d&&f.push(h),f),[]),u=[];l.forEach(f=>{e[f].paths.forEach(d=>{let h=t+(t.endsWith("/")?"":"/")+d;u.push(h)})});let c=await r(u),p={},m=0;return l.forEach(f=>{let d=e[f].paths.length,h=0;for(let w=0;w{let v=g.slice(w.groupOffset,w.groupOffset+w.sizeBytes),$=Xh(v,[w.manifestEntry]);for(let A in $)p[A]=$[A]}),m+=d}),p}}var oV="application/octet-stream",nV="application/json",Zh=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(T(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=U().platform.fetch,T(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&T(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let o=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:o};e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),t.body.append("model.json",new Blob([JSON.stringify(n)],{type:nV}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:oV}),"model.weights.bin");let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:Pi(e),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(d){let h=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?h+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":h+=" Please make sure the server is serving valid JSON for this request.",new Error(h)}let o=t.modelTopology,n=t.weightsManifest,s=t.generatedBy,a=t.convertedBy,i=t.format,l=t.signature,u=t.userDefinedMetadata;if(o==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let c,p;n!=null&&([c,p]=await this.loadWeights(n));let m={modelTopology:o,weightSpecs:c,weightData:p,generatedBy:s,convertedBy:a,format:i};l!=null&&(m.signature=l),u!=null&&(m.userDefinedMetadata=u);let f=t.modelInitializer;return f&&(m.modelInitializer=f),m}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[o,n]=sV(t),s=this.weightPathPrefix||o,a=[];for(let c of e)a.push(...c.weights);let i=[],l=[];for(let c of e)for(let p of c.paths)this.weightUrlConverter!=null?l.push(this.weightUrlConverter(p)):i.push(s+p+n);this.weightUrlConverter&&i.push(...await Promise.all(l));let u=await Yb(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[a,Gc(u)]}};Zh.URL_SCHEME_REGEX=/^https?:\/\//;function sV(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("?"),o=r.substring(0,e),n=t>e?r.substring(t):"";return[o+"/",n]}function Jh(r){return r.match(Zh.URL_SCHEME_REGEX)!=null}var cN=(r,e)=>{if(typeof fetch=="undefined"&&(e==null||e.fetchFunc==null))return null;{let t=!0;if(Array.isArray(r)?t=r.every(o=>Jh(o)):t=Jh(r),t)return Qh(r,e)}return null};St.registerSaveRouter(cN);St.registerLoadRouter(cN);function Qh(r,e){return new Zh(r,e)}function pN(r,e){return Qh(r,e)}var eg=class{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}},mN=class{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}};function fN(r,e,t,o){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new eg(r):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new eg({modelTopology:r})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new eg({modelTopology:r,weightSpecs:e,weightData:t,trainingConfig:o}))}function dN(r){return new mN(r)}var hN={};et(hN,{confusionMatrix:()=>cV});function iV(r,e,t=!1,o=!1){let n=k(r,"a","matMul"),s=k(e,"b","matMul");[n,s]=Ge(n,s);let a={a:n,b:s},i={transposeA:t,transposeB:o};return E.runKernel(Yo,a,i)}var We=S({matMul_:iV});function aV(r,e,t=1,o=0){if(e<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${e}`);let s={indices:k(r,"indices","oneHot","int32")},a={depth:e,onValue:t,offValue:o};return E.runKernel(bn,s,a)}var Is=S({oneHot_:aV});function lV(r,e){let t=k(r,"x","transpose");if(e==null&&(e=t.shape.map((s,a)=>a).reverse()),T(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of perm ${e}.`),e.forEach(s=>{T(s>=0&&s`All entries in 'perm' must be between 0 and ${t.rank-1} but got ${e}`)}),t.rank<=1)return t.clone();let o={x:t},n={perm:e};return E.runKernel(Mn,o,n)}var Ue=S({transpose_:lV});function uV(r,e,t){let o=k(r,"labels","confusionMatrix"),n=k(e,"predictions","confusionMatrix");T(t==null||t>0&&Number.isInteger(t),()=>`If provided, numClasses must be a positive integer, but got ${t}`),T(o.rank===1,()=>`Expected the rank of labels to be 1, but got ${o.rank}`),T(n.rank===1,()=>`Expected the rank of predictions to be 1, but got ${n.rank}`),T(o.shape[0]===n.shape[0],()=>`Mismatch in the number of examples: ${o.shape[0]} vs. ${n.shape[0]}. Labels and predictions should have the same number of elements.`),T(t>0&&Number.isInteger(t),()=>`numClasses is required to be a positive integer, but got ${t}`);let s=Is(oe(o,"int32"),t),a=Is(oe(n,"int32"),t),i=Ue(s),l=We(i,a);return oe(l,"int32")}var cV=S({confusionMatrix_:uV});var tg={};et(tg,{fromPixels:()=>fV,toPixels:()=>mV});function Jb(r,e,t){if(To(r),e!=null&&e.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let o=kr(r,t);if(o.length!==3&&o.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Gr(r,e,o,t)}var jc;function pV(r,e=3){if(e>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let t=!1,o=!1,n=!1,s=!1,a=!1,i=!1;if(r.data instanceof Uint8Array)t=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)o=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)n=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)a=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)i=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(n){let d=2;if(n&&r.readyState element.")}if(Mc(Oc,E.backendName)!=null){let d={pixels:r},h={numChannels:e};return E.runKernel(Oc,d,h)}let[u,c]=n?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;a?p=r.getContext("2d").getImageData(0,0,u,c).data:o||t?p=r.data:(s||n||i)&&(jc==null&&(jc=document.createElement("canvas").getContext("2d")),jc.canvas.width=u,jc.canvas.height=c,jc.drawImage(r,0,0,u,c),p=jc.getImageData(0,0,u,c).data);let m;if(e===4)m=new Int32Array(p);else{let d=u*c;m=new Int32Array(d*e);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(t.dtype!=="float32"&&t.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${t.dtype}. Please use float32 or int32 tensors.`);let a=await t.data(),i=t.dtype==="float32"?255:1,l=new Uint8ClampedArray(n*o*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(t.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*i,c[1]=f*i,c[2]=f*i):c[m]=f*i}let p=u*4;l[p+0]=Math.round(c[0]),l[p+1]=Math.round(c[1]),l[p+2]=Math.round(c[2]),l[p+3]=Math.round(c[3])}if(e!=null){e.width=n,e.height=o;let u=e.getContext("2d"),c=new ImageData(l,n,o);u.putImageData(c,0,0)}return t!==r&&t.dispose(),l}var fV=S({fromPixels_:pV});var rg={};et(rg,{prepareAndValidate:()=>gN});function gN(r,e){let t=r.shape.length,o=e.shape.length;if(t<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${t}.`);if(o<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${o}.`);if(e.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.shape[o-1]>t)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${e.shape[o-1]} vs. ${t}`);if(ft(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let n=e.shape,s=n[n.length-1],a=1;for(let p=0;pp/u),1].slice(0,s);return[l,a,u,c]}var og={};et(og,{calculateShapes:()=>xN,validateInput:()=>ng,validateUpdateShape:()=>Qb});function Qb(r,e,t){let o=e.rank>1?e.shape[e.rank-1]:1,n=e.rank>1?e.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${t.shape}, indices.shape: ${e.shape}, shape: ${r}, sliceDim: ${o}, and batchDim: ${n}.`;if(t.rank1?e.shape[o-1]:1,s=t.length,a=1;for(let p=n;pdV,computeFlatOffset:()=>gV,computeOutShape:()=>yN,getNormalizedAxes:()=>SN,isSliceContinous:()=>hV,maskToAxes:()=>sg,parseSliceParams:()=>e_,sliceInfo:()=>xV,startForAxis:()=>IN,startIndicesWithElidedDims:()=>kN,stopForAxis:()=>NN,stopIndicesWithElidedDims:()=>vN,stridesForAxis:()=>CN,stridesWithElidedDims:()=>bN});function dV(r,e,t){let o=r.shape.length;T(o===e.length,()=>`Error in slice${o}D: Length of begin ${e} must match the rank of the array (${o}).`),T(o===t.length,()=>`Error in slice${o}D: Length of size ${t} must match the rank of the array (${o}).`);for(let n=0;n`Error in slice${o}D: begin[${n}] + size[${n}] (${e[n]+t[n]}) would overflow input.shape[${n}] (${r.shape[n]})`)}function sg(r){let e=[],t=0;for(;r>0;)r&1&&e.push(t),r/=2,t++;return e}function yN(r,e,t){let o=[];for(let n=0;n0){let f=e[0],d=t+1;c=kN(a,f,d,o,r),p=vN(i,f,d,n,r),m=bN(s,f,d,r)}else for(let f=0;f-1)s[i]=0;else{let l=_N(e,t,i),u=o[l];r&1<-1)s[i]=Number.MAX_SAFE_INTEGER;else{let l=_N(e,t,i),u=o[l];r&1<0?a=Number.MIN_SAFE_INTEGER:a=Number.MAX_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),a=Ec(0,a,l-1),a}function NN(r,e,t,o,n,s){let a=e[n],i=t[n]||1;(r&1<0?a=Number.MAX_SAFE_INTEGER:a=Number.MIN_SAFE_INTEGER);let l=o[n];return a<0&&(a+=l),i>0?a=Ec(0,a,l):a=Ec(-1,a,l-1),a}function hV(r,e,t){let o=t.length;for(let n=0;n1){o=n;break}for(let n=o+1;n0||t[n]!==r[n])return!1;return!0}function gV(r,e){let t=r.length>0?r[r.length-1]:1;for(let o=0;o{T(a!==-1,()=>"slice() does not support negative begin indexing.")});let s;return t==null?s=new Array(n).fill(-1):typeof t=="number"?s=[t,...new Array(n-1).fill(-1)]:t.lengtha>=0?a:(T(a===-1,()=>`Negative size values should be exactly -1 but got ${a} for the slice() size at index ${i}.`),r.shape[i]-o[i])),[o,s]}function xV(r,e,t,o,n,s,a,i,l){let u=e.slice(),c=t.slice(),p=o;o==null&&(p=new Array(u.length));let m=sg(a);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(a!==0&&i!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(a!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let f=r.length-u.length,d=sg(i),h=r.slice();d.forEach(A=>{u[A]=0,c[A]=1,h.splice(A,0,1)});let{begin:g,end:x,strides:b}=SN(h,m,f,u,c,p,n,s,a);u=g,c=x,p=b;let _=sg(l);_.forEach(A=>{c[A]=u[A]+1,p[A]=1});let w=yN(u,c,p),v=w.filter((A,R)=>_.indexOf(R)===-1);return{nonStrided:p.every(A=>A===1),$begin:u,$end:c,$strides:p,size:w,newShape:h,outShape:v}}var J={};et(J,{Serializable:()=>ig,SerializationMap:()=>ka,registerClass:()=>eo});var ig=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},ka=class{constructor(){this.classNameMap={}}static getMap(){return ka.instance==null&&(ka.instance=new ka),ka.instance}static register(e){ka.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function eo(r){T(r.className!=null,()=>"Class being registered does not have the static className property defined."),T(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),T(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),ka.register(r)}var TN={};et(TN,{TEST_EPSILON_FLOAT16:()=>EN,encodeStrings:()=>AN,expectArrayBuffersEqual:()=>CV,expectArraysClose:()=>bV,expectArraysEqual:()=>wV,expectNumbersClose:()=>kV,expectPromiseToFail:()=>_V,expectValuesInRange:()=>vV,testEpsilon:()=>t_});var yV=.001,EN=.1;function bV(r,e,t){return t==null&&(t=t_()),r_(r,e,(o,n)=>o_(o,n,t))}function t_(){return E.backend.floatPrecision()===32?yV:EN}function r_(r,e,t){let o=!0;if((rr(r)||rr(e))&&(o=!1),rr(r)&&rr(e)&&(o=!0),o){let a=r.constructor.name,i=e.constructor.name;if(a!==i)throw new Error(`Arrays are of different type. Actual: ${a}. Expected: ${i}`)}if(Array.isArray(r)&&Array.isArray(e)){let a=kr(r),i=kr(e);if(!Vr(a,i))throw new Error(`Arrays have different shapes. Actual: [${a}]. Expected: [${i}]`)}let n=rr(r)?r:as(r),s=rr(e)?e:as(e);if(n.length!==s.length)throw new Error(`Arrays have different lengths actual: ${n.length} vs expected: ${s.length}. Actual: ${n}. Expected: ${s}.`);for(let a=0;ae.fail(),()=>e())}function gV(r,e){let t=typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[e]:e;return ns(r)||ns(r[0])||ns(e)||ns(e[0])?Zb(r,t,(o,n)=>o==n):Zb(r,e,(o,n)=>Jb(o,n,0))}function xV(r,e,t){if(t==null&&(t=Yb()),!Jb(r,e,t))throw new Error(`Numbers differ: actual === ${r}, expected === ${e}`)}function Jb(r,e,t){return!isFinite(r)&&!isFinite(e)?!0:!(isNaN(r)||isNaN(e)||Math.abs(r-e)>t)}function yV(r,e,t){for(let o=0;ot)throw new Error(`Value out of range:${r[o]} low: ${e}, high: ${t}`)}function bV(r,e){expect(new Float32Array(r)).toEqual(new Float32Array(e))}function SN(r){for(let e=0;et.dispose())}function At(r){return E.keep(r)}function IV(r){return E.time(r)}function TN(r){return E.setBackend(r)}function NV(){return E.ready()}function SV(){return E.backendName}function TV(r){E.removeBackend(r)}function EV(r){return E.findBackend(r)}function AV(r){return E.findBackendFactory(r)}function yu(r,e,t=1){return E.registerBackend(r,e,t)}function e_(){return E.backend}function DV(r,e){G().setPlatform(r,e)}function $V(r,e){let t=k(r,"a","add"),o=k(e,"b","add");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(xo,n)}var Q=S({add_:$V});function RV(r,e){let t=k(r,"a","floorDiv"),o=k(e,"b","floorDiv");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(rn,n)}var bu=S({floorDiv_:RV});function FV(r,e){let t=k(r,"a","div"),o=k(e,"b","div");if([t,o]=Ge(t,o),t.dtype==="int32"&&o.dtype==="int32")return bu(t,o);let n={a:t,b:o},s={};return E.runKernel(Qo,n,s)}var de=S({div_:FV});function OV(r,e){let t=k(r,"a","mul"),o=k(e,"b","mul");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(dn,n)}var O=S({mul_:OV});function PV(r){let e=k(r,"x","abs");if(e.dtype==="complex64"){let t={x:e};return E.runKernel(ia,t)}else{let t={x:e};return E.runKernel(ss,t)}}var Tt=S({abs_:PV});function MV(r){let t={x:k(r,"x","acos")};return E.runKernel(qs,t)}var vm=S({acos_:MV});function LV(r){let t={x:k(r,"x","acosh")};return E.runKernel(Ks,t)}var Cm=S({acosh_:LV});function zV(r){T(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),T(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let e=r.map((n,s)=>k(n,`tensors${s}`,"addN")),t=e[0];e.forEach(n=>{if(n.dtype!==t.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),e.forEach(n=>{if(!Vr(n.shape,t.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let o=e;return E.runKernel(Uo,o)}var t_=S({addN_:zV});function BV(r,e=null,t=!1){let n={x:k(r,"x","all","bool")},s={axis:e,keepDims:t};return E.runKernel(Vl,n,s)}var _u=S({all_:BV});function VV(r,e=null,t=!1){let n={x:k(r,"x","any","bool")},s={axis:e,keepDims:t};return E.runKernel(Gl,n,s)}var nl=S({any_:VV});function GV(r,e=0){let o={x:k(r,"x","argMax")},n={axis:e};return E.runKernel(jo,o,n)}var sl=S({argMax_:GV});function WV(r,e=0){let o={x:k(r,"x","argMin")},n={axis:e};return E.runKernel(oa,o,n)}var Im=S({argMin_:WV});function UV(r){let t={x:k(r,"x","asin")};return E.runKernel(Xs,t)}var Nm=S({asin_:UV});function jV(r){let t={x:k(r,"x","asinh")};return E.runKernel(Ys,t)}var Sm=S({asinh_:jV});function HV(r){let t={x:k(r,"x","atan")};return E.runKernel(Zs,t)}var Tm=S({atan_:HV});function qV(r,e){let t=k(r,"a","atan2"),o=k(e,"b","atan2");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(Qs,n)}var Em=S({atan2_:qV});function KV(r){let t={x:k(r,"x","atanh")};return E.runKernel(Js,t)}var Am=S({atanh_:KV});function XV(r,e,t,o,n="NHWC",s){let a=r[3],i=[...e,a],l=EN(n);return wu(r,i,t,s,o,null,null,l)}function r_(r,e,t,o,n,s,a="channelsLast"){let[i,l]=og(e),u;if(a==="channelsLast")u=[i,l,r[3],r[3]];else if(a==="channelsFirst")u=[i,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return wu(r,u,t,o,n,s,!1,a)}function YV(r,e,t,o,n,s,a="NDHWC"){let[i,l,u]=o_(e),c,p;if(a==="NDHWC")p="channelsLast",c=[i,l,u,r[4],r[4]];else if(a==="NCDHW")p="channelsFirst",c=[i,l,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return AN(r,c,t,o,n,!1,p,s)}function wu(r,e,t,o,n,s,a=!1,i="channelsLast"){let[l,u,c,p]=[-1,-1,-1,-1];if(i==="channelsLast")[l,u,c,p]=r;else if(i==="channelsFirst")[l,p,u,c]=r;else throw new Error(`Unknown dataFormat ${i}`);let[m,f,,d]=e,[h,g]=og(t),[x,b]=og(o),_=Hc(m,x),w=Hc(f,b),{padInfo:v,outHeight:$,outWidth:A}=ZV(n,u,c,h,g,_,w,s,i),R=a?d*p:d,M;return i==="channelsFirst"?M=[l,R,$,A]:i==="channelsLast"&&(M=[l,$,A,R]),{batchSize:l,dataFormat:i,inHeight:u,inWidth:c,inChannels:p,outHeight:$,outWidth:A,outChannels:R,padInfo:v,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:_,effectiveFilterWidth:w,dilationHeight:x,dilationWidth:b,inShape:r,outShape:M,filterShape:e}}function AN(r,e,t,o,n,s=!1,a="channelsLast",i){let[l,u,c,p,m]=[-1,-1,-1,-1,-1];if(a==="channelsLast")[l,u,c,p,m]=r;else if(a==="channelsFirst")[l,m,u,c,p]=r;else throw new Error(`Unknown dataFormat ${a}`);let[f,d,h,,g]=e,[x,b,_]=o_(t),[w,v,$]=o_(o),A=Hc(f,w),R=Hc(d,v),M=Hc(h,$),{padInfo:z,outDepth:W,outHeight:U,outWidth:q}=JV(n,u,c,p,x,b,_,A,R,M,i),Z=s?g*m:g,X;return a==="channelsFirst"?X=[l,Z,W,U,q]:a==="channelsLast"&&(X=[l,W,U,q,Z]),{batchSize:l,dataFormat:a,inDepth:u,inHeight:c,inWidth:p,inChannels:m,outDepth:W,outHeight:U,outWidth:q,outChannels:Z,padInfo:z,strideDepth:x,strideHeight:b,strideWidth:_,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:R,effectiveFilterWidth:M,dilationDepth:w,dilationHeight:v,dilationWidth:$,inShape:r,outShape:X,filterShape:e}}function QV(r,e,t,o,n){o==null&&(o=n_(r,e,t));let s=r[0],a=r[1],i=ku((s-e+2*o)/t+1,n),l=ku((a-e+2*o)/t+1,n);return[i,l]}function eG(r,e,t,o,n,s){n==null&&(n=n_(r,e,o));let a=r[0],i=r[1],l=r[2],u=ku((a-e+2*n)/o+1,s),c=ku((i-e+2*n)/o+1,s),p=ku((l-e+2*n)/o+1,s);return[u,c,p,t]}function n_(r,e,t,o=1){let n=Hc(e,o);return Math.floor((r[0]*(t-1)-t+n)/2)}function og(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function o_(r){return typeof r=="number"?[r,r,r]:r}function Hc(r,e){return e<=1?r:r+(r-1)*(e-1)}function ZV(r,e,t,o,n,s,a,i,l){let u,c,p;if(typeof r=="number"){u={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=QV([e,t],s,o,r,i);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(e/o),p=Math.ceil(t/n);let m=Math.max(0,(c-1)*o+s-e),f=Math.max(0,(p-1)*n+a-t),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;u={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((e-s+1)/o),p=Math.ceil((t-a+1)/n);else if(typeof r=="object"){let m=l==="channelsLast"?r[1][0]:r[2][0],f=l==="channelsLast"?r[1][1]:r[2][1],d=l==="channelsLast"?r[2][0]:r[3][0],h=l==="channelsLast"?r[2][1]:r[3][1];u={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=ku((e-s+m+f)/o+1,i),p=ku((t-a+d+h)/n+1,i)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:u,outHeight:c,outWidth:p}}function JV(r,e,t,o,n,s,a,i,l,u,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=eG([e,t,o,1],i,1,n,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(e/n),f=Math.ceil(t/s),d=Math.ceil(o/a);let h=(m-1)*n+i-e,g=(f-1)*s+l-t,x=(d-1)*a+u-o,b=Math.floor(h/2),_=h-b,w=Math.floor(g/2),v=g-w,$=Math.floor(x/2),A=x-$;p={top:w,bottom:v,left:$,right:A,front:b,back:_,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((e-i+1)/n),f=Math.ceil((t-l+1)/s),d=Math.ceil((o-u+1)/a);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function ku(r,e){if(!e)return Math.trunc(r);switch(e){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${e}`)}}function Ro(r){let[e,t,o]=og(r);return e===1&&t===1&&o===1}function yr(r,e){return Ro(r)||Ro(e)}function EN(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function tG(r,e){let o={x:k(r,"x","reshape","string_or_numeric")},n={shape:e};return E.runKernel(fs,o,n)}var L=S({reshape_:tG});function rG(r,e,t,o,n){let s=k(r,"x","avgPool","float32"),a=1;T(yr(t,a),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`);let i=s,l=!1;s.rank===3&&(l=!0,i=L(s,[1,s.shape[0],s.shape[1],s.shape[2]])),T(i.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`),n!=null&&T(st(o),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=E.runKernel(Ho,u,c);return p=oe(p,s.dtype),l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var va=S({avgPool_:rG});function oG(r,e,t,o,n,s="NDHWC"){let a=k(r,"x","avgPool3d","float32"),i=a,l=!1;a.rank===4&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),T(i.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${i.rank}.`),T(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&T(st(o),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=E.runKernel(na,u,c);return p=oe(p,i.dtype),l?L(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Dm=S({avgPool3d_:oG});function nG(r,e=0){T(r.length>=1,()=>"Pass at least one tensor to concat");let t=ya(r,"tensors","concat","string_or_numeric");if(t[0].dtype==="complex64"&&t.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),t.length===1)return $o(t[0]);let o=t,n={axis:e};return E.runKernel(is,o,n)}var Je=S({concat_:nG});function sG(r){let t={x:k(r,"x","sigmoid")};return E.runKernel(Nn,t)}var Ur=S({sigmoid_:sG});function iG(r,e,t){let o=k(r,"x","slice","string_or_numeric");if(o.rank===0)throw new Error("Slicing scalar is not possible");let n={x:o},s={begin:e,size:t};return E.runKernel(hs,n,s)}var Fe=S({slice_:iG});function aG(r){let t={x:k(r,"x","tanh")};return E.runKernel($n,t)}var Mi=S({tanh_:aG});function lG(r,e,t,o,n,s){let a=k(r,"forgetBias","basicLSTMCell"),i=k(e,"lstmKernel","basicLSTMCell"),l=k(t,"lstmBias","basicLSTMCell"),u=k(o,"data","basicLSTMCell"),c=k(n,"c","basicLSTMCell"),p=k(s,"h","basicLSTMCell"),m=Je([u,p],1),f=We(m,i),d=Q(f,l),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Fe(d,[0,0],x),_=Fe(d,[0,g],x),w=Fe(d,[0,g*2],x),v=Fe(d,[0,g*3],x),$=Q(O(Ur(b),Mi(_)),O(c,Ur(Q(a,w)))),A=O(Mi($),Ur(v));return[$,A]}var uG=S({basicLSTMCell_:lG});function cG(r,e,t){let o=k(r,"x","batchToSpaceND"),n=e.reduce((i,l)=>i*l);T(o.rank>=1+e.length,()=>`input rank is ${o.rank} but should be > than blockShape.length ${e.length}`),T(t.length===e.length,()=>`crops.length is ${t.length} but should be equal to blockShape.length ${e.length}`),T(o.shape[0]%n==0,()=>`input tensor batch is ${o.shape[0]} but is not divisible by the product of the elements of blockShape ${e.join(" * ")} === ${n}`);let s={x:o},a={blockShape:e,crops:t};return E.runKernel(sa,s,a)}var Ca=S({batchToSpaceND_:cG});function DN(r){let e;return r.rank===0||r.rank===1?e=L(r,[1,1,1,r.size]):r.rank===2?e=L(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?e=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]):e=r,e}function pG(r,e,t,o,n,s){s==null&&(s=.001);let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;o!=null&&(c=k(o,"offset","batchNorm")),T(i.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),T(c==null||i.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),T(u==null||i.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:DN(a),scale:u,offset:c,mean:i,variance:l},f={varianceEpsilon:s},d=E.runKernel(on,m,f);return L(d,a.shape)}var On=S({batchNorm_:pG});function mG(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),T(a.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`),T(i.rank===2||i.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${i.rank}.`),T(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&T(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),c!=null&&T(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),On(a,i,l,c,u,s)}var s_=S({batchNorm2d_:mG});function fG(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),T(a.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`),T(i.rank===3||i.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${i.rank}.`),T(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&T(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),c!=null&&T(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),On(a,i,l,c,u,s)}var i_=S({batchNorm3d_:fG});function dG(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),T(a.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`),T(i.rank===4||i.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${i.rank}.`),T(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&T(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),c!=null&&T(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),On(a,i,l,c,u,s)}var a_=S({batchNorm4d_:dG});function hG(r,e,t){let o=k(r,"x","bincount"),n=k(e,"weights","bincount");T(o.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${o.dtype}`),T(t>=0,()=>`size must be non-negative, but got ${t}.`),T(n.size===o.size||n.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${o.shape}, weights shape: ${n.shape}.`);let s={x:o,weights:n},a={size:t};return E.runKernel(jl,s,a)}var l_=S({bincount_:hG});function gG(r,e){let t=k(r,"broadcastTo","x"),o=t.shape;if(e.some(u=>!(u>0)||u%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${e}].`);if(e.lengtht.rank){let u=t.shape.slice();for(;u.length=0;u--)if(n[u]===e[u])s[u]=1;else if(t.shape[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${e}].`);if(s.map((u,c)=>u>1?c:-1).filter(u=>u>=0).length===0)return $o(t);let i={x:t},l={reps:s};return E.runKernel(yo,i,l)}var il=S({broadcastTo_:gG});function xG(r){let t={x:k(r,"x","ceil")};return E.runKernel(ei,t)}var $m=S({ceil_:xG});function yG(r,e,t){let o=k(r,"x","clipByValue");T(e<=t,()=>`Error in clip: min (${e}) must be less than or equal to max (${t}).`);let n={x:o},s={clipValueMin:e,clipValueMax:t};return E.runKernel(Ao,n,s)}var nr=S({clipByValue_:yG});function bG(r){return Je(r,0)}var u_=S({concat1d_:bG});function _G(r,e){return Je(r,e)}var c_=S({concat2d_:_G});function wG(r,e){return Je(r,e)}var p_=S({concat3d_:wG});function kG(r,e){return Je(r,e)}var m_=S({concat4d_:kG});function vG(r,e,t,o,n="NHWC",s=[1,1],a){let i=k(r,"x","conv2d"),l=k(e,"filter","conv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),T(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),T(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),a!=null&&T(st(o),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p=n==="NHWC"?u.shape[3]:u.shape[1];T(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),T(yr(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`);let m={x:u,filter:l},f={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},d=E.runKernel(Ko,m,f);return c?L(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var jr=S({conv2d_:vG});function CG(r,e,t,o,n="NWC",s=1,a){let i=k(r,"x","conv1d"),l=k(e,"filter","conv1d"),u=i,c=!1;i.rank===2&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1]])),T(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),T(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),a!=null&&T(st(o),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),T(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),T(yr(t,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${t} and dilation '${s}'`),T(n==="NWC",()=>`Error in conv1d: got dataFormat of ${n} but only NWC is currently supported.`);let p=L(l,[1,l.shape[0],l.shape[1],l.shape[2]]),m=L(u,[u.shape[0],1,u.shape[1],u.shape[2]]),g=jr(m,p,[1,t],o,"NHWC",[1,s],a);return c?L(g,[g.shape[2],g.shape[3]]):L(g,[g.shape[0],g.shape[2],g.shape[3]])}var vu=S({conv1d_:CG});function IG(r,e,t,o,n,s="NHWC",a){T(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let i=r,l=e,u=!1;e.rank===3&&(u=!0,l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]),i=[1,r[0],r[1],r[2]]),T(i.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${i.length}.`),T(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),T(t.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${t.rank}`);let c=s==="NHWC"?i[3]:i[1],p=s==="NHWC"?l.shape[3]:l.shape[1];T(c===t.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${t.shape[2]}.`),T(p===t.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${t.shape[3]}.`),a!=null&&T(st(n),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let m={dy:l,filter:t},f={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,inputShape:i},d=E.runKernel(Xo,m,f);return u?L(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var qc=S({conv2DBackpropInput_:IG});function NG(r,e,t,o,n,s){let a=k(r,"x","conv2dTranspose"),i=k(e,"filter","conv2dTranspose");return qc(t,a,i,o,n,"NHWC",s)}var Cu=S({conv2dTranspose_:NG});function SG(r,e,t,o,n="NDHWC",s=[1,1,1]){let a=k(r,"x","conv3d"),i=k(e,"filter","conv3d"),l=a,u=!1;a.rank===4&&(u=!0,l=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),T(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),T(i.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${i.rank}.`),T(l.shape[4]===i.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${i.shape[3]}.`),T(yr(t,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),T(n==="NDHWC",()=>`Error in conv3d: got dataFormat of ${n} but only NDHWC is currently supported.`);let c={x:l,filter:i},p={strides:t,pad:o,dataFormat:n,dilations:s},m=E.runKernel(aa,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Rm=S({conv3d_:SG});function TG(r,e,t,o,n){T(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let s=r,a=e,i=!1;e.rank===4&&(i=!0,a=L(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let l=s[4],u=a.shape[4];T(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),T(a.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`),T(t.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${t.rank}`),T(l===t.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${t.shape[3]}.`),T(u===t.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${t.shape[4]}.`);let c={dy:a,filter:t},p={pad:n,strides:o,inputShape:s},m=E.runKernel(Xl,c,p);return i?L(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var ng=S({conv3DBackpropInput_:TG});function EG(r,e,t,o,n){let s=k(r,"x","conv3dTranspose"),a=k(e,"filter","conv3dTranspose");return ng(t,s,a,o,n)}var AG=S({conv3dTranspose_:EG});function DG(r){let t={x:k(r,"x","cos")};return E.runKernel(Yo,t)}var Ia=S({cos_:DG});function $G(r){let t={x:k(r,"x","cosh")};return E.runKernel(ti,t)}var Iu=S({cosh_:$G});function RG(r,e=0,t=!1,o=!1){let s={x:k(r,"x","cumsum")},a={axis:e,exclusive:t,reverse:o};return E.runKernel(Zo,s,a)}var Nu=S({cumsum_:RG});function FG(r,e,t,o=!1){let n=k(r,"x","denseBincount"),s=k(e,"weights","denseBincount");T(n.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${n.dtype}`),T(n.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${n.rank}.`),T(t>=0,()=>`size must be non-negative, but got ${t}.`),T(s.size===n.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${n.shape}, weights shape: ${s.shape}.`);let a={x:n,weights:s},i={size:t,binaryOutput:o};return E.runKernel(Yl,a,i)}var f_=S({denseBincount_:FG});function OG(r,e,t="NHWC"){let o=k(r,"x","depthToSpace"),n=t==="NHWC"?o.shape[1]:o.shape[2],s=t==="NHWC"?o.shape[2]:o.shape[3],a=t==="NHWC"?o.shape[3]:o.shape[1];T(n*e>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}}function _V(r,e){r().then(()=>e.fail(),()=>e())}function wV(r,e){let t=typeof e=="string"||typeof e=="number"||typeof e=="boolean"?[e]:e;return ls(r)||ls(r[0])||ls(e)||ls(e[0])?r_(r,t,(o,n)=>o==n):r_(r,e,(o,n)=>o_(o,n,0))}function kV(r,e,t){if(t==null&&(t=t_()),!o_(r,e,t))throw new Error(`Numbers differ: actual === ${r}, expected === ${e}`)}function o_(r,e,t){return!isFinite(r)&&!isFinite(e)?!0:!(isNaN(r)||isNaN(e)||Math.abs(r-e)>t)}function vV(r,e,t){for(let o=0;ot)throw new Error(`Value out of range:${r[o]} low: ${e}, high: ${t}`)}function CV(r,e){expect(new Float32Array(r)).toEqual(new Float32Array(e))}function AN(r){for(let e=0;et.dispose())}function Dt(r){return E.keep(r)}function AV(r){return E.time(r)}function DN(r){return E.setBackend(r)}function DV(){return E.ready()}function $V(){return E.backendName}function RV(r){E.removeBackend(r)}function FV(r){return E.findBackend(r)}function OV(r){return E.findBackendFactory(r)}function bu(r,e,t=1){return E.registerBackend(r,e,t)}function s_(){return E.backend}function PV(r,e){U().setPlatform(r,e)}function MV(r,e){let t=k(r,"a","add"),o=k(e,"b","add");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(xo,n)}var Q=S({add_:MV});function LV(r,e){let t=k(r,"a","floorDiv"),o=k(e,"b","floorDiv");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(an,n)}var _u=S({floorDiv_:LV});function zV(r,e){let t=k(r,"a","div"),o=k(e,"b","div");if([t,o]=Ge(t,o),t.dtype==="int32"&&o.dtype==="int32")return _u(t,o);let n={a:t,b:o},s={};return E.runKernel(on,n,s)}var de=S({div_:zV});function BV(r,e){let t=k(r,"a","mul"),o=k(e,"b","mul");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(yn,n)}var O=S({mul_:BV});function VV(r){let e=k(r,"x","abs");if(e.dtype==="complex64"){let t={x:e};return E.runKernel(ia,t)}else{let t={x:e};return E.runKernel(us,t)}}var Tt=S({abs_:VV});function GV(r){let t={x:k(r,"x","acos")};return E.runKernel(Ks,t)}var Nm=S({acos_:GV});function WV(r){let t={x:k(r,"x","acosh")};return E.runKernel(Xs,t)}var Sm=S({acosh_:WV});function UV(r){T(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),T(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let e=r.map((n,s)=>k(n,`tensors${s}`,"addN")),t=e[0];e.forEach(n=>{if(n.dtype!==t.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),e.forEach(n=>{if(!Vr(n.shape,t.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let o=e;return E.runKernel(qo,o)}var i_=S({addN_:UV});function jV(r,e=null,t=!1){let n={x:k(r,"x","all","bool")},s={axis:e,keepDims:t};return E.runKernel(Vl,n,s)}var wu=S({all_:jV});function HV(r,e=null,t=!1){let n={x:k(r,"x","any","bool")},s={axis:e,keepDims:t};return E.runKernel(Gl,n,s)}var nl=S({any_:HV});function qV(r,e=0){let o={x:k(r,"x","argMax")},n={axis:e};return E.runKernel(Ko,o,n)}var sl=S({argMax_:qV});function KV(r,e=0){let o={x:k(r,"x","argMin")},n={axis:e};return E.runKernel(oa,o,n)}var Tm=S({argMin_:KV});function XV(r){let t={x:k(r,"x","asin")};return E.runKernel(Ys,t)}var Em=S({asin_:XV});function YV(r){let t={x:k(r,"x","asinh")};return E.runKernel(Zs,t)}var Am=S({asinh_:YV});function ZV(r){let t={x:k(r,"x","atan")};return E.runKernel(Js,t)}var Dm=S({atan_:ZV});function JV(r,e){let t=k(r,"a","atan2"),o=k(e,"b","atan2");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(ei,n)}var $m=S({atan2_:JV});function QV(r){let t={x:k(r,"x","atanh")};return E.runKernel(Qs,t)}var Rm=S({atanh_:QV});function eG(r,e,t,o,n="NHWC",s){let a=r[3],i=[...e,a],l=$N(n);return ku(r,i,t,s,o,null,null,l)}function a_(r,e,t,o,n,s,a="channelsLast"){let[i,l]=lg(e),u;if(a==="channelsLast")u=[i,l,r[3],r[3]];else if(a==="channelsFirst")u=[i,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return ku(r,u,t,o,n,s,!1,a)}function tG(r,e,t,o,n,s,a="NDHWC"){let[i,l,u]=l_(e),c,p;if(a==="NDHWC")p="channelsLast",c=[i,l,u,r[4],r[4]];else if(a==="NCDHW")p="channelsFirst",c=[i,l,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${a}`);return RN(r,c,t,o,n,!1,p,s)}function ku(r,e,t,o,n,s,a=!1,i="channelsLast"){let[l,u,c,p]=[-1,-1,-1,-1];if(i==="channelsLast")[l,u,c,p]=r;else if(i==="channelsFirst")[l,p,u,c]=r;else throw new Error(`Unknown dataFormat ${i}`);let[m,f,,d]=e,[h,g]=lg(t),[x,b]=lg(o),_=qc(m,x),w=qc(f,b),{padInfo:v,outHeight:$,outWidth:A}=rG(n,u,c,h,g,_,w,s,i),R=a?d*p:d,M;return i==="channelsFirst"?M=[l,R,$,A]:i==="channelsLast"&&(M=[l,$,A,R]),{batchSize:l,dataFormat:i,inHeight:u,inWidth:c,inChannels:p,outHeight:$,outWidth:A,outChannels:R,padInfo:v,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:_,effectiveFilterWidth:w,dilationHeight:x,dilationWidth:b,inShape:r,outShape:M,filterShape:e}}function RN(r,e,t,o,n,s=!1,a="channelsLast",i){let[l,u,c,p,m]=[-1,-1,-1,-1,-1];if(a==="channelsLast")[l,u,c,p,m]=r;else if(a==="channelsFirst")[l,m,u,c,p]=r;else throw new Error(`Unknown dataFormat ${a}`);let[f,d,h,,g]=e,[x,b,_]=l_(t),[w,v,$]=l_(o),A=qc(f,w),R=qc(d,v),M=qc(h,$),{padInfo:V,outDepth:G,outHeight:W,outWidth:q}=oG(n,u,c,p,x,b,_,A,R,M,i),Z=s?g*m:g,X;return a==="channelsFirst"?X=[l,Z,G,W,q]:a==="channelsLast"&&(X=[l,G,W,q,Z]),{batchSize:l,dataFormat:a,inDepth:u,inHeight:c,inWidth:p,inChannels:m,outDepth:G,outHeight:W,outWidth:q,outChannels:Z,padInfo:V,strideDepth:x,strideHeight:b,strideWidth:_,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:R,effectiveFilterWidth:M,dilationDepth:w,dilationHeight:v,dilationWidth:$,inShape:r,outShape:X,filterShape:e}}function nG(r,e,t,o,n){o==null&&(o=u_(r,e,t));let s=r[0],a=r[1],i=vu((s-e+2*o)/t+1,n),l=vu((a-e+2*o)/t+1,n);return[i,l]}function sG(r,e,t,o,n,s){n==null&&(n=u_(r,e,o));let a=r[0],i=r[1],l=r[2],u=vu((a-e+2*n)/o+1,s),c=vu((i-e+2*n)/o+1,s),p=vu((l-e+2*n)/o+1,s);return[u,c,p,t]}function u_(r,e,t,o=1){let n=qc(e,o);return Math.floor((r[0]*(t-1)-t+n)/2)}function lg(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function l_(r){return typeof r=="number"?[r,r,r]:r}function qc(r,e){return e<=1?r:r+(r-1)*(e-1)}function rG(r,e,t,o,n,s,a,i,l){let u,c,p;if(typeof r=="number"){u={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=nG([e,t],s,o,r,i);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(e/o),p=Math.ceil(t/n);let m=Math.max(0,(c-1)*o+s-e),f=Math.max(0,(p-1)*n+a-t),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;u={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((e-s+1)/o),p=Math.ceil((t-a+1)/n);else if(typeof r=="object"){let m=l==="channelsLast"?r[1][0]:r[2][0],f=l==="channelsLast"?r[1][1]:r[2][1],d=l==="channelsLast"?r[2][0]:r[3][0],h=l==="channelsLast"?r[2][1]:r[3][1];u={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=vu((e-s+m+f)/o+1,i),p=vu((t-a+d+h)/n+1,i)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:u,outHeight:c,outWidth:p}}function oG(r,e,t,o,n,s,a,i,l,u,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=sG([e,t,o,1],i,1,n,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(e/n),f=Math.ceil(t/s),d=Math.ceil(o/a);let h=(m-1)*n+i-e,g=(f-1)*s+l-t,x=(d-1)*a+u-o,b=Math.floor(h/2),_=h-b,w=Math.floor(g/2),v=g-w,$=Math.floor(x/2),A=x-$;p={top:w,bottom:v,left:$,right:A,front:b,back:_,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((e-i+1)/n),f=Math.ceil((t-l+1)/s),d=Math.ceil((o-u+1)/a);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function vu(r,e){if(!e)return Math.trunc(r);switch(e){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${e}`)}}function Oo(r){let[e,t,o]=lg(r);return e===1&&t===1&&o===1}function yr(r,e){return Oo(r)||Oo(e)}function $N(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function iG(r,e){let o={x:k(r,"x","reshape","string_or_numeric")},n={shape:e};return E.runKernel(gs,o,n)}var L=S({reshape_:iG});function aG(r,e,t,o,n){let s=k(r,"x","avgPool","float32"),a=1;T(yr(t,a),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`);let i=s,l=!1;s.rank===3&&(l=!0,i=L(s,[1,s.shape[0],s.shape[1],s.shape[2]])),T(i.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${i.rank}.`),n!=null&&T(st(o),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=E.runKernel(Xo,u,c);return p=oe(p,s.dtype),l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var va=S({avgPool_:aG});function lG(r,e,t,o,n,s="NDHWC"){let a=k(r,"x","avgPool3d","float32"),i=a,l=!1;a.rank===4&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),T(i.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${i.rank}.`),T(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&T(st(o),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=E.runKernel(na,u,c);return p=oe(p,i.dtype),l?L(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Fm=S({avgPool3d_:lG});function uG(r,e=0){T(r.length>=1,()=>"Pass at least one tensor to concat");let t=ya(r,"tensors","concat","string_or_numeric");if(t[0].dtype==="complex64"&&t.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),t.length===1)return Ro(t[0]);let o=t,n={axis:e};return E.runKernel(cs,o,n)}var Je=S({concat_:uG});function cG(r){let t={x:k(r,"x","sigmoid")};return E.runKernel(An,t)}var Ur=S({sigmoid_:cG});function pG(r,e,t){let o=k(r,"x","slice","string_or_numeric");if(o.rank===0)throw new Error("Slicing scalar is not possible");let n={x:o},s={begin:e,size:t};return E.runKernel(ys,n,s)}var Fe=S({slice_:pG});function mG(r){let t={x:k(r,"x","tanh")};return E.runKernel(Pn,t)}var Mi=S({tanh_:mG});function fG(r,e,t,o,n,s){let a=k(r,"forgetBias","basicLSTMCell"),i=k(e,"lstmKernel","basicLSTMCell"),l=k(t,"lstmBias","basicLSTMCell"),u=k(o,"data","basicLSTMCell"),c=k(n,"c","basicLSTMCell"),p=k(s,"h","basicLSTMCell"),m=Je([u,p],1),f=We(m,i),d=Q(f,l),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Fe(d,[0,0],x),_=Fe(d,[0,g],x),w=Fe(d,[0,g*2],x),v=Fe(d,[0,g*3],x),$=Q(O(Ur(b),Mi(_)),O(c,Ur(Q(a,w)))),A=O(Mi($),Ur(v));return[$,A]}var dG=S({basicLSTMCell_:fG});function hG(r,e,t){let o=k(r,"x","batchToSpaceND"),n=e.reduce((i,l)=>i*l);T(o.rank>=1+e.length,()=>`input rank is ${o.rank} but should be > than blockShape.length ${e.length}`),T(t.length===e.length,()=>`crops.length is ${t.length} but should be equal to blockShape.length ${e.length}`),T(o.shape[0]%n==0,()=>`input tensor batch is ${o.shape[0]} but is not divisible by the product of the elements of blockShape ${e.join(" * ")} === ${n}`);let s={x:o},a={blockShape:e,crops:t};return E.runKernel(sa,s,a)}var Ca=S({batchToSpaceND_:hG});function FN(r){let e;return r.rank===0||r.rank===1?e=L(r,[1,1,1,r.size]):r.rank===2?e=L(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?e=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]):e=r,e}function gG(r,e,t,o,n,s){s==null&&(s=.001);let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;o!=null&&(c=k(o,"offset","batchNorm")),T(i.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),T(c==null||i.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),T(u==null||i.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:FN(a),scale:u,offset:c,mean:i,variance:l},f={varianceEpsilon:s},d=E.runKernel(ln,m,f);return L(d,a.shape)}var zn=S({batchNorm_:gG});function xG(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),T(a.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${a.rank}.`),T(i.rank===2||i.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${i.rank}.`),T(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&T(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),c!=null&&T(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),zn(a,i,l,c,u,s)}var c_=S({batchNorm2d_:xG});function yG(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),T(a.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${a.rank}.`),T(i.rank===3||i.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${i.rank}.`),T(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&T(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),c!=null&&T(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),zn(a,i,l,c,u,s)}var p_=S({batchNorm3d_:yG});function bG(r,e,t,o,n,s){let a=k(r,"x","batchNorm"),i=k(e,"mean","batchNorm"),l=k(t,"variance","batchNorm"),u;n!=null&&(u=k(n,"scale","batchNorm"));let c;return o!=null&&(c=k(o,"offset","batchNorm")),T(a.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${a.rank}.`),T(i.rank===4||i.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${i.rank}.`),T(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&T(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),c!=null&&T(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),zn(a,i,l,c,u,s)}var m_=S({batchNorm4d_:bG});function _G(r,e,t){let o=k(r,"x","bincount"),n=k(e,"weights","bincount");T(o.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${o.dtype}`),T(t>=0,()=>`size must be non-negative, but got ${t}.`),T(n.size===o.size||n.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${o.shape}, weights shape: ${n.shape}.`);let s={x:o,weights:n},a={size:t};return E.runKernel(jl,s,a)}var f_=S({bincount_:_G});function wG(r,e){let t=k(r,"broadcastTo","x"),o=t.shape;if(e.some(u=>!(u>0)||u%1!=0))throw new Error(`broadcastTo(): Invalid broadcast shape [${e}].`);if(e.lengtht.rank){let u=t.shape.slice();for(;u.length=0;u--)if(n[u]===e[u])s[u]=1;else if(t.shape[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${e}].`);if(s.map((u,c)=>u>1?c:-1).filter(u=>u>=0).length===0)return Ro(t);let i={x:t},l={reps:s};return E.runKernel(yo,i,l)}var il=S({broadcastTo_:wG});function kG(r){let t={x:k(r,"x","ceil")};return E.runKernel(Zo,t)}var Om=S({ceil_:kG});function vG(r,e,t){let o=k(r,"x","clipByValue");T(e<=t,()=>`Error in clip: min (${e}) must be less than or equal to max (${t}).`);let n={x:o},s={clipValueMin:e,clipValueMax:t};return E.runKernel(Ao,n,s)}var nr=S({clipByValue_:vG});function CG(r){return Je(r,0)}var d_=S({concat1d_:CG});function IG(r,e){return Je(r,e)}var h_=S({concat2d_:IG});function NG(r,e){return Je(r,e)}var g_=S({concat3d_:NG});function SG(r,e){return Je(r,e)}var x_=S({concat4d_:SG});function TG(r,e,t,o,n="NHWC",s=[1,1],a){let i=k(r,"x","conv2d"),l=k(e,"filter","conv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),T(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),T(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),a!=null&&T(st(o),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p=n==="NHWC"?u.shape[3]:u.shape[1];T(p===l.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${l.shape[2]}.`),T(yr(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`);let m={x:u,filter:l},f={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},d=E.runKernel(Jo,m,f);return c?L(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var jr=S({conv2d_:TG});function EG(r,e,t,o,n="NWC",s=1,a){let i=k(r,"x","conv1d"),l=k(e,"filter","conv1d"),u=i,c=!1;i.rank===2&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1]])),T(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),T(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),a!=null&&T(st(o),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),T(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),T(yr(t,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${t} and dilation '${s}'`),T(n==="NWC",()=>`Error in conv1d: got dataFormat of ${n} but only NWC is currently supported.`);let p=L(l,[1,l.shape[0],l.shape[1],l.shape[2]]),m=L(u,[u.shape[0],1,u.shape[1],u.shape[2]]),g=jr(m,p,[1,t],o,"NHWC",[1,s],a);return c?L(g,[g.shape[2],g.shape[3]]):L(g,[g.shape[0],g.shape[2],g.shape[3]])}var Cu=S({conv1d_:EG});function AG(r,e,t,o,n,s="NHWC",a){T(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let i=r,l=e,u=!1;e.rank===3&&(u=!0,l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]),i=[1,r[0],r[1],r[2]]),T(i.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${i.length}.`),T(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),T(t.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${t.rank}`);let c=s==="NHWC"?i[3]:i[1],p=s==="NHWC"?l.shape[3]:l.shape[1];T(c===t.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${t.shape[2]}.`),T(p===t.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${t.shape[3]}.`),a!=null&&T(st(n),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let m={dy:l,filter:t},f={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,inputShape:i},d=E.runKernel(Qo,m,f);return u?L(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Kc=S({conv2DBackpropInput_:AG});function DG(r,e,t,o,n,s){let a=k(r,"x","conv2dTranspose"),i=k(e,"filter","conv2dTranspose");return Kc(t,a,i,o,n,"NHWC",s)}var Iu=S({conv2dTranspose_:DG});function $G(r,e,t,o,n="NDHWC",s=[1,1,1]){let a=k(r,"x","conv3d"),i=k(e,"filter","conv3d"),l=a,u=!1;a.rank===4&&(u=!0,l=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),T(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),T(i.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${i.rank}.`),T(l.shape[4]===i.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${i.shape[3]}.`),T(yr(t,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),T(n==="NDHWC",()=>`Error in conv3d: got dataFormat of ${n} but only NDHWC is currently supported.`);let c={x:l,filter:i},p={strides:t,pad:o,dataFormat:n,dilations:s},m=E.runKernel(aa,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Pm=S({conv3d_:$G});function RG(r,e,t,o,n){T(r.length===e.rank,()=>`Length of inShape (${r.length}) and rank of dy (${e.rank}) must match`);let s=r,a=e,i=!1;e.rank===4&&(i=!0,a=L(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let l=s[4],u=a.shape[4];T(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),T(a.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${a.rank}`),T(t.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${t.rank}`),T(l===t.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${t.shape[3]}.`),T(u===t.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${t.shape[4]}.`);let c={dy:a,filter:t},p={pad:n,strides:o,inputShape:s},m=E.runKernel(Xl,c,p);return i?L(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var ug=S({conv3DBackpropInput_:RG});function FG(r,e,t,o,n){let s=k(r,"x","conv3dTranspose"),a=k(e,"filter","conv3dTranspose");return ug(t,s,a,o,n)}var OG=S({conv3dTranspose_:FG});function PG(r){let t={x:k(r,"x","cos")};return E.runKernel(en,t)}var Ia=S({cos_:PG});function MG(r){let t={x:k(r,"x","cosh")};return E.runKernel(ti,t)}var Nu=S({cosh_:MG});function LG(r,e=0,t=!1,o=!1){let s={x:k(r,"x","cumsum")},a={axis:e,exclusive:t,reverse:o};return E.runKernel(tn,s,a)}var Su=S({cumsum_:LG});function zG(r,e,t,o=!1){let n=k(r,"x","denseBincount"),s=k(e,"weights","denseBincount");T(n.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${n.dtype}`),T(n.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${n.rank}.`),T(t>=0,()=>`size must be non-negative, but got ${t}.`),T(s.size===n.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${n.shape}, weights shape: ${s.shape}.`);let a={x:n,weights:s},i={size:t,binaryOutput:o};return E.runKernel(Yl,a,i)}var y_=S({denseBincount_:zG});function BG(r,e,t="NHWC"){let o=k(r,"x","depthToSpace"),n=t==="NHWC"?o.shape[1]:o.shape[2],s=t==="NHWC"?o.shape[2]:o.shape[3],a=t==="NHWC"?o.shape[3]:o.shape[1];T(n*e>=0,()=>`Negative dimension size caused by overflow when multiplying ${n} and ${e} for depthToSpace with input shape ${o.shape}`),T(s*e>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${e} for depthToSpace with input shape - ${o.shape}`),T(a%(e*e)==0,()=>`Dimension size must be evenly divisible by ${e*e} but is ${a} for depthToSpace with input shape ${o.shape}`);let i={x:o},l={blockSize:e,dataFormat:t};return E.runKernel(oi,i,l)}var Fm=S({depthToSpace_:OG});function PG(r,e,t,o,n="NHWC",s=[1,1],a){let i=k(r,"x","depthwiseConv2d"),l=k(e,"filter","depthwiseConv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),T(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),T(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),T(u.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),a!=null&&T(st(o),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p={x:u,filter:l},m={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},f=E.runKernel(Jo,p,m);return c?L(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Cs=S({depthwiseConv2d_:PG});function MG(r){let t={x:k(r,"x","diag")};return E.runKernel(Ql,t)}var LG=S({diag_:MG});function zG(r,e,t,o,n=[1,1],s="NHWC"){let a=k(r,"x","dilation2d"),i=k(e,"filter","dilation2d");T(a.rank===3||a.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`),T(i.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${i.rank}.`),T(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=a,u=!1;a.rank===3&&(l=L(a,[1,a.shape[0],a.shape[1],a.shape[2]]),u=!0);let c={x:l,filter:i},p={strides:t,pad:o,dilations:n},m=E.runKernel(la,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Om=S({dilation2d_:zG});function BG(r,e){let t=r.length,o=[];for(let n=0;n1&&a===1&&o.unshift(s)}return o}function Ct(r,e){let t=[];for(let o=0;o1)&&t.unshift(s)}return t}function ze(r,e){let t=[],o=Math.max(r.length,e.length);for(let n=0;n"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&Nt(s.shape,l.shape,"Error in where: ");let u={condition:s,t:i,e:l};return E.runKernel(ds,u)}var Dt=S({where_:GG});function WG(r){let t={x:k(r,"x","zerosLike")};return E.runKernel(ys,t)}var Ie=S({zerosLike_:WG});function UG(r,e){let t=k(r,"a","div"),o=k(e,"b","div");[t,o]=Ge(t,o);let n=de(t,o),s=Ie(n),a=_o(o,s);return Dt(a,s,n)}var Pm=S({divNoNan_:UG});function jG(r,e){let t=k(r,"t1","dot"),o=k(e,"t2","dot");T((t.rank===1||t.rank===2)&&(o.rank===1||o.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${t.rank} and ${o.rank}.`);let n=t.rank===1?t.size:t.shape[1],s=o.rank===1?o.size:o.shape[0];if(T(n===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${n} and ${s}.`),t.rank===1&&o.rank===1){let a=L(t,[1,-1]),i=L(o,[-1,1]),l=We(a,i);return L(l,[])}else if(t.rank===1&&o.rank===2){let a=L(t,[1,-1]),i=L(o,[o.shape[0],o.shape[1]]),l=We(a,i);return L(l,[l.size])}else if(t.rank===2&&o.rank===1){let a=L(o,[-1,1]),i=We(t,a);return L(i,[i.size])}else{let a=L(o,[o.shape[0],o.shape[1]]);return We(t,a)}}var d_=S({dot_:jG});function HG(r){let t={x:k(r,"x","elu")};return E.runKernel(ni,t)}var Is=S({elu_:HG});function qG(r){let e=k(r,"x","erf");T(e.dtype==="int32"||e.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),e.dtype==="int32"&&(e=oe(e,"float32"));let t={x:e};return E.runKernel(si,t)}var Mm=S({erf_:qG});function KG(r){let t={x:k(r,"x","exp")};return E.runKernel(en,t)}var Xt=S({exp_:KG});function XG(r,e=0){let t=k(r,"x","expandDims","string_or_numeric");T(e<=t.rank,()=>"Axis must be <= rank of the tensor");let o={input:t},n={dim:e};return E.runKernel(as,o,n)}var sr=S({expandDims_:XG});function YG(r){let t={x:k(r,"x","expm1")};return E.runKernel(ai,t)}var Lm=S({expm1_:YG});function ZG(r,e){let t=k(r,"x","tile","string_or_numeric");T(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of reps ${e}.`);let o={x:t},n={reps:e};return E.runKernel(yo,o,n)}var Fo=S({tile_:ZG});function JG(r,e,t,o="float32"){e==null&&(e=r);let n=Ce([r,e],o),s=r<=e?r:e;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),T(st(e),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${e}.`);let a=s,i=!1;s.rank===3&&(i=!0,a=L(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:a},u={depthRadius:e,bias:t,alpha:o,beta:n},c=E.runKernel(ca,l,u);return i?L(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var zm=S({localResponseNormalization_:cW});function pW(r){let t={x:k(r,"x","log")};return E.runKernel(an,t)}var ir=S({log_:pW});function mW(r){let t={x:k(r,"x","log1p")};return E.runKernel(gi,t)}var Eu=S({log1p_:mW});function fW(r){return T(js(r),()=>"The f passed in grad(f) must be a function"),(e,t)=>{let o=k(e,"x","tf.grad","string_or_numeric"),n=t!=null?k(t,"dy","tf.grad"):null;return E.tidy(()=>{let{value:s,grads:a}=E.gradients(()=>r(o),[o],n);return n!=null&&Nt(s.shape,n.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),sg(a),a[0]})}}function dW(r){return T(js(r),()=>"The f passed in grads(f) must be a function"),(e,t)=>{T(Array.isArray(e),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let o=ya(e,"args","tf.grads","string_or_numeric"),n=t!=null?k(t,"dy","tf.grads"):null;return E.tidy(()=>{let{value:s,grads:a}=E.gradients(()=>r(...o),o,n);return n!=null&&Nt(s.shape,n.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),sg(a),a})}}function hW(r){return T(js(r),()=>"The f passed in valueAndGrad(f) must be a function"),(e,t)=>{T(e instanceof Ve,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),T(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:o,value:n}=E.gradients(()=>r(e),[e],t);return sg(o),{grad:o[0],value:n}}}function gW(r){return T(js(r),()=>"The f passed in valueAndGrads(f) must be a function"),(e,t)=>{T(Array.isArray(e)&&e.every(n=>n instanceof Ve),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),T(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let o=E.gradients(()=>r(...e),e,t);return t!=null&&Nt(o.value.shape,t.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),sg(o.grads),o}}function ig(r,e){T(js(r),()=>"The f passed in variableGrads(f) must be a function"),T(e==null||Array.isArray(e)&&e.every(u=>u instanceof tl),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let t=e!=null;if(!t){e=[];for(let u in E.registeredVariables)e.push(E.registeredVariables[u])}let o=t?e.filter(u=>!u.trainable):null,n=e.length;e=e.filter(u=>u.trainable),T(e.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${n} variables is trainable.`);let s=!0,{value:a,grads:i}=E.gradients(r,e,null,s);T(i.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),T(a.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${a.rank} tensor`);let l={};return e.forEach((u,c)=>{i[c]!=null&&(l[u.name]=i[c])}),o!=null&&o.forEach(u=>l[u.name]=null),{value:a,grads:l}}function Hr(r){return E.customGrad(r)}function sg(r){if(r.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function xW(r){let t={x:k(r,"x","neg")};return E.runKernel(cs,t)}var je=S({neg_:xW});function yW(r){let t={x:k(r,"x","softplus")};return E.runKernel(Ei,t)}var Ss=S({softplus_:yW});function bW(r){let e=k(r,"x","logSigmoid");return Hr(o=>({value:je(Ss(je(o))),gradFunc:a=>O(a,Ur(je(o)))}))(e)}var b_=S({logSigmoid_:bW});function _W(r,e=null,t=!1){let n={x:k(r,"x","max")},s={reductionIndices:e,keepDims:t};return E.runKernel(ln,n,s)}var ar=S({max_:_W});function wW(r,e){let t=k(r,"a","sub"),o=k(e,"b","sub");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(Dn,n)}var ue=S({sub_:wW});function kW(r,e=null,t=!1){let o=k(r,"x","sum");o.dtype==="bool"&&(o=oe(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return E.runKernel(Tn,n,s)}var ye=S({sum_:kW});function vW(r,e=-1){let t=k(r,"logits","logSoftmax");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and axis was ${e}`);return Hr((n,s)=>{let a=!0,i=ar(n,e,!0),l=ue(n,i),u=ue(oe(l,"float32"),ir(ye(Xt(l),e,a)));return s([u]),{value:u,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Xt(f);return ue(p,O(ye(p,e,d),h))}}})(t)}var Au=S({logSoftmax_:vW});function __(r,e){for(let t=0;tr[s]);return[t,n]}function Mn(r,e){let t=e.map(o=>1);return $N(r,t,e)}function CW(r,e,t){T(__(e,t),()=>`${r} supports only inner-most axes for now. Got axes ${e} and rank-${t} input.`)}function k_(r,e){if(__(r,e))return null;let t=[];for(let o=0;ot.push(o)),t}function Bm(r){return r.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function IW(r,e){let t=[];for(let o=e-r;o`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`),T(yr(t,a),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`),n!=null&&T(st(o),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=E.runKernel(cn,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ea=S({maxPool_:DW});function $W(r,e=[1,1,1],t,o,n,s="NDHWC"){let a=k(r,"x","maxPool3d"),i=a,l=!1;a.rank===4&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),T(i.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${i.rank}.`),T(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&T(st(o),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=E.runKernel(pa,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Gm=S({maxPool3d_:$W});function RW(r,e,t,o,n=!1){let a={x:k(r,"x","maxPoolWithArgmax")},i={filterSize:e,strides:t,pad:o,includeBatchInIndex:n},l=E.runKernel(lu,a,i);return{result:l[0],indexes:l[1]}}var C_=S({maxPoolWithArgmax_:RW});function FW(r,e){let t=k(r,"a","maximum"),o=k(e,"b","maximum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=oe(t,"int32"),o=oe(o,"int32")),ze(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(un,n)}var qr=S({maximum_:FW});function OW(r,e=null,t=!1){let n={x:k(r,"x","mean")},s={axis:e,keepDims:t};return E.runKernel(pn,n,s)}var ht=S({mean_:OW});function PW(r,e=null,t=!1){let n={x:k(r,"x","min")},s={axis:e,keepDims:t};return E.runKernel(mn,n,s)}var Li=S({min_:PW});function MW(r,e){let t=k(r,"a","minimum"),o=k(e,"b","minimum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=oe(t,"int32"),o=oe(o,"int32")),ze(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(fn,n)}var Ts=S({minimum_:MW});function LW(r,e,t){T(t==="reflect"||t==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${t}.`);let o=k(r,"x","mirrorPad");if(o.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");T(e.length===o.rank,()=>`Padding doesn't match input. Must be ${o.rank}. Got ${e.length}.`);let n=t==="reflect"?1:0;for(let i=0;i"Invalid number of paddings. Must be length of 2 each."),T(e[i][0]>=0&&e[i][0]<=o.shape[i]-n&&e[i][1]>=0&&e[i][1]<=o.shape[i]-n,()=>`Padding in dimension ${i} cannot be greater than or equal to ${o.shape[i]-n} or less than 0 for input of shape ${o.shape}`);let s={paddings:e,mode:t},a={x:o};return E.runKernel(ma,a,s)}var Wm=S({mirrorPad_:LW});function zW(r,e){let t=k(r,"a","mod"),o=k(e,"b","mod");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(yi,n)}var Um=S({mod_:zW});function BW(r){let e=k(r,"x","square"),t={};return E.runKernel("Square",{x:e},t)}var Pe=S({square_:BW});function VW(r,e=null,t=!1){r=k(r,"x","moments");let o=Jt(e,r.shape),n=ht(r,o,t),s=n.shape;t||(s=Mn(n.shape,o));let a=Pe(ue(oe(r,"float32"),L(n,s))),i=ht(a,o,t);return{mean:n,variance:i}}var Xc=S({moments_:VW});function GW(r,e,t,o){let n=k(e,"data","multiRNNCell"),s=ya(t,"c","multiRNNCell"),a=ya(o,"h","multiRNNCell"),i=n,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);t=t||Math.random();let l={logits:a===1?L(n,[1,-1]):n},u={numSamples:e,seed:t,normalized:o},c=E.runKernel(uu,l,u);return a===1?L(c,[c.size]):c}var I_=S({multinomial_:UW});function jW(r,e){let t=k(r,"a","notEqual"),o=k(e,"b","notEqual");[t,o]=Ge(t,o),ze(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(bi,n)}var Ln=S({notEqual_:jW});function gt(r,e="float32"){if(e==="complex64"){let o=gt(r,"float32"),n=gt(r,"float32");return bo(o,n)}let t=Dc(ft(r),e);return E.makeTensor(t,r,e)}function Cr(r,e="float32"){if(e==="complex64"){let o=Cr(r,"float32"),n=gt(r,"float32");return bo(o,n)}let t=mm(ft(r),e);return E.makeTensor(t,r,e)}function HW(r){let t={x:k(r,"x","onesLike")};return E.runKernel(ps,t)}var er=S({onesLike_:HW});function qW(r,e){let t=k(r,"v1","outerProduct"),o=k(e,"v2","outerProduct");T(t.rank===1&&o.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${t.rank} and ${o.rank}.`);let n=L(t,[-1,1]),s=L(o,[1,-1]);return We(n,s)}var KW=S({outerProduct_:qW});function XW(r,e,t=0){let o=k(r,"x","pad");if(o.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let n={paddings:e,constantValue:t},s={x:o};return E.runKernel(gn,s,n)}var $r=S({pad_:XW});function YW(r,e,t=0){return T(e.length===2,()=>"Invalid number of paddings. Must be length of 2."),$r(r,[e],t)}var ZW=S({pad1d_:YW});function JW(r,e,t=0){return T(e.length===2&&e[0].length===2&&e[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),$r(r,e,t)}var QW=S({pad2d_:JW});function e4(r,e,t=0){return T(e.length===3&&e[0].length===2&&e[1].length===2&&e[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),$r(r,e,t)}var t4=S({pad3d_:e4});function r4(r,e,t=0){return T(e.length===4&&e[0].length===2&&e[1].length===2&&e[2].length===2&&e[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),$r(r,e,t)}var o4=S({pad4d_:r4});function n4(r,e,t){let o=k(r,"x","spaceToBatchND");T(o.rank>=1+e.length,()=>`input rank ${o.rank} should be > than [blockShape] ${e.length}`),T(t.length===e.length,()=>`paddings.shape[0] ${t.length} must be equal to [blockShape] ${e.length}`),T(o.shape.reduce((a,i,l)=>l>0&&l<=e.length?a&&(i+t[l-1][0]+t[l-1][1])%e[l-1]==0:a,!0),()=>`input spatial dimensions ${o.shape.slice(1)} with paddings ${t.toString()} must be divisible by blockShapes ${e.toString()}`);let n={x:o},s={blockShape:e,paddings:t};return E.runKernel(ha,n,s)}var Aa=S({spaceToBatchND_:n4});function a4(r,e,t,o,n,s){n==null&&(n=[1,1]),s==null&&(s=1),o===0&&(o="valid");let a=k(r,"x","maxPool"),i=a,l=!1;a.rank===3&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2]])),T(yr(s,n),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${n}'`);let u=r_(i.shape,e,s,n,o),c=[u.dilationHeight,u.dilationWidth],p;o==="same"?p=i4([u.filterHeight,u.filterWidth],c):p=[[0,0],[0,0]];let m=c[0]===1&&c[1]===1,[f,d]=s4([u.inHeight,u.inWidth],c,p),h=m?o:"valid",g=m?i:Aa(i,c,f),b=(t==="avg"?()=>va(g,e,s,h):()=>Ea(g,e,s,h))(),_=m?b:Ca(b,c,d);return l?L(_,[_.shape[1],_.shape[2],_.shape[3]]):_}function s4(r,e,t){let o=t.map(c=>c[0]),n=t.map(c=>c[1]),s=r.concat(o,n),a=e.map((c,p)=>(c-s[p]%c)%c),i=n.map((c,p)=>c+a[p]),l=e.map((c,p)=>[o[p],i[p]]),u=e.map((c,p)=>[0,a[p]]);return[l,u]}function i4(r,e){let o=r.map((a,i)=>a+(a-1)*(e[i]-1)).map(a=>a-1),n=o.map(a=>Math.floor(a/2)),s=o.map((a,i)=>a-n[i]);return o.map((a,i)=>[n[i],s[i]])}var N_=S({pool_:a4});function l4(r,e){let t=k(r,"base","pow"),o=k(e,"exp","pow");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(xn,n)}var Rr=S({pow_:l4});function u4(r,e){let t=k(r,"x","prelu"),o=k(e,"alpha","prelu"),n={x:t,alpha:o};return E.runKernel(yn,n)}var Da=S({prelu_:u4});function c4(r,e=null,t=!1){let o=k(r,"x","prod");o.dtype==="bool"&&(o=oe(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return E.runKernel(vi,n,s)}var $u=S({prod_:c4});function p4(r,e,t){let o=ft(r),n=null;if(t==null||t==="float32")n=new Float32Array(o);else if(t==="int32")n=new Int32Array(o);else if(t==="bool")n=new Uint8Array(o);else throw new Error(`Unknown data type ${t}`);for(let s=0;s=1||a===0);let i=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*i,t=this.mean+this.stdDev*s*i,(!this.truncated||this.isValidTruncated(e))&&(o=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},R_=class{constructor(e,t,o,n){this.alpha=e,this.beta=1/t,this.dtype=o;let s=n||Math.random();this.randu=lg.alea(s.toString()),this.randn=new Yc(0,1,o,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,o,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0);if(a*=a*a,e=n*n,t=1-.331*e*e,o=.5*e+this.d*(1-a+Math.log(a)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=o,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=lg.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function b4(r,e,t=1,o="float32",n){if(t==null&&(t=1),o==null&&(o="float32"),o!=="float32"&&o!=="int32")throw new Error(`Unsupported data type ${o}`);let s=new R_(e,t,o,n),a=Ce(r,o);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${e.rank}.`),qt(e,0)}var E4=S({reverse1d_:T4});function A4(r,e){let t=k(r,"x","reverse");return T(t.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${t.rank}.`),qt(t,e)}var D4=S({reverse2d_:A4});function $4(r,e){let t=k(r,"x","reverse");return T(t.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${t.rank}.`),qt(t,e)}var R4=S({reverse3d_:$4});function F4(r,e){let t=k(r,"x","reverse");return T(t.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${t.rank}.`),qt(t,e)}var O4=S({reverse4d_:F4});function P4(r){let t={x:k(r,"x","round")};return E.runKernel(vn,t)}var qm=S({round_:P4});function M4(r){let t={x:k(r,"x","rsqrt")};return E.runKernel(Cn,t)}var Ou=S({rsqrt_:M4});function le(r,e){if((rr(r)&&e!=="string"||Array.isArray(r))&&e!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(e==="string"&&rr(r)&&!(r instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Gr(r,[],[],e)}function L4(r){let t={x:k(r,"x","selu")};return E.runKernel(Ni,t)}var Pu=S({selu_:L4});function z4(r,e,t,o,n,s=[1,1],a="NHWC"){let i=k(r,"x","separableConv2d"),l=k(e,"depthwiseFilter","separableConv2d"),u=k(t,"pointwiseFilter","separableConv2d"),c=i,p=!1;if(i.rank===3&&(p=!0,c=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),a==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");T(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),T(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),T(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),T(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),T(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let m=l.shape[2],f=l.shape[3];T(u.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${u.shape[2]}.`);let d=Cs(c,l,o,n,a,s),g=jr(d,u,1,"valid",a);return p?L(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Km=S({separableConv2d_:z4});async function B4(r,e){let t=k(r,"x","setdiff1d"),o=k(e,"y","setdiff1d");T(t.dtype===o.dtype,()=>`x and y should have the same dtype, but got x (${t.dtype}) and y (${o.dtype}).`),T(t.rank===1,()=>`x should be 1D tensor, but got x (${t.shape}).`),T(o.rank===1,()=>`y should be 1D tensor, but got y (${o.shape}).`);let n=await t.data(),s=await o.data(),a=new Set(s),i=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${o.rank} tensor`),Fe(o,[e],[t])}var Ym=S({slice1d_:U4});function j4(r,e,t){let o=k(r,"x","slice2d");return T(o.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${o.rank} tensor`),Fe(o,e,t)}var cg=S({slice2d_:j4});function H4(r,e,t){let o=k(r,"x","slice3d");return T(o.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${o.rank} tensor`),Fe(o,e,t)}var Zm=S({slice3d_:H4});function q4(r,e,t){let o=k(r,"x","slice4d");return T(o.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${o.rank} tensor`),Fe(o,e,t)}var Jc=S({slice4d_:q4});function K4(r,e=-1){let t=k(r,"logits","softmax","float32");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and dim was ${e}`);let o={logits:t},n={dim:e};return E.runKernel(En,o,n)}var $a=S({softmax_:K4});function X4(r){T(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let e={input:r};return E.runKernel(tu,e)}var Ra=S({fft_:X4});function Y4(r){T(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let e={input:r};return E.runKernel(ru,e)}var zi=S({ifft_:Y4});function Z4(r){let e=r.shape[r.shape.length-1],t=r.size/e,o;if(e<=2){let n=L(r,[t,e]);o=zi(n)}else{let n=[t,2*(e-1)],s=L(al(r),[t,e]),a=L(Su(r),[t,e]),i=qt(Fe(s,[0,1],[t,e-2]),1),l=O(qt(Fe(a,[0,1],[t,e-2]),1),le(-1)),u=Je([s,i],1),c=Je([a,l],1),p=L(bo(u,c),[n[0],n[1]]);o=zi(p)}if(o=al(o),r.rank===3&&r.shape[0]!==0){let n=o,s=r.shape[0];o=L(o,[s,o.shape[0]/s,o.shape[1]]),n.dispose()}return o}var zu=S({irfft_:Z4});function J4(r,e,t=0){let n={x:k(r,"x","split")},s={numOrSizeSplits:e,axis:t};return E.runKernel(gs,n,s)}var lr=S({split_:J4});function Q4(r,e){T(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let t=r.shape[r.shape.length-1],o=r.size/t,n;if(e!=null&&e0),h=r.shape.map(g=>g);h[r.shape.length-1]=e,n=Fe(r,d,h),t=e}else if(e!=null&&e>t){let d=r.shape.map(h=>h);d[r.shape.length-1]=e-t,n=Je([r,gt(d)],r.shape.length-1),t=e}else n=r;let s=Ie(n),a=L(bo(n,s),[o,t]),i=Ra(a),l=Math.floor(t/2)+1,u=al(i),c=Su(i),p=lr(u,[l,t-l],u.shape.length-1),m=lr(c,[l,t-l],c.shape.length-1),f=n.shape.slice();return f[n.shape.length-1]=l,L(bo(p[0],m[0]),f)}var Fa=S({rfft_:Q4});function eU(r){let t={x:k(r,"x","sqrt")};return E.runKernel(Sn,t)}var xt=S({sqrt_:eU});function tU(r,e){let t=k(r,"a","squaredDifference"),o=k(e,"b","squaredDifference");[t,o]=Ge(t,o),ze(t.shape,o.shape);let n={a:t,b:o},s={};return E.runKernel(An,n,s)}var Bu=S({squaredDifference_:tU});function rU(r,e){let t=k(r,"x","squeeze");return L(t,ub(t.shape,e).newShape)}var wo=S({squeeze_:rU});function oU(r,e=0){let t=ya(r,"tensors","stack","string_or_numeric");T(t.length>=1,()=>"Pass at least one tensor to tf.stack"),t.length>0&&T(e<=t[0].rank,()=>"Axis must be <= rank of the tensor");let o=t,n={axis:e};return E.runKernel(ms,o,n)}var Bt=S({stack_:oU});function nU(r,e=0){let o={x:k(r,"x","step")},n={alpha:e};return E.runKernel(Do,o,n)}var As=S({step_:nU});function sU(r,e,t,o,n=0,s=0,a=0,i=0,l=0){let c={x:k(r,"x","stridedSlice")},p={begin:e,end:t,strides:o,beginMask:n,endMask:s,ellipsisMask:a,newAxisMask:i,shrinkAxisMask:l};return E.runKernel(Ai,c,p)}var Jm=S({stridedSlice_:sU});function iU(r){let t={x:k(r,"x","tan")};return E.runKernel(Di,t)}var Qm=S({tan_:iU});function Vt(r,e){To(r);let t=kr(r,e);if(t.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Gr(r,null,t,e)}function Bi(r,e,t){if(To(r),e!=null&&e.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let o=kr(r,t);if(o.length!==2&&o.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Gr(r,e,o,t)}function aU(r,e,t){if(To(r),e!=null&&e.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let o=kr(r,t);if(o.length!==4&&o.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Gr(r,e,o,t)}function lU(r,e,t){if(To(r),e!=null&&e.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let o=kr(r,t);if(o.length!==5&&o.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Gr(r,e,o,t)}function uU(r,e,t){if(To(r),e!=null&&e.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let o=kr(r,t);if(o.length!==6&&o.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return e=e||o,Gr(r,e,o,t)}function cU(r,e=1,t=!0){let o=k(r,"x","topk");if(o.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let n=o.shape[o.shape.length-1];if(e>n)throw new Error(`'k' passed to topk() must be <= the last dimension (${n}) but got ${e}`);let s={x:o},a={k:e,sorted:t},[i,l]=E.runKernel($i,s,a);return{values:i,indices:l}}var ef=S({topk_:cU});function pU(r,e=0,t=1,o,n){if(o!=null&&o==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Yc(e,t,o,!0,n),a=Ce(r,o);for(let i=0;i0,()=>"The input tensor must be at least 1D");let o={x:t},n={axis:e},[s,a]=E.runKernel(du,o,n);return{values:s,indices:a}}var Qc=S({unique_:mU});function fU(r,e,t){let o=k(r,"x","unsortedSegmentSum"),n=k(e,"segmentIds","unsortedSegmentSum","int32");T(st(t),()=>"numSegments must be of dtype int");let s={x:o,segmentIds:n},a={numSegments:t};return E.runKernel(xa,s,a)}var tf=S({unsortedSegmentSum_:fU});function dU(r,e=0){let t=k(r,"x","unstack","string_or_numeric");T(e>=-t.shape.length&&e`Axis = ${e} is not in [-${t.shape.length}, ${t.shape.length})`);let o={value:t},n={axis:e};return E.runKernel(xs,o,n)}var ur=S({unstack_:dU});function P_(r,e=!0,t,o){return E.makeVariable(r,e,t,o)}function M_(r,e){let t=[];for(let s=0;s0,()=>"mask cannot be scalar"),Nt(i.slice(s,s+a),n.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let h=s;h"Shape mismatch in v and x");let l=le(1),u=ue(l,i),c=O(ue(a,s),u);if(n){T(o!=null,()=>"When using zeroDebias: true, step is required.");let p=k(o,"step","movingAverage");c=de(c,ue(l,Rr(i,p)))}return Q(s,c)}var _U=S({movingAverage_:bU});function wU(r,e,t){let o=k(r,"indices","scatterND","int32"),n=k(e,"updates","scatterND");Qh(n,o,t);let s={indices:o,updates:n},a={shape:t};return E.runKernel(Ii,s,a)}var L_=S({scatterND_:wU});function XN(r,e,t,o){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let n=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(t.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${t.length}, should be: ${s}.`);let a=e.size;if(!(e.rank===0||e.rank===1&&a===n))throw new Error(`sparseValues has incorrect shape ${e.shape}, should be [] or [${n}]`);if(e.dtype!==o.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function kU(r,e,t,o=0){let n=k(r,"sparseIndices","sparseToDense","int32"),s=k(e,"sparseValues","sparseToDense"),a=k(o,"defaultValue","sparseToDense",s.dtype);XN(n,s,t,a);let i={sparseIndices:n,sparseValues:s,defaultValue:a},l={outputShape:t};return E.runKernel(fu,i,l)}var of=S({sparseToDense_:kU});function vU(r,e){let t=k(e,"indices","gatherND","int32"),n={params:k(r,"x","gatherND"),indices:t};return E.runKernel(ui,n)}var z_=S({gatherND_:vU});function YN(r,e){if(e==null)return r.shape.slice();if(Vr(r.shape,e))return e;if(r.shape.length===e.length){let t=[];for(let o=0;o`x has to be a floating point tensor since it's going to be scaled, but got a ${n.dtype} tensor instead.`),T(e>=0&&e<1,()=>`rate must be a float in the range [0, 1), but got ${e}.`),e===0)return r instanceof Ve?n.clone():n;let s=YN(n,t),a=1-e,i=de(Ns(Q(Es(s,0,1,"float32",o),a)),a);return O(n,i)}var B_=S({dropout_:CU});function V_(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function nf(r,e,t){let o=1-r%2,n=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${o.rank}`),T(o.rank-1===n.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${o.rank} and targets rank ${n.rank}`),Nt(o.shape.slice(0,o.shape.length-1),n.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=o.shape[o.shape.length-1];T(t>0&&t<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${t}`);let a=await o.data(),i=await n.data(),[l,u]=[a.length/s,s],c=cb("bool",l);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hEU,depthwiseConv2d:()=>RU,matMul:()=>OU});function SU(r,e,t,o,n,s="NHWC",a){let i=r;r.rank===3&&(i=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]])),T(i.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${i.shape}.`),T(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),T(t.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${t}.`);let u=s==="NHWC"?i.shape[3]:i.shape[1],c=s==="NHWC"?l.shape[3]:l.shape[1];T(u===t[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${t[2]}.`),T(c===t[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${t[3]}).`),a!=null&&T(st(n),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let p={x:i,dy:l},m={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,filterShape:t};return E.runKernel(ql,p,m)}var ep=S({conv2DBackpropFilter_:SU});function Wu(r,e,t){if(t==null||t==="linear")return r;if(t==="relu")return O(r,As(e));throw new Error(`Cannot compute gradient for fused activation ${t}.`)}function Uu(r,e){let t=e,o=Ct(r.shape,e.shape);return o.length>0&&(t=ye(t,o)),L(t,r.shape)}function ju(r,e,t,o){if(e==="linear")return r;if(e==="relu")return Ir(r);if(e==="elu")return Is(r);if(e==="relu6")return Fu(r);if(e==="prelu")return Da(r,t);if(e==="leakyrelu")return Sa(r,o);throw new Error(`Unknown fused activation ${e}.`)}var Hu=(r,e)=>!(r>0)||e==="linear";function TU({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",Hu(E.state.gradientDepth,l)===!1){let v=jr(r,e,t,o,n,s,a);return i!=null&&(v=Q(v,i)),ju(v,l,u,c)}let p=k(r,"x","conv2d"),m=k(e,"filter","conv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=L(p,[1,p.shape[0],p.shape[1],p.shape[2]])),T(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),T(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),a!=null&&T(st(o),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),T(f.shape[3]===m.shape[2],()=>`Error in conv2d: depth of input (${f.shape[3]}) must match input depth for filter ${m.shape[2]}.`),T(yr(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),T(n==="NHWC",()=>`Error in conv2d: got dataFormat of ${n} but only NHWC is currently supported.`);let h=wu(f.shape,m.shape,t,s,o,a),g;i!=null&&(g=k(i,"bias","fused conv2d"),[g]=Ge(g,p),ze(h.outShape,g.shape));let x;u!=null&&(x=k(u,"prelu weights","fused conv2d"));let b=(v,$)=>{let[A,R,M,z]=$,W=Wu(v,M,l);T(Ro(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let U=qc(R.shape,W,A,t,o),q=ep(R,W,A.shape,t,o),Z=[U,q];if(z!=null){let X=Uu(z,W);Z.push(X)}return Z},_={x:f,filter:m,bias:g,preluActivationWeights:x},w={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Hr(($,A,R)=>{let M=E.runKernel(_s,_,w);return R([A,$,M]),d&&(M=L(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m):Hr(($,A,R,M)=>{let z=E.runKernel(_s,_,w);return M([A,$,z,R]),d&&(z=L(z,[z.shape[1],z.shape[2],z.shape[3]])),{value:z,gradFunc:b}})(f,m,g)}var EU=S({fusedConv2d_:TU});function AU(r,e,t,o,n,s=[1,1],a){let i=r;r.rank===3&&(i=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={x:i,dy:l},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,filterShape:t};return E.runKernel(Zl,u,c)}var pg=S({depthwiseConv2dNativeBackpropFilter_:AU});function DU(r,e,t,o,n,s=[1,1],a){let i=e,l=!1;e.rank===3&&(l=!0,i=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={dy:i,filter:t},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,inputShape:r},p=E.runKernel(Jl,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var mg=S({depthwiseConv2dNativeBackpropInput_:DU});function $U({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(Hu(E.state.gradientDepth,l)===!1){let v=Cs(r,e,t,o,n,s,a);return i!=null&&(v=Q(v,i)),ju(v,l,u,c)}let p=k(r,"x","depthwiseConv2d"),m=k(e,"filter","depthwiseConv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=L(p,[1,p.shape[0],p.shape[1],p.shape[2]])),T(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),T(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),T(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),T(yr(t,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),a!=null&&T(st(o),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${a} but got pad ${o}.`);let h=wu(f.shape,m.shape,t,s,o,a,!0),g;i!=null&&(g=k(i,"bias","fused conv2d"),[g]=Ge(g,p),ze(h.outShape,g.shape));let x;u!=null&&(x=k(u,"prelu weights","fused depthwiseConv2d"));let b=(v,$)=>{T(Ro(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,R,M,z]=$,W=Wu(v,M,l),U=mg(R.shape,W,A,t,o,s,a),q=pg(R,W,A.shape,t,o,s,a);if(z!=null){let Z=Uu(g,W);return[U,q,Z]}return[U,q]},_={x:f,filter:m,bias:g,preluActivationWeights:x},w={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Hr(($,A,R)=>{let M=E.runKernel(ws,_,w);return R([A,$,M]),d&&(M=L(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m):Hr(($,A,R,M)=>{let z=E.runKernel(ws,_,w);return M([A,$,z,R]),d&&(z=L(z,[z.shape[1],z.shape[2],z.shape[3]])),{value:z,gradFunc:b}})(f,m,g)}var RU=S({fusedDepthwiseConv2d_:$U});function FU({a:r,b:e,transposeA:t=!1,transposeB:o=!1,bias:n,activation:s="linear",preluActivationWeights:a,leakyreluAlpha:i}){if(Hu(E.state.gradientDepth,s)===!1){let z=We(r,e,t,o);return n!=null&&(z=Q(z,n)),ju(z,s,a,i)}let l=k(r,"a","fused matMul"),u=k(e,"b","fused matMul");[l,u]=Ge(l,u);let c=t?l.shape[l.rank-2]:l.shape[l.rank-1],p=o?u.shape[u.rank-1]:u.shape[u.rank-2],m=t?l.shape[l.rank-1]:l.shape[l.rank-2],f=o?u.shape[u.rank-2]:u.shape[u.rank-1],d=l.shape.slice(0,-2),h=u.shape.slice(0,-2),g=ft(d),x=ft(h);T(l.rank>=2&&u.rank>=2&&l.rank===u.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`),T(Vr(d,h),()=>`Error in fused matMul: outer dimensions (${d}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`),T(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${t} and transposeB=${o} must match.`);let b=l.shape.slice(0,-2).concat([m,f]),_=t?L(l,[g,c,m]):L(l,[g,m,c]),w=o?L(u,[x,f,p]):L(u,[x,p,f]),v;n!=null&&(v=k(n,"bias","fused matMul"),[v]=Ge(v,l),ze(b,v.shape));let $;a!=null&&($=k(a,"prelu weights","fused matMul"));let A=(z,W)=>{let[U,q,Z,X]=W,Y=Wu(L(z,Z.shape),Z,s),te,K;if(!t&&!o?(te=We(Y,q,!1,!0),K=We(U,Y,!0,!1)):!t&&o?(te=We(Y,q,!1,!1),K=We(Y,U,!0,!1)):t&&!o?(te=We(q,Y,!1,!0),K=We(U,Y,!1,!1)):(te=We(q,Y,!0,!0),K=We(Y,U,!0,!0)),n!=null){let re=Uu(X,Y);return[te,K,re]}else return[te,K]},R={a:_,b:w,bias:v,preluActivationWeights:$},M={transposeA:t,transposeB:o,activation:s,leakyreluAlpha:i};return n==null?Hr((W,U,q)=>{let Z=E.runKernel(bs,R,M);return q([W,U,Z]),{value:L(Z,b),gradFunc:A}})(_,w):Hr((W,U,q,Z)=>{let X=E.runKernel(bs,R,M);return Z([W,U,X,q]),{value:L(X,b),gradFunc:A}})(_,w,v)}var OU=S({fusedMatMul_:FU});function PU(r){return nf(r,.54,.46)}var ZN=S({hammingWindow_:PU});function MU(r){return nf(r,.5,.5)}var fg=S({hannWindow_:MU});function LU(r,e,t,o=!1,n=0){let s=0,a=[];for(;s+e<=r.size;)a.push(Fe(r,s,e)),s+=t;if(o)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`),T(i.rank===2&&i.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${i.shape}.`),T(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${i.shape}.`),T(o.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${o.length}.`),T(o[0]>=1&&o[1]>=1,()=>`cropSize must be atleast [1,1], but was ${o}`),T(n==="bilinear"||n==="nearest",()=>`method must be bilinear or nearest, but was ${n}`);let c={image:a,boxes:i,boxInd:l},p={method:n,extrapolationValue:s,cropSize:o};return E.runKernel(ri,c,p)}var QN=S({cropAndResize_:BU});function VU(r){let e=k(r,"image","flipLeftRight","float32");T(e.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${e.rank}.`);let t={image:e};return E.runKernel(li,t,{})}var e0=S({flipLeftRight_:VU});function GU(r,e,t=0,o=.5){let n=k(r,"image","rotateWithOffset","float32");T(n.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${n.rank}.`);let s={image:n},a={radians:e,fillValue:t,center:o};return E.runKernel(Ri,s,a)}var t0=S({rotateWithOffset_:GU});function Bn(r,e,t,o,n,s){o==null&&(o=.5),n==null&&(n=Number.NEGATIVE_INFINITY),s==null&&(s=0);let a=r.shape[0];return t=Math.min(t,a),T(0<=o&&o<=1,()=>`iouThreshold must be in [0, 1], but was '${o}'`),T(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),T(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),T(e.rank===1,()=>"scores must be a 1D tensor"),T(e.shape[0]===a,()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${e.shape[0]}`),T(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s}}function WU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=k(r,"boxes","nonMaxSuppression"),a=k(e,"scores","nonMaxSuppression"),i=Bn(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l={maxOutputSize:t,iouThreshold:o,scoreThreshold:n};return E.runKernel(_i,{boxes:s,scores:a},l)}var r0=S({nonMaxSuppression_:WU});function o0(r,e,t){let o=UU(r,e,t),n=o<0?-(o+1):o;r.splice(n,0,e)}function UU(r,e,t){return HU(r,e,t||jU)}function jU(r,e){return r>e?1:r>>1);let i=t(e,r[s]);i>0?o=s+1:(n=s,a=!i)}return a?o:-o-1}function W_(r,e,t,o,n){return G_(r,e,t,o,n,0)}function U_(r,e,t,o,n,s){return G_(r,e,t,o,n,0,!1,s,!0)}function j_(r,e,t,o,n,s){return G_(r,e,t,o,n,s,!0)}function G_(r,e,t,o,n,s,a=!1,i=!1,l=!1){let u=[];for(let g=0;gn&&u.push({score:e[g],boxIndex:g,suppressBeginIndex:0});u.sort(n0);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=u.pop(),{score:x,boxIndex:b,suppressBeginIndex:_}=g;if(x=_;--v){let $=qU(r,b,p[v]);if($>=o){w=!0;break}if(g.score=g.score*KU(o,c,$),g.score<=n)break}g.suppressBeginIndex=p.length,w||(g.score===x?(p.push(b),m.push(g.score)):g.score>n&&o0(u,g,n0))}let f=p.length,d=t-f;i&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return a&&(h.selectedScores=m),l&&(h.validOutputs=f),h}function qU(r,e,t){let o=r.subarray(e*4,e*4+4),n=r.subarray(t*4,t*4+4),s=Math.min(o[0],o[2]),a=Math.min(o[1],o[3]),i=Math.max(o[0],o[2]),l=Math.max(o[1],o[3]),u=Math.min(n[0],n[2]),c=Math.min(n[1],n[3]),p=Math.max(n[0],n[2]),m=Math.max(n[1],n[3]),f=(i-s)*(l-a),d=(p-u)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,u),g=Math.max(a,c),x=Math.min(i,p),b=Math.min(l,m),_=Math.max(x-h,0)*Math.max(b-g,0);return _/(f+d-_)}function KU(r,e,t){let o=Math.exp(e*t*t);return t<=r?o:0}function n0(r,e){return r.score-e.score||r.score===e.score&&e.boxIndex-r.boxIndex}async function XU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=k(r,"boxes","nonMaxSuppressionAsync"),a=k(e,"scores","nonMaxSuppressionAsync"),i=Bn(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l=await Promise.all([s.data(),a.data()]),u=l[0],c=l[1],{selectedIndices:p}=W_(u,c,t,o,n);return s!==r&&s.dispose(),a!==e&&a.dispose(),Vt(p,"int32")}var s0=XU;function YU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=k(r,"boxes","nonMaxSuppression"),i=k(e,"scores","nonMaxSuppression"),l=Bn(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:a,scores:i},c={maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s},p=E.runKernel(ki,u,c);return{selectedIndices:p[0],selectedScores:p[1]}}var i0=S({nonMaxSuppressionWithScore_:YU});async function ZU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=k(r,"boxes","nonMaxSuppressionAsync"),i=k(e,"scores","nonMaxSuppressionAsync"),l=Bn(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([a.data(),i.data()]),c=u[0],p=u[1],{selectedIndices:m,selectedScores:f}=j_(c,p,t,o,n,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Vt(m,"int32"),selectedScores:Vt(f)}}var a0=ZU;function JU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=k(r,"boxes","nonMaxSuppression"),i=k(e,"scores","nonMaxSuppression"),l=Bn(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,m={boxes:a,scores:i},f={maxOutputSize:u,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=E.runKernel(wi,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var l0=S({nonMaxSuppressionPadded_:JU});async function QU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=k(r,"boxes","nonMaxSuppressionAsync"),i=k(e,"scores","nonMaxSuppressionAsync"),l=Bn(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,[m,f]=await Promise.all([a.data(),i.data()]),{selectedIndices:d,validOutputs:h}=U_(m,f,u,c,p,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Vt(d,"int32"),validOutputs:le(h,"int32")}}var u0=QU;function ej(r,e,t=!1,o=!1){let n=k(r,"images","resizeBilinear");T(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),T(e.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${e}.`),T(o===!1||t===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=L(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=E.runKernel(_n,i,l);return a?L(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var hg=S({resizeBilinear_:ej});function tj(r,e,t=!1,o=!1){let n=k(r,"images","resizeNearestNeighbor");T(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),T(e.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${e}.`),T(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),T(o===!1||t===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=L(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=E.runKernel(da,i,l);return a?L(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var gg=S({resizeNearestNeighbor_:tj});function rj(r,e,t){T(e%1==0,()=>`bandPart(): numLower must be an integer, got ${e}.`),T(t%1==0,()=>`bandPart(): numUpper must be an integer, got ${t}.`);let o=k(r,"a","bandPart");T(o.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${o.rank}.`);let n=o.shape,[s,a]=o.shape.slice(-2);if(!(e<=s))throw new Error(`bandPart(): numLower (${e}) must not be greater than the number of rows (${s}).`);if(!(t<=a))throw new Error(`bandPart(): numUpper (${t}) must not be greater than the number of columns (${a}).`);e<0&&(e=s),t<0&&(t=a);let i=L(Zc(0,s,1,"int32"),[-1,1]),l=Zc(0,a,1,"int32"),u=ue(i,l),c=fr(Oo(u,le(+e,"int32")),to(u,le(-t,"int32"))),p=gt([s,a],o.dtype);return L(Bt(ur(L(o,[-1,s,a])).map(m=>Dt(c,m,p))),n)}var c0=S({bandPart_:rj});function oj(r){let e;if(Array.isArray(r)){e=!1,T(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let n=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${n})`)}else e=!0,r=lr(r,r.shape[0],0).map(n=>wo(n,[0]));T(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let t=[],o=r;for(let n=0;n{let s=o[n];if(n>0)for(let a=0;a=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return m0(r,e);{let t=r.shape.slice(0,r.shape.length-2).reduce((l,u)=>l*u),o=ur(L(r,[t,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),n=[],s=[];o.forEach(l=>{let[u,c]=m0(l,e);n.push(u),s.push(c)});let a=L(Bt(n,0),r.shape),i=L(Bt(s,0),r.shape);return[a,i]}}function m0(r,e=!1){return E.tidy(()=>{T(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let t=r.shape[0],o=r.shape[1],n=Kc(t),s=$o(r),a=Bi([[1]],[1,1]),i=$o(a),l=t>=o?o:t;for(let u=0;u{let f=Fe(s,[u,u],[t-u,1]),d=Gu(f),h=Fe(s,[u,u],[1,1]),g=Dt(Qt(h,0),Bi([[-1]]),Bi([[1]])),x=ue(h,O(g,d)),b=de(f,x);b.shape[0]===1?i=$o(a):i=Je([a,Fe(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let _=je(de(We(g,x),d)),w=Fe(s,[u,0],[t-u,o]),v=O(_,i),$=Ue(i);if(u===0)s=ue(w,We(v,We($,w)));else{let M=ue(w,We(v,We($,w)));s=Je([Fe(s,[0,0],[u,o]),M],0)}let A=Ue(v),R=Fe(n,[0,u],[t,n.shape[1]-u]);if(u===0)n=ue(R,We(We(R,i),A));else{let M=ue(R,We(We(R,i),A));n=Je([Fe(n,[0,0],[t,u]),M],1)}return[i,s,n]}),Te([c,p,m])}return!e&&t>o&&(n=Fe(n,[0,0],[t,o]),s=Fe(s,[0,0],[o,o])),[n,s]})}var f0=S({qr_:nj});var Gt;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Gt||(Gt={}));function sj(r,e,t=Gt.SUM_BY_NONZERO_WEIGHTS){let o=k(r,"losses","computeWeightedLoss"),n=null;e!=null&&(n=k(e,"weights","computeWeightedLoss"));let s=n==null?o:O(o,n);if(t===Gt.NONE)return s;if(t===Gt.SUM)return ye(s);if(t===Gt.MEAN){if(n==null)return ht(s);{let a=o.size/n.size,i=de(ye(s),ye(n));return a>1?de(i,le(a)):i}}if(t===Gt.SUM_BY_NONZERO_WEIGHTS){if(n==null)return de(ye(s),le(o.size));{let a=O(n,Cr(o.shape)),i=oe(ye(Ln(a,le(0))),"float32");return de(ye(s),i)}}throw Error(`Unknown reduction: ${t}`)}var Nr=S({computeWeightedLoss_:sj});function ij(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","absoluteDifference"),s=k(e,"predictions","absoluteDifference"),a=null;t!=null&&(a=k(t,"weights","absoluteDifference")),Nt(n.shape,s.shape,"Error in absoluteDifference: ");let i=Tt(ue(n,s));return Nr(i,a,o)}var d0=S({absoluteDifference_:ij});function aj(r,e,t,o,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","cosineDistance"),a=k(e,"predictions","cosineDistance"),i=null;o!=null&&(i=k(o,"weights","cosineDistance")),Nt(s.shape,a.shape,"Error in cosineDistance: ");let l=le(1),u=ue(l,ye(O(s,a),t,!0));return Nr(u,i,n)}var h0=S({cosineDistance_:aj});function lj(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","hingeLoss"),s=k(e,"predictions","hingeLoss"),a=null;t!=null&&(a=k(t,"weights","hingeLoss")),Nt(n.shape,s.shape,"Error in hingeLoss: ");let i=le(1);n=ue(O(le(2),n),i);let l=Ir(ue(i,O(n,s)));return Nr(l,a,o)}var g0=S({hingeLoss_:lj});function uj(r,e,t,o=1,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","huberLoss"),a=k(e,"predictions","huberLoss"),i=null;t!=null&&(i=k(t,"weights","huberLoss")),Nt(s.shape,a.shape,"Error in huberLoss: ");let l=le(o),u=Tt(ue(a,s)),c=Ts(u,l),p=ue(u,c),m=Q(O(le(.5),Pe(c)),O(l,p));return Nr(m,i,n)}var x0=S({huberLoss_:uj});function cj(r,e,t,o=1e-7,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","logLoss"),a=k(e,"predictions","logLoss"),i=null;t!=null&&(i=k(t,"weights","logLoss")),Nt(s.shape,a.shape,"Error in logLoss: ");let l=le(1),u=le(o),c=je(O(s,ir(Q(a,u)))),p=O(ue(l,s),ir(Q(ue(l,a),u))),m=ue(c,p);return Nr(m,i,n)}var y0=S({logLoss_:cj});function pj(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","meanSquaredError"),s=k(e,"predictions","meanSquaredError"),a=null;t!=null&&(a=k(t,"weights","meanSquaredError")),Nt(n.shape,s.shape,"Error in meanSquaredError: ");let i=Bu(n,s);return Nr(i,a,o)}var b0=S({meanSquaredError_:pj});function mj(r,e){let t=k(r,"labels","sigmoidCrossEntropyWithLogits"),o=k(e,"logits","sigmoidCrossEntropyWithLogits");Nt(t.shape,o.shape,"Error in sigmoidCrossEntropyWithLogits: ");let n=Ir(o),s=O(o,t),a=Eu(Xt(je(Tt(o))));return Q(ue(n,s),a)}function fj(r,e,t,o=0,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"multiClassLabels","sigmoidCrossEntropy"),a=k(e,"logits","sigmoidCrossEntropy"),i=null;if(t!=null&&(i=k(t,"weights","sigmoidCrossEntropy")),Nt(s.shape,a.shape,"Error in sigmoidCrossEntropy: "),o>0){let u=le(o),c=le(1),p=le(.5);s=Q(O(s,ue(c,u)),O(p,u))}let l=mj(s,a);return Nr(l,i,n)}var _0=S({sigmoidCrossEntropy_:fj});function dj(r,e,t=-1){if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${e.rank} and dim was ${t}`);return Hr((n,s,a)=>{let l=Vm(s,[t],!0),u=ue(oe(s,"float32"),l);a([n,u]);let c=je(O(u,n));return{value:ye(c,[t]),gradFunc:(f,d)=>{let[h,g]=d,x=Mn(f.shape,[t]);return[O(L(f,x),ue(oe(h,"float32"),Xt(g))),O(L(f,x),ue(Xt(g),oe(h,"float32")))]}}})(r,e)}function hj(r,e,t,o=0,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"onehotLabels","softmaxCrossEntropy"),a=k(e,"logits","softmaxCrossEntropy"),i=null;if(t!=null&&(i=k(t,"weights","softmaxCrossEntropy")),Nt(s.shape,a.shape,"Error in softmaxCrossEntropy: "),o>0){let u=le(o),c=le(1),p=le(s.shape[1]);s=Q(O(s,ue(c,u)),de(u,p))}let l=dj(s,a);return Nr(l,i,n)}var w0=S({softmaxCrossEntropy_:hj});var gj={fft:Ra,ifft:zi,rfft:Fa,irfft:zu},xj={hammingWindow:ZN,hannWindow:fg,frame:dg,stft:JN},Ds={flipLeftRight:e0,resizeNearestNeighbor:gg,resizeBilinear:hg,rotateWithOffset:t0,cropAndResize:QN,nonMaxSuppression:r0,nonMaxSuppressionAsync:s0,nonMaxSuppressionWithScore:i0,nonMaxSuppressionWithScoreAsync:a0,nonMaxSuppressionPadded:l0,nonMaxSuppressionPaddedAsync:u0},H_={bandPart:c0,gramSchmidt:p0,qr:f0},yj={absoluteDifference:d0,computeWeightedLoss:Nr,cosineDistance:h0,hingeLoss:g0,huberLoss:x0,logLoss:y0,meanSquaredError:b0,sigmoidCrossEntropy:_0,softmaxCrossEntropy:w0};var Fr=class extends tg{minimize(e,t=!1,o){let{value:n,grads:s}=this.computeGradients(e,o);if(o!=null){let a=o.map(i=>({name:i.name,tensor:s[i.name]}));this.applyGradients(a)}else this.applyGradients(s);return Te(s),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return ig(e,t)}dispose(){this.iterations_!=null&&Te(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:le(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Fr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var tp=class extends Fr{constructor(e,t,o=null){super();this.learningRate=e,this.rho=t,this.epsilon=o,this.accumulatedGrads=[],this.accumulatedUpdates=[],o==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o],a=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${o}/accum_grad`,variable:V(()=>Ie(s).variable(a))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${o}/accum_var`,variable:V(()=>Ie(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedGrads[n].variable,u=this.accumulatedUpdates[n].variable;V(()=>{let c=Q(O(l,this.rho),O(Pe(i),1-this.rho)),p=O(de(xt(Q(u,this.epsilon)),xt(Q(l,this.epsilon))),i),m=Q(O(u,this.rho),O(Pe(p),1-this.rho));l.assign(c),u.assign(m);let f=Q(O(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Te(this.accumulatedGrads.map(e=>e.variable)),Te(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,o=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};tp.className="Adadelta";eo(tp);var rp=class extends Fr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o];if(this.accumulatedGrads[n]==null){let l=!1;this.accumulatedGrads[n]={originalName:`${o}/accumulator`,variable:V(()=>Na(s.shape,this.initialAccumulatorValue).variable(l))}}let a=Array.isArray(e)?e[n].tensor:e[o];if(a==null)return;let i=this.accumulatedGrads[n].variable;V(()=>{let l=Q(i,Pe(a));i.assign(l);let u=Q(O(de(a,xt(Q(l,E.backend.epsilon()))),-this.learningRate),s);s.assign(u)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Te(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};rp.className="Adagrad";eo(rp);var op=class extends Fr{constructor(e,t,o,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],V(()=>{this.accBeta1=le(t).variable(),this.accBeta2=le(o).variable()}),n==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);V(()=>{let o=ue(1,this.accBeta1),n=ue(1,this.accBeta2);t.forEach((s,a)=>{let i=E.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:V(()=>Ie(i).variable(l))}),this.accumulatedSecondMoment[a]==null&&(this.accumulatedSecondMoment[a]={originalName:`${s}/v`,variable:V(()=>Ie(i).variable(l))});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedSecondMoment[a].variable,m=Q(O(c,this.beta1),O(u,1-this.beta1)),f=Q(O(p,this.beta2),O(Pe(u),1-this.beta2)),d=de(m,o),h=de(f,n);c.assign(m),p.assign(f);let g=Q(O(de(d,Q(xt(h),this.epsilon)),-this.learningRate),i);i.assign(g)}),this.accBeta1.assign(O(this.accBeta1,this.beta1)),this.accBeta2.assign(O(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Te(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),V(()=>{this.accBeta1.assign(Rr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Rr(this.beta2,this.iterations_+1))});let t=e.length/2,o=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};op.className="Adam";eo(op);var np=class extends Fr{constructor(e,t,o,n=null,s=0){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],V(()=>{this.iteration=le(0).variable(),this.accBeta1=le(t).variable()}),n==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);V(()=>{let o=ue(1,this.accBeta1),n=de(-this.learningRate,Q(O(this.iteration,this.decay),1));t.forEach((s,a)=>{let i=E.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:Ie(i).variable(l)}),this.accumulatedWeightedInfNorm[a]==null&&(this.accumulatedWeightedInfNorm[a]={originalName:`${s}/v`,variable:Ie(i).variable(l)});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedWeightedInfNorm[a].variable,m=Q(O(c,this.beta1),O(u,1-this.beta1)),f=O(p,this.beta2),d=Tt(u),h=qr(f,d);c.assign(m),p.assign(h);let g=Q(O(de(n,o),de(m,Q(h,this.epsilon))),i);i.assign(g)}),this.iteration.assign(Q(this.iteration,1)),this.accBeta1.assign(O(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Te(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};np.className="Adamax";eo(np);var ll=class extends Fr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=Array.isArray(e)?e[n].tensor:e[o];if(s==null)return;let a=E.registeredVariables[o];V(()=>{let i=Q(O(this.c,s),a);a.assign(i)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=At(le(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};ll.className="SGD";eo(ll);var sp=class extends ll{constructor(e,t,o=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=o,this.accumulations=[],this.m=le(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o];if(this.accumulations[n]==null){let l=!1;this.accumulations[n]={originalName:`${o}/momentum`,variable:V(()=>Ie(s).variable(l))}}let a=this.accumulations[n].variable,i=Array.isArray(e)?e[n].tensor:e[o];i!=null&&V(()=>{let l,u=Q(O(this.m,a),i);this.useNesterov?l=Q(O(this.c,Q(i,O(u,this.m))),s):l=Q(O(this.c,u),s),a.assign(u),s.assign(l)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Te(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};sp.className="Momentum";eo(sp);var ip=class extends Fr{constructor(e,t=.9,o=0,n=null,s=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=o,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,n==null&&(this.epsilon=E.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o],a=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${o}/rms`,variable:V(()=>Ie(s).variable(a))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${o}/momentum`,variable:V(()=>Ie(s).variable(a))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${o}/mg`,variable:V(()=>Ie(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedMeanSquares[n].variable,u=this.accumulatedMoments[n].variable;V(()=>{let c=Q(O(l,this.decay),O(Pe(i),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[n].variable,m=Q(O(p,this.decay),O(i,1-this.decay)),f=de(O(i,this.learningRate),xt(ue(c,Q(Pe(m),this.epsilon)))),d=Q(O(u,this.momentum),f);l.assign(c),p.assign(m),u.assign(d);let h=ue(s,d);s.assign(h)}else{let p=Q(O(l,this.decay),O(Pe(i),1-this.decay)),m=Q(O(u,this.momentum),de(O(i,this.learningRate),xt(Q(p,this.epsilon))));l.assign(p),u.assign(m);let f=ue(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Te(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Te(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Te(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,o=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};ip.className="RMSProp";eo(ip);var Oa=class{static sgd(e){return new ll(e)}static momentum(e,t,o=!1){return new sp(e,t,o)}static rmsprop(e,t=.9,o=0,n=null,s=!1){return new ip(e,t,o,n,s)}static adam(e=.001,t=.9,o=.999,n=null){return new op(e,t,o,n)}static adadelta(e=.001,t=.95,o=null){return new tp(e,t,o)}static adamax(e=.002,t=.9,o=.999,n=null,s=0){return new np(e,t,o,n,s)}static adagrad(e,t=.1){return new rp(e,t)}};var ul={sgd:Oa.sgd,momentum:Oa.momentum,adadelta:Oa.adadelta,adagrad:Oa.adagrad,rmsprop:Oa.rmsprop,adamax:Oa.adamax,adam:Oa.adam};var bj=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function sf(){return new Promise(r=>bj(()=>r()))}var N={};et(N,{ERF_A1:()=>Aj,ERF_A2:()=>Dj,ERF_A3:()=>$j,ERF_A4:()=>Rj,ERF_A5:()=>Fj,ERF_P:()=>Ej,PARALLELIZE_THRESHOLD:()=>xg,SELU_SCALE:()=>K_,SELU_SCALEALPHA:()=>q_,applyActivation:()=>ju,assertAndGetBroadcastShape:()=>ze,assertAxesAreInnerMostDims:()=>CW,assertParamsConsistent:()=>_j,assignToTypedArray:()=>Gj,axesAreInnerMostDims:()=>__,calculateShapes:()=>dN,combineLocations:()=>$N,complexWithEvenIndex:()=>zj,complexWithOddIndex:()=>Bj,computeConv2DInfo:()=>wu,computeConv3DInfo:()=>AN,computeDefaultPad:()=>n_,computeDilation2DInfo:()=>XV,computeOptimalWindowSize:()=>kj,computeOutAndReduceShapes:()=>w_,computeOutShape:()=>wj,computePool2DInfo:()=>r_,computePool3DInfo:()=>YV,convertConv2DDataFormat:()=>EN,eitherStridesOrDilationsAreOne:()=>yr,expandShapeToKeepDim:()=>Mn,exponent:()=>Uj,exponents:()=>Wj,fromStringArrayToUint8:()=>Yj,fromUint8ToStringArray:()=>Xj,getAxesPermutation:()=>k_,getBroadcastDims:()=>BG,getComplexWithIndex:()=>Vj,getFusedBiasGradient:()=>Uu,getFusedDyActivation:()=>Wu,getImageCenter:()=>vj,getInnerMostAxes:()=>IW,getPermuted:()=>Ij,getReductionAxes:()=>Ct,getReshaped:()=>Cj,getReshapedPermuted:()=>Nj,getSliceBeginCoords:()=>Sj,getSliceSize:()=>Tj,getUndoAxesPermutation:()=>Bm,log:()=>Pj,mergeRealAndImagArrays:()=>Mj,prepareAndValidate:()=>fN,prepareSplitSize:()=>jj,segment_util:()=>k0,shouldFuse:()=>Hu,slice_util:()=>or,splitRealAndImagArrays:()=>Lj,tupleValuesAreOne:()=>Ro,upcastType:()=>mr,validateInput:()=>Qh,validateUpdateShape:()=>Kb,warn:()=>Oj});function _j(r,e){let t=r[0].length;r.forEach((n,s)=>{T(n.length===t,()=>`Error in concat${t}D: rank of tensors[${s}] must be the same as the rank of the rest (${t})`)}),T(e>=0&&e`Error in concat${t}D: axis must be between 0 and ${t-1}.`);let o=r[0];r.forEach((n,s)=>{for(let a=0;a`Error in concat${t}D: Shape of tensors[${s}] (${n}) does not match the shape of the rest (${o}) along the non-concatenated axis ${s}.`)})}function wj(r,e){let t=r[0].slice();for(let o=1;o=e*2+1||a%2==1?s.push(a):n.push(a);o.push(...n),o.push(0),o.push(...s)}return o}function Nj(r,e,t,o=!0){let n=[];o?n.push(r[0]/t):n.push(r[0]*t);for(let s=1;s"Number of splits must evenly divide the axis."),o=new Array(e).fill(r.shape[t]/e);else{let n=e.reduce((a,i)=>(i===-1&&(a+=1),a),0);T(n<=1,()=>"There should be only one negative value in split array.");let s=e.indexOf(-1);if(s!==-1){let a=e.reduce((i,l)=>l>0?i+l:i);e[s]=r.shape[t]-a}T(r.shape[t]===e.reduce((a,i)=>a+i),()=>"The sum of sizes must match the size of the axis dimension."),o=e}return o}var k0={};et(k0,{collectGatherOpShapeInfo:()=>Kj,computeOutShape:()=>qj,segOpComputeOptimalWindowSize:()=>Hj});function Hj(r,e){let t=!1,o;for(r<=xg?(o=r,t=!0):o=Ac(r,Math.floor(Math.sqrt(r)));!t;)o>e||o===r?t=!0:o=Ac(r,o+1);return o}function qj(r,e,t){let o=[],n=r.length;for(let s=0;sn))throw new Error(`Expect batchDims in the range of [-${n}, ${n}], but got ${o}`);if(o<0&&(o+=n),o>s)throw new Error(`batchDims (${o}) must be less than rank(x) ( - ${s}).`);if(tLc(e))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function Yj(r){return r.map(e=>el(e))}var Sr={};et(Sr,{nonMaxSuppressionV3Impl:()=>W_,nonMaxSuppressionV4Impl:()=>U_,nonMaxSuppressionV5Impl:()=>j_,whereImpl:()=>M_});var yg={kernelName:ss,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,As(oe(t,"float32"),-1))}}};var v0={kernelName:qs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Pe(oe(t,"float32")),n=xt(ue(le(1),o));return je(de(r,n))}}}};var C0={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=xt(ue(Pe(oe(t,"float32")),1));return de(r,o)}}}};var I0={kernelName:xo,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=r,l=Ct(t.shape,n);return l.length>0&&(i=ye(i,l)),L(i,t.shape)},b:()=>{let i=r,l=Ct(o.shape,n);return l.length>0&&(i=ye(i,l)),L(i,o.shape)}}}};var N0={kernelName:Uo,saveAllInputs:!0,gradFunc:(r,e)=>{let t={};return e.forEach((o,n)=>{t[n]=()=>r.clone()}),t}};var S0={kernelName:jo,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ie(t)}}};var T0={kernelName:oa,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ie(t)}}};var E0={kernelName:Xs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,xt(ue(le(1),Pe(oe(t,"float32")))))}}};var A0={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=xt(Q(le(1),Pe(oe(t,"float32"))));return de(r,o)}}}};var D0={kernelName:Qs,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=Q(Pe(t),Pe(o)),l=O(r,de(o,i)),u=Ct(t.shape,n);return u.length>0&&(l=ye(l,u)),L(l,t.shape)},b:()=>{let i=Q(Pe(t),Pe(o)),l=je(O(r,de(t,i))),u=Ct(o.shape,n);return u.length>0&&(l=ye(l,u)),L(l,o.shape)}}}};var $0={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,Q(Pe(oe(t,"float32")),1))}}};var R0={kernelName:Js,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,ue(le(1),Pe(oe(t,"float32"))))}}};function Zj(r,e,t,o,n,s){let a=k(r,"dy","avgPool3dGrad"),i=k(e,"input","avgPool3dGrad"),l=a,u=i,c=!1;i.rank===4&&(c=!0,l=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),u=L(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),T(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),T(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),s!=null&&T(st(n),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${n}.`);let p={dy:l,input:u},m={filterSize:t,strides:o,pad:n,dimRoundingMode:s},f=E.runKernel(Ul,p,m);return c?L(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var F0=S({avgPool3dGrad_:Zj});var O0={kernelName:na,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a,dimRoundingMode:i}=t;return{x:()=>F0(r,o,n,s,a,i)}}};function Jj(r,e,t,o,n){let s=k(r,"dy","avgPoolGrad"),a=k(e,"input","avgPoolGrad");T(a.rank===s.rank,()=>`Rank of input (${a.rank}) does not match rank of dy (${s.rank})`);let i=a,l=s,u=!1;a.rank===3&&(u=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2]]),l=L(s,[1,s.shape[0],s.shape[1],s.shape[2]])),T(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),T(i.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${i.rank}.`);let c={dy:l,input:i},p={filterSize:t,strides:o,pad:n},m=E.runKernel(Wl,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var P0=S({avgPoolGrad_:Jj});var M0={kernelName:Ho,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a}=t;return{x:()=>P0(r,o,n,s,a)}}};var L0={kernelName:qo,inputsToSave:["a","b"],gradFunc:(r,e,t)=>{let[o,n]=e,{transposeA:s,transposeB:a}=t;return!s&&!a?{a:()=>We(r,n,!1,!0),b:()=>We(o,r,!0,!1)}:!s&&a?{a:()=>We(r,n,!1,!1),b:()=>We(r,o,!0,!1)}:s&&!a?{a:()=>We(n,r,!1,!0),b:()=>We(o,r,!1,!1)}:{a:()=>We(n,r,!0,!0),b:()=>We(r,o,!0,!0)}}};var z0={kernelName:sa,gradFunc:(r,e,t)=>{let{blockShape:o,crops:n}=t;return{x:()=>Aa(r,o,n)}}};var B0={kernelName:bb,gradFunc:(r,e,t)=>{let o=t,n=o.inputShape,s=o.shape,a=Array.from(s);for(let l=n.length-1;l>=0;l--)if(n[l]===s[l])a[l]=1;else if(n[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${s}].`);let i=[];for(let l=0;l1&&i.push(l);return{x:()=>ye(r,i,!0)}}};var V0={kernelName:Eo,gradFunc:r=>({x:()=>r.clone()})};var G0={kernelName:ei,gradFunc:r=>({x:()=>Ie(r)})};var W0={kernelName:Ao,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{clipValueMin:n,clipValueMax:s}=t;return{x:()=>Dt(fr(to(o,n),Oo(o,s)),r,Ie(r))}}};var U0={kernelName:ia,inputsToSave:["x"],gradFunc:yg.gradFunc};var j0={kernelName:is,saveAllInputs:!0,gradFunc:(r,e,t)=>{let o=e.map(l=>l.shape),{axis:n}=t,s=Jt(n,e[0].shape)[0],a=o.map(l=>l[s]);return lr(r,a,s).map(l=>()=>l)}};var H0={kernelName:Ko,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{dilations:s,strides:a,pad:i,dataFormat:l}=t;return T(Ro(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>qc(o.shape,r,n,a,i,l),filter:()=>ep(o,r,n.shape,a,i,l)}}};var q0={kernelName:Xo,inputsToSave:["dy","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{strides:s,pad:a,dataFormat:i,dimRoundingMode:l}=t;return{dy:()=>jr(r,n,s,a,i,1,l),filter:()=>ep(r,o,n.shape,s,a,i,l)}}};function Qj(r,e,t,o,n){let s=r;r.rank===4&&(s=L(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let a=e;a.rank===4&&(a=L(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]])),T(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),T(a.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`),T(t.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${t}.`),T(s.shape[4]===t[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${t[3]}.`),T(a.shape[4]===t[4],()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${t[4]}).`);let i={x:s,dy:a},l={strides:o,pad:n,filterShape:t};return E.runKernel(Kl,i,l)}var K0=S({conv3DBackpropFilter_:Qj});var X0={kernelName:aa,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s}=t;T(Ro(o),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`);let[a,i]=e;return{x:()=>ng(a.shape,r,i,n,s),filter:()=>K0(a,r,i.shape,n,s)}}};var Y0={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(je(Mu(oe(t,"float32"))),r)}}};var Z0={kernelName:ti,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(Lu(oe(t,"float32")),r)}}};var J0={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n,exclusive:s,reverse:a}=t;return{x:()=>{let i=k_([n],o.rank),l=Nu(r,n,s,!a);return i!=null&&(l=Ue(l,i)),l}}}};var Q0={kernelName:Jo,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s,dimRoundingMode:a}=t,i=o==null?[1,1]:o;T(Ro(i),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`);let[l,u]=e;return T(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),T(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),T(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),T(yr(n,i),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'.`),a!=null&&T(st(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`),{x:()=>mg(l.shape,r,u,n,s,o,a),filter:()=>pg(l,r,u.shape,n,s,o,a)}}};var eS={kernelName:la,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,s={x:o,filter:n,dy:r},a={x:o,filter:n,dy:r};return{x:()=>E.runKernel($c,s,t),filter:()=>E.runKernel(Rc,a,t)}}};var tS={kernelName:ni,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e,o={dy:r,y:t};return{x:()=>E.runKernel(eu,o)}}};var rS={kernelName:si,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=O(Xt(je(Pe(t))),2/Math.sqrt(Math.PI));return{x:()=>O(r,o)}}};var oS={kernelName:en,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,t)}}};var nS={kernelName:as,inputsToSave:["input"],gradFunc:(r,e)=>{let[t]=e;return{input:()=>L(r,t.shape)}}};var sS={kernelName:ai,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,Xt(t))}}};var iS={kernelName:tn,gradFunc:r=>({x:()=>Ie(r)})};var aS={kernelName:rn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=de(r,oe(o,"float32")),l=Ct(t.shape,n);return l.length>0?L(ye(i,l),t.shape):i},b:()=>{let i=O(r,oe(t,"float32")),l=Ct(o.shape,n);l.length>0&&(i=L(ye(i,l),o.shape));let u=Pe(o);return je(de(i,oe(u,"float32")))}}}};var lS={kernelName:on,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,e,t)=>{let{varianceEpsilon:o}=t,[n,s,a,i]=e,l=i==null?le(1):i,u=Ct(s.shape,n.shape),c=[];if(s.rank===1){for(let w=0;ws.rank===1?L(O(O(r,Fo(L(f,[1,1,1,s.shape[0]]),c)),l),n.shape):L(O(O(r,f),l),n.shape),mean:()=>{let w=O(O(f,le(-1)),m);return s.rank===1&&(w=ye(w,u)),L(w,s.shape)},variance:()=>{let w=O(O(d,p),m);return s.rank===1&&(w=ye(w,u)),L(w,s.shape)},scale:()=>{let w=O(p,f),v=O(r,w);return s.rank===1&&(v=ye(v,u)),L(v,s.shape)},offset:()=>{let w=r;return s.rank===1&&(w=ye(w,u)),L(w,s.shape)}}}};var pS={kernelName:ls,inputsToSave:["x","indices"],gradFunc:(r,e,t)=>{let[o,n]=e,{axis:s}=t,a=Jt(s,o.shape)[0];return{x:()=>{let l=o.shape,u=n.size,c=l.slice(0,a),p=c.length,m=l.slice(s,l.length).slice(1),f=m.length,d=uS(0,p),h=uS(p+1,p+1+f),g=cS([c,[u],m]),x=L(r,g),b=L(n,[u]),_=cS([[p],d,h]),w=Ue(x,_),v=tf(w,b,o.shape[a]),$=Bm(_);return v=Ue(v,$),v},indices:()=>n}}};function uS(r,e){let t=[];for(let o=r;o{let[t,o]=e;return{a:()=>Ie(t),b:()=>Ie(o)}}};var fS={kernelName:us,gradFunc:r=>({x:()=>oe(r,"float32")})};var dS={kernelName:pi,gradFunc:r=>({x:()=>Ie(r)})};var hS={kernelName:mi,gradFunc:r=>({x:()=>Ie(r)})};var gS={kernelName:fi,gradFunc:r=>({x:()=>Ie(r)})};var xS={kernelName:sn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{alpha:n}=t,s=Qt(o,0);return{x:()=>Dt(s,r,O(r,n))}}};var yS={kernelName:gi,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,Q(t,1))}}};var bS={kernelName:an,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,oe(t,"float32"))}}};var _S={kernelName:_b,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t;return{logits:()=>{let s=!0,a=Xt(o);return ue(r,O(ye(r,n,s),a))}}}};function eH(r,e,t,o=5,n=1,s=1,a=.5){let i={x:r,y:e,dy:t},l={depthRadius:o,bias:n,alpha:s,beta:a};return E.runKernel(su,i,l)}var wS=S({localResponseNormalizationBackprop_:eH});var kS={kernelName:ca,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{depthRadius:s,bias:a,alpha:i,beta:l}=t;return{x:()=>wS(o,n,r,s,a,i,l)}}};function bg(r,e,t,o){return e.rankO(r,oe(_o(t,e),r.dtype))}}var X_={kernelName:ln,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{reductionIndices:n}=o,s=e[0],a=e[1],i=Jt(n,s.shape),l=bg(r,a,s,i);return{x:()=>l.x()}}};var vS={kernelName:un,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>O(r,oe(to(t,o),"float32")),b:()=>O(r,oe(Tu(t,o),"float32"))}}};function tH(r,e,t,o,n,s,a){let i=k(r,"dy","maxPool3dGrad"),l=k(e,"input","maxPool3dGrad"),u=k(t,"output","maxPool3dGrad"),c=i,p=l,m=u,f=!1;l.rank===4&&(f=!0,c=L(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),p=L(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),m=L(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),T(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),T(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),T(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),a!=null&&T(st(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let d={dy:c,input:p,output:m},h={filterSize:o,strides:n,pad:s,dimRoundingMode:a},g=E.runKernel(au,d,h);return f?L(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var CS=S({maxPool3dGrad_:tH});var IS={kernelName:pa,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=t;return{x:()=>CS(r,o,n,s,a,i,l)}}};function rH(r,e,t,o,n,s,a){let i=k(r,"dy","maxPoolGrad"),l=k(e,"input","maxPoolGrad"),u=k(t,"output","maxPoolGrad");T(l.rank===i.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${i.rank})`),T(i.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${i.rank}.`),T(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),a!=null&&T(st(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let c={dy:i,input:l,output:u},p={filterSize:o,strides:n,pad:s,dimRoundingMode:a};return E.runKernel(iu,c,p)}var NS=S({maxPoolGrad_:rH});var SS={kernelName:cn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i}=t;return{x:()=>NS(r,o,n,s,a,i)}}};var TS={kernelName:pn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t,s=Jt(n,o.shape),i=w_(o.shape,s)[1],l=ft(i);return{x:()=>{let c=o.shape.slice();s.forEach(f=>{c[f]=1});let p=L(r,c);return de(O(p,Cr(o.shape,"float32")),l)}}}};var ES={kernelName:mn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{axis:n}=o,[s,a]=e,i=Jt(n,s.shape),l=bg(r,a,s,i);return{x:()=>l.x()}}};var AS={kernelName:fn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>O(r,oe(Oo(t,o),"float32")),b:()=>O(r,oe(Qt(t,o),"float32"))}}};var DS={kernelName:ma,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Fe(r,s,o.shape)}}};var $S={kernelName:yi,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=Ct(t.shape,n);return i.length>0?L(ye(r,i),t.shape):r},b:()=>{let i=O(r,je(Ns(de(t,o)))),l=Ct(o.shape,n);return l.length>0?L(ye(i,l),o.shape):i}}}};var RS={kernelName:dn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=O(r,oe(o,"float32")),l=Ct(t.shape,n);return l.length>0?L(ye(i,l),t.shape):i},b:()=>{let i=O(r,oe(t,"float32")),l=Ct(o.shape,n);return l.length>0?L(ye(i,l),o.shape):i}}}};var FS={kernelName:cs,gradFunc:r=>({x:()=>je(r)})};var OS={kernelName:hn,inputsToSave:["indices"],gradFunc:(r,e)=>{let t=e[0];return{indices:()=>gt(t.shape,"float32")}}};var PS={kernelName:ps,gradFunc:r=>({x:()=>Ie(r)})};var MS={kernelName:ms,saveAllInputs:!0,gradFunc:(r,e,t)=>{let{axis:o}=t;return ur(r,o).map(s=>()=>s)}};var Y_={kernelName:gn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Fe(r,s,o.shape)}}};var LS={kernelName:xn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,e)=>{let[t,o,n]=e,s=t,a=o,i=ze(s.shape,a.shape);return{a:()=>{let c=oe(a,"float32"),p=O(r,O(c,Rr(s,ue(c,le(1))))),m=Ct(s.shape,i);return m.length>0&&(p=ye(p,m)),L(p,s.shape)},b:()=>{let c=Qt(s,0),p=Dt(c,ir(s),Ie(s)),m=O(r,O(n,p)),f=Ct(a.shape,i);return f.length>0&&(m=ye(m,f)),L(m,a.shape)}}}};var zS={kernelName:yn,inputsToSave:["x","alpha"],gradFunc:(r,e)=>{let[t,o]=e,n=Qt(t,0);return{x:()=>Dt(n,r,O(r,o)),alpha:()=>{let s=Dt(n,Ie(r),O(r,t)),a=Ct(o.shape,r.shape);return a.length>0&&(s=ye(s,a)),L(s,o.shape)}}}};var BS={kernelName:Qo,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=de(r,oe(o,"float32")),l=Ct(t.shape,n);return l.length>0?L(ye(i,l),t.shape):i},b:()=>{let i=O(r,oe(t,"float32")),l=Ct(o.shape,n);l.length>0&&(i=L(ye(i,l),o.shape));let u=Pe(o);return je(de(i,oe(u,"float32")))}}}};var VS={kernelName:Ci,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,je(Pe(t)))}}};var GS={kernelName:wn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=O(Oo(t,6),As(t));return{x:()=>O(r,oe(o,"float32"))}}};var WS={kernelName:bn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,oe(As(t),"float32"))}}};var US={kernelName:fs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>L(r,t.shape)}}};var jS={kernelName:_n,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>E.runKernel(mu,n,t)}}};var HS={kernelName:da,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>E.runKernel(pu,n,t)}}};var qS={kernelName:kn,gradFunc:(r,e,t)=>{let{dims:o}=t,n=Jt(o,r.shape);return{x:()=>qt(r,n)}}};var KS={kernelName:vn,gradFunc:r=>({x:()=>Ie(r)})};var XS={kernelName:Cn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>je(de(r,O(Rr(t,1.5),2)))}}};var YS={kernelName:ds,inputsToSave:["condition"],gradFunc:(r,e)=>{let[t]=e;return{condition:()=>oe(Ie(t),"float32"),t:()=>O(r,oe(t,r.dtype)),e:()=>O(r,oe(Ta(t),r.dtype))}}};var ZS={kernelName:Ni,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Qt(t,le(0)),n=le(q_),s=le(K_),a=O(r,s),i=O(O(r,n),Xt(oe(t,"float32")));return Dt(o,a,i)}}}};var JS={kernelName:Nn,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,O(t,ue(le(1),t)))}}};var QS={kernelName:Ti,gradFunc:r=>({x:()=>Ie(r)})};var eT={kernelName:In,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(Ia(oe(t,"float32")),r)}}};var tT={kernelName:Si,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(Iu(oe(t,"float32")),r)}}};var rT={kernelName:hs,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{begin:n,size:s}=t,a=o.shape,[i,l]=Xb(o,n,s),u=[];for(let c=0;c$r(r,u)}}};var oT={kernelName:En,outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{dim:n}=t,s=!0,a=O(r,o);return{logits:()=>ue(a,O(ye(a,[n],s),o))}}};var nT={kernelName:Ei,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,Ur(t))}}};var Z_={kernelName:ha,gradFunc:(r,e,t)=>{let{blockShape:o,paddings:n}=t;return{x:()=>Ca(r,o,n)}}};var J_={kernelName:gs,gradFunc:(r,e,t)=>{let{axis:o}=t;return{x:()=>Je(r,o)}}};var sT={kernelName:Sn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,O(xt(oe(t,"float32")),2))}}};var iT={kernelName:ga,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,O(oe(t,"float32"),2))}}};var aT={kernelName:An,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=le(2);return{a:()=>O(r,O(n,ue(t,o))),b:()=>O(r,O(n,ue(o,t)))}}};var lT={kernelName:Do,gradFunc:r=>({x:()=>Ie(r)})};var uT={kernelName:Dn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=r,l=Ct(t.shape,n);return l.length>0&&(i=ye(i,l)),L(i,t.shape)},b:()=>{let i=r,l=Ct(o.shape,n);return l.length>0&&(i=ye(i,l)),L(je(i),o.shape)}}}};var cT={kernelName:Tn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,n=o.shape.slice(),{axis:s}=t;Jt(s,o.shape).forEach(u=>{n[u]=1});let i=L(r,n),l=O(i,Cr(o.shape,"float32"));return{x:()=>l}}};var pT={kernelName:Di,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,Pe(Ia(t)))}}};var mT={kernelName:$n,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(ue(le(1),Pe(t)),r)}}};var fT={kernelName:yo,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{reps:n}=t;return{x:()=>{let a=Ie(o);if(o.rank===1)for(let i=0;i{let o=t,{perm:n}=o,s=Bm(n);return{x:()=>Ue(r,s)}}};var hT={kernelName:xs,gradFunc:(r,e,t)=>{let o=t,{axis:n}=o;return{value:()=>Bt(r,n)}}};var gT={kernelName:xa,inputsToSave:["segmentIds"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>oH(r,t)}}};function oH(r,e){let t=qr(e,Ie(e)),o=Pn(r,t),n=to(e,le(0,"int32")),s=o.rank-n.rank;for(let i=0;i({x:()=>Ie(r)})};var nH=[yg,v0,C0,I0,N0,S0,T0,E0,A0,D0,$0,R0,O0,M0,L0,z0,B0,V0,G0,W0,U0,j0,q0,H0,X0,Y0,Z0,J0,Q0,eS,BS,tS,rS,oS,nS,sS,aS,iS,lS,pS,mS,fS,dS,hS,gS,xS,yS,bS,_S,kS,X_,X_,vS,IS,SS,TS,ES,AS,DS,$S,RS,FS,OS,PS,MS,Y_,Y_,LS,zS,VS,GS,WS,US,jS,HS,qS,KS,XS,YS,ZS,JS,QS,eT,tT,rT,oT,nT,Z_,Z_,J_,J_,sT,aT,iT,lT,uT,cT,pT,mT,fT,dT,hT,gT,xT];for(let r of nH)kb(r);F().prototype.abs=function(){return this.throwIfDisposed(),Tt(this)};F().prototype.acos=function(){return this.throwIfDisposed(),vm(this)};F().prototype.acosh=function(){return this.throwIfDisposed(),Cm(this)};F().prototype.add=function(r){return this.throwIfDisposed(),Q(this,r)};F().prototype.all=function(r,e){return this.throwIfDisposed(),_u(this,r,e)};F().prototype.any=function(r,e){return this.throwIfDisposed(),nl(this,r,e)};F().prototype.argMax=function(r){return this.throwIfDisposed(),sl(this,r)};F().prototype.argMin=function(r){return this.throwIfDisposed(),Im(this,r)};F().prototype.asScalar=function(){return this.throwIfDisposed(),T(this.size===1,()=>"The array must have only 1 element."),L(this,[])};F().prototype.asType=function(r){return this.throwIfDisposed(),oe(this,r)};F().prototype.as1D=function(){return this.throwIfDisposed(),L(this,[this.size])};F().prototype.as2D=function(r,e){return this.throwIfDisposed(),L(this,[r,e])};F().prototype.as3D=function(r,e,t){return this.throwIfDisposed(),L(this,[r,e,t])};F().prototype.as4D=function(r,e,t,o){return this.throwIfDisposed(),L(this,[r,e,t,o])};F().prototype.as5D=function(r,e,t,o,n){return this.throwIfDisposed(),L(this,[r,e,t,o,n])};F().prototype.asin=function(){return this.throwIfDisposed(),Nm(this)};F().prototype.asinh=function(){return this.throwIfDisposed(),Sm(this)};F().prototype.atan=function(){return this.throwIfDisposed(),Tm(this)};F().prototype.atan2=function(r){return this.throwIfDisposed(),Em(this,r)};F().prototype.atanh=function(){return this.throwIfDisposed(),Am(this)};F().prototype.avgPool=function(r,e,t,o){return this.throwIfDisposed(),va(this,r,e,t,o)};F().prototype.batchToSpaceND=function(r,e){return this.throwIfDisposed(),Ca(this,r,e)};F().prototype.batchNorm=function(r,e,t,o,n){return this.throwIfDisposed(),On(this,r,e,t,o,n)};F().prototype.broadcastTo=function(r){return this.throwIfDisposed(),il(this,r)};F().prototype.cast=function(r){return this.throwIfDisposed(),oe(this,r)};F().prototype.ceil=function(){return this.throwIfDisposed(),$m(this)};F().prototype.clipByValue=function(r,e){return this.throwIfDisposed(),nr(this,r,e)};F().prototype.concat=function(r,e){return this.throwIfDisposed(),r instanceof Ve&&(r=[r]),Je([this,...r],e)};F().prototype.conv1d=function(r,e,t,o,n,s){return this.throwIfDisposed(),vu(this,r,e,t,o,n,s)};F().prototype.conv2dTranspose=function(r,e,t,o,n){return this.throwIfDisposed(),Cu(this,r,e,t,o,n)};F().prototype.conv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),jr(this,r,e,t,o,n,s)};F().prototype.cos=function(){return this.throwIfDisposed(),Ia(this)};F().prototype.cosh=function(){return this.throwIfDisposed(),Iu(this)};F().prototype.cumsum=function(r,e,t){return this.throwIfDisposed(),Nu(this,r,e,t)};F().prototype.depthToSpace=function(r,e){return this.throwIfDisposed(),Fm(this,r,e)};F().prototype.depthwiseConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Cs(this,r,e,t,o,n,s)};F().prototype.dilation2d=function(r,e,t,o,n){return this.throwIfDisposed(),Om(this,r,e,t,o,n)};F().prototype.divNoNan=function(r){return this.throwIfDisposed(),Pm(this,r)};F().prototype.div=function(r){return this.throwIfDisposed(),de(this,r)};F().prototype.dot=function(r){return this.throwIfDisposed(),d_(this,r)};F().prototype.elu=function(){return this.throwIfDisposed(),Is(this)};F().prototype.equal=function(r){return this.throwIfDisposed(),_o(this,r)};F().prototype.erf=function(){return this.throwIfDisposed(),Mm(this)};F().prototype.exp=function(){return this.throwIfDisposed(),Xt(this)};F().prototype.expandDims=function(r){return this.throwIfDisposed(),sr(this,r)};F().prototype.expm1=function(){return this.throwIfDisposed(),Lm(this)};F().prototype.fft=function(){return this.throwIfDisposed(),Ra(this)};F().prototype.flatten=function(){return this.throwIfDisposed(),L(this,[this.size])};F().prototype.floor=function(){return this.throwIfDisposed(),Ns(this)};F().prototype.floorDiv=function(r){return this.throwIfDisposed(),bu(this,r)};F().prototype.gather=function(r,e){return this.throwIfDisposed(),Pn(this,r,e)};F().prototype.greaterEqual=function(r){return this.throwIfDisposed(),to(this,r)};F().prototype.greater=function(r){return this.throwIfDisposed(),Qt(this,r)};F().prototype.ifft=function(){return this.throwIfDisposed(),zi(this)};F().prototype.irfft=function(){return this.throwIfDisposed(),zu(this)};F().prototype.isFinite=function(){return this.throwIfDisposed(),h_(this)};F().prototype.isInf=function(){return this.throwIfDisposed(),g_(this)};F().prototype.isNaN=function(){return this.throwIfDisposed(),x_(this)};F().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Sa(this,r)};F().prototype.lessEqual=function(r){return this.throwIfDisposed(),Oo(this,r)};F().prototype.less=function(r){return this.throwIfDisposed(),Tu(this,r)};F().prototype.localResponseNormalization=function(r,e,t,o){return this.throwIfDisposed(),zm(this,r,e,t,o)};F().prototype.logSigmoid=function(){return this.throwIfDisposed(),b_(this)};F().prototype.logSoftmax=function(r){return this.throwIfDisposed(),Au(this,r)};F().prototype.logSumExp=function(r,e){return this.throwIfDisposed(),Vm(this,r,e)};F().prototype.log=function(){return this.throwIfDisposed(),ir(this)};F().prototype.log1p=function(){return this.throwIfDisposed(),Eu(this)};F().prototype.logicalAnd=function(r){return this.throwIfDisposed(),fr(this,r)};F().prototype.logicalNot=function(){return this.throwIfDisposed(),Ta(this)};F().prototype.logicalOr=function(r){return this.throwIfDisposed(),Du(this,r)};F().prototype.logicalXor=function(r){return this.throwIfDisposed(),v_(this,r)};F().prototype.matMul=function(r,e,t){return this.throwIfDisposed(),We(this,r,e,t)};F().prototype.maxPool=function(r,e,t,o){return this.throwIfDisposed(),Ea(this,r,e,t,o)};F().prototype.max=function(r,e){return this.throwIfDisposed(),ar(this,r,e)};F().prototype.maximum=function(r){return this.throwIfDisposed(),qr(this,r)};F().prototype.mean=function(r,e){return this.throwIfDisposed(),ht(this,r,e)};F().prototype.min=function(r,e){return this.throwIfDisposed(),Li(this,r,e)};F().prototype.minimum=function(r){return this.throwIfDisposed(),Ts(this,r)};F().prototype.mirrorPad=function(r,e){return this.throwIfDisposed(),Wm(this,r,e)};F().prototype.mod=function(r){return this.throwIfDisposed(),Um(this,r)};F().prototype.mul=function(r){return this.throwIfDisposed(),O(this,r)};F().prototype.neg=function(){return this.throwIfDisposed(),je(this)};F().prototype.norm=function(r,e,t){return this.throwIfDisposed(),Gu(this,r,e,t)};F().prototype.notEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};F().prototype.oneHot=function(r,e=1,t=0){return this.throwIfDisposed(),ks(this,r,e,t)};F().prototype.onesLike=function(){return this.throwIfDisposed(),er(this)};F().prototype.pad=function(r,e){return this.throwIfDisposed(),$r(this,r,e)};F().prototype.pool=function(r,e,t,o,n){return this.throwIfDisposed(),N_(this,r,e,t,o,n)};F().prototype.pow=function(r){return this.throwIfDisposed(),Rr(this,r)};F().prototype.prelu=function(r){return this.throwIfDisposed(),Da(this,r)};F().prototype.prod=function(r,e){return this.throwIfDisposed(),$u(this,r,e)};F().prototype.reciprocal=function(){return this.throwIfDisposed(),Hm(this)};F().prototype.relu=function(){return this.throwIfDisposed(),Ir(this)};F().prototype.relu6=function(){return this.throwIfDisposed(),Fu(this)};F().prototype.reshapeAs=function(r){return this.throwIfDisposed(),L(this,r.shape)};F().prototype.reshape=function(r){return this.throwIfDisposed(),L(this,r)};F().prototype.resizeBilinear=function(r,e,t){return this.throwIfDisposed(),hg(this,r,e,t)};F().prototype.resizeNearestNeighbor=function(r,e,t){return this.throwIfDisposed(),gg(this,r,e,t)};F().prototype.reverse=function(r){return this.throwIfDisposed(),qt(this,r)};F().prototype.rfft=function(){return this.throwIfDisposed(),Fa(this)};F().prototype.round=function(){return this.throwIfDisposed(),qm(this)};F().prototype.rsqrt=function(){return this.throwIfDisposed(),Ou(this)};F().prototype.selu=function(){return this.throwIfDisposed(),Pu(this)};F().prototype.separableConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Km(this,r,e,t,o,n,s)};F().prototype.sigmoid=function(){return this.throwIfDisposed(),Ur(this)};F().prototype.sign=function(){return this.throwIfDisposed(),Xm(this)};F().prototype.sin=function(){return this.throwIfDisposed(),Mu(this)};F().prototype.sinh=function(){return this.throwIfDisposed(),Lu(this)};F().prototype.slice=function(r,e){return this.throwIfDisposed(),Fe(this,r,e)};F().prototype.softmax=function(r){return this.throwIfDisposed(),$a(this,r)};F().prototype.softplus=function(){return this.throwIfDisposed(),Ss(this)};F().prototype.spaceToBatchND=function(r,e){return this.throwIfDisposed(),Aa(this,r,e)};F().prototype.split=function(r,e){return this.throwIfDisposed(),lr(this,r,e)};F().prototype.sqrt=function(){return this.throwIfDisposed(),xt(this)};F().prototype.square=function(){return this.throwIfDisposed(),Pe(this)};F().prototype.squaredDifference=function(r){return this.throwIfDisposed(),Bu(this,r)};F().prototype.squeeze=function(r){return this.throwIfDisposed(),wo(this,r)};F().prototype.stack=function(r,e){this.throwIfDisposed();let t=r instanceof Ve?[this,r]:[this,...r];return Bt(t,e)};F().prototype.step=function(r){return this.throwIfDisposed(),As(this,r)};F().prototype.stridedSlice=function(r,e,t,o,n,s,a,i){return this.throwIfDisposed(),Jm(this,r,e,t,o,n,s,a,i)};F().prototype.sub=function(r){return this.throwIfDisposed(),ue(this,r)};F().prototype.sum=function(r,e){return this.throwIfDisposed(),ye(this,r,e)};F().prototype.tan=function(){return this.throwIfDisposed(),Qm(this)};F().prototype.tanh=function(){return this.throwIfDisposed(),Mi(this)};F().prototype.tile=function(r){return this.throwIfDisposed(),Fo(this,r)};F().prototype.toBool=function(){return this.throwIfDisposed(),oe(this,"bool")};F().prototype.toFloat=function(){return this.throwIfDisposed(),oe(this,"float32")};F().prototype.toInt=function(){return this.throwIfDisposed(),oe(this,"int32")};F().prototype.topk=function(r,e){return this.throwIfDisposed(),ef(this,r,e)};F().prototype.transpose=function(r){return this.throwIfDisposed(),Ue(this,r)};F().prototype.unique=function(r){return this.throwIfDisposed(),Qc(this,r)};F().prototype.unsortedSegmentSum=function(r,e){return this.throwIfDisposed(),tf(this,r,e)};F().prototype.unstack=function(r){return this.throwIfDisposed(),ur(this,r)};F().prototype.where=function(r,e){return this.throwIfDisposed(),Dt(r,this,e)};F().prototype.zerosLike=function(){return this.throwIfDisposed(),Ie(this)};var nw={};et(nw,{maxNorm:()=>iH,minMaxNorm:()=>uH,nonNeg:()=>lH,unitNorm:()=>aH});var Q_;function Yt(){return Q_==null&&(Q_=e_().epsilon()),Q_}function Kr(){return"channelsLast"}var ko=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ko.prototype)}},Or=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Or.prototype)}},B=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,B.prototype)}},Ne=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ne.prototype)}},af=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,af.prototype)}},ew=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ew.prototype)}};function Vn(r,e){if(Array.isArray(r)){let t=[];for(let o=0;ot.toUpperCase())}var Wn={};function ap(r){if(r==null)return null;let e={};return e.className=r.getClassName(),e.config=r.getConfig(),e}function rw(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(e=>rw(e));else{let e=Object.keys(r);for(let t of e){let o=r[t];o!=null&&typeof o=="object"&&(!Array.isArray(o)&&o.type==="ndarray"&&typeof o.value=="number"?r[t]=o.value:rw(o))}}}function Vi(r,e={},t={},o="object",n=!1){if(typeof r=="string"){let s=r,a;if(s in t)a=t[s];else if(s in Wn)a=Wn[s];else if(a=e[s],a==null)throw new B(`Unknown ${o}: ${r}. This may be due to one of the following reasons: + ${o.shape}`),T(a%(e*e)==0,()=>`Dimension size must be evenly divisible by ${e*e} but is ${a} for depthToSpace with input shape ${o.shape}`);let i={x:o},l={blockSize:e,dataFormat:t};return E.runKernel(oi,i,l)}var Mm=S({depthToSpace_:BG});function VG(r,e,t,o,n="NHWC",s=[1,1],a){let i=k(r,"x","depthwiseConv2d"),l=k(e,"filter","depthwiseConv2d"),u=i,c=!1;i.rank===3&&(c=!0,u=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),T(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),T(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),T(u.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),a!=null&&T(st(o),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);let p={x:u,filter:l},m={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a},f=E.runKernel(rn,p,m);return c?L(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ns=S({depthwiseConv2d_:VG});function GG(r){let t={x:k(r,"x","diag")};return E.runKernel(Ql,t)}var WG=S({diag_:GG});function UG(r,e,t,o,n=[1,1],s="NHWC"){let a=k(r,"x","dilation2d"),i=k(e,"filter","dilation2d");T(a.rank===3||a.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${a.rank}.`),T(i.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${i.rank}.`),T(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=a,u=!1;a.rank===3&&(l=L(a,[1,a.shape[0],a.shape[1],a.shape[2]]),u=!0);let c={x:l,filter:i},p={strides:t,pad:o,dilations:n},m=E.runKernel(la,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Lm=S({dilation2d_:UG});function jG(r,e){let t=r.length,o=[];for(let n=0;n1&&a===1&&o.unshift(s)}return o}function Ct(r,e){let t=[];for(let o=0;o1)&&t.unshift(s)}return t}function ze(r,e){let t=[],o=Math.max(r.length,e.length);for(let n=0;n"The first dimension of `a` must match the size of `condition`."),s.rank!==1&&Nt(s.shape,l.shape,"Error in where: ");let u={condition:s,t:i,e:l};return E.runKernel(xs,u)}var $t=S({where_:qG});function KG(r){let t={x:k(r,"x","zerosLike")};return E.runKernel(ws,t)}var Ie=S({zerosLike_:KG});function XG(r,e){let t=k(r,"a","div"),o=k(e,"b","div");[t,o]=Ge(t,o);let n=de(t,o),s=Ie(n),a=_o(o,s);return $t(a,s,n)}var zm=S({divNoNan_:XG});function YG(r,e){let t=k(r,"t1","dot"),o=k(e,"t2","dot");T((t.rank===1||t.rank===2)&&(o.rank===1||o.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${t.rank} and ${o.rank}.`);let n=t.rank===1?t.size:t.shape[1],s=o.rank===1?o.size:o.shape[0];if(T(n===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${n} and ${s}.`),t.rank===1&&o.rank===1){let a=L(t,[1,-1]),i=L(o,[-1,1]),l=We(a,i);return L(l,[])}else if(t.rank===1&&o.rank===2){let a=L(t,[1,-1]),i=L(o,[o.shape[0],o.shape[1]]),l=We(a,i);return L(l,[l.size])}else if(t.rank===2&&o.rank===1){let a=L(o,[-1,1]),i=We(t,a);return L(i,[i.size])}else{let a=L(o,[o.shape[0],o.shape[1]]);return We(t,a)}}var b_=S({dot_:YG});function ZG(r){let t={x:k(r,"x","elu")};return E.runKernel(ni,t)}var Ss=S({elu_:ZG});function JG(r){let e=k(r,"x","erf");T(e.dtype==="int32"||e.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),e.dtype==="int32"&&(e=oe(e,"float32"));let t={x:e};return E.runKernel(si,t)}var Bm=S({erf_:JG});function QG(r){let t={x:k(r,"x","exp")};return E.runKernel(nn,t)}var Xt=S({exp_:QG});function eW(r,e=0){let t=k(r,"x","expandDims","string_or_numeric");T(e<=t.rank,()=>"Axis must be <= rank of the tensor");let o={input:t},n={dim:e};return E.runKernel(ps,o,n)}var sr=S({expandDims_:eW});function tW(r){let t={x:k(r,"x","expm1")};return E.runKernel(ai,t)}var Vm=S({expm1_:tW});function rW(r,e){let t=k(r,"x","tile","string_or_numeric");T(t.rank===e.length,()=>`Error in transpose: rank of input ${t.rank} must match length of reps ${e}.`);let o={x:t},n={reps:e};return E.runKernel(yo,o,n)}var Po=S({tile_:rW});function oW(r,e,t,o="float32"){e==null&&(e=r);let n=Ce([r,e],o),s=r<=e?r:e;for(let i=0;i`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),T(st(e),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${e}.`);let a=s,i=!1;s.rank===3&&(i=!0,a=L(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:a},u={depthRadius:e,bias:t,alpha:o,beta:n},c=E.runKernel(ca,l,u);return i?L(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Gm=S({localResponseNormalization_:hW});function gW(r){let t={x:k(r,"x","log")};return E.runKernel(pn,t)}var ir=S({log_:gW});function xW(r){let t={x:k(r,"x","log1p")};return E.runKernel(gi,t)}var Au=S({log1p_:xW});function yW(r){return T(Hs(r),()=>"The f passed in grad(f) must be a function"),(e,t)=>{let o=k(e,"x","tf.grad","string_or_numeric"),n=t!=null?k(t,"dy","tf.grad"):null;return E.tidy(()=>{let{value:s,grads:a}=E.gradients(()=>r(o),[o],n);return n!=null&&Nt(s.shape,n.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),cg(a),a[0]})}}function bW(r){return T(Hs(r),()=>"The f passed in grads(f) must be a function"),(e,t)=>{T(Array.isArray(e),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let o=ya(e,"args","tf.grads","string_or_numeric"),n=t!=null?k(t,"dy","tf.grads"):null;return E.tidy(()=>{let{value:s,grads:a}=E.gradients(()=>r(...o),o,n);return n!=null&&Nt(s.shape,n.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),cg(a),a})}}function _W(r){return T(Hs(r),()=>"The f passed in valueAndGrad(f) must be a function"),(e,t)=>{T(e instanceof Ve,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),T(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:o,value:n}=E.gradients(()=>r(e),[e],t);return cg(o),{grad:o[0],value:n}}}function wW(r){return T(Hs(r),()=>"The f passed in valueAndGrads(f) must be a function"),(e,t)=>{T(Array.isArray(e)&&e.every(n=>n instanceof Ve),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),T(t==null||t instanceof Ve,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let o=E.gradients(()=>r(...e),e,t);return t!=null&&Nt(o.value.shape,t.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),cg(o.grads),o}}function pg(r,e){T(Hs(r),()=>"The f passed in variableGrads(f) must be a function"),T(e==null||Array.isArray(e)&&e.every(u=>u instanceof tl),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let t=e!=null;if(!t){e=[];for(let u in E.registeredVariables)e.push(E.registeredVariables[u])}let o=t?e.filter(u=>!u.trainable):null,n=e.length;e=e.filter(u=>u.trainable),T(e.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${n} variables is trainable.`);let s=!0,{value:a,grads:i}=E.gradients(r,e,null,s);T(i.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),T(a.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${a.rank} tensor`);let l={};return e.forEach((u,c)=>{i[c]!=null&&(l[u.name]=i[c])}),o!=null&&o.forEach(u=>l[u.name]=null),{value:a,grads:l}}function Hr(r){return E.customGrad(r)}function cg(r){if(r.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function kW(r){let t={x:k(r,"x","neg")};return E.runKernel(fs,t)}var je=S({neg_:kW});function vW(r){let t={x:k(r,"x","softplus")};return E.runKernel(Ei,t)}var Es=S({softplus_:vW});function CW(r){let e=k(r,"x","logSigmoid");return Hr(o=>({value:je(Es(je(o))),gradFunc:a=>O(a,Ur(je(o)))}))(e)}var C_=S({logSigmoid_:CW});function IW(r,e=null,t=!1){let n={x:k(r,"x","max")},s={reductionIndices:e,keepDims:t};return E.runKernel(mn,n,s)}var ar=S({max_:IW});function NW(r,e){let t=k(r,"a","sub"),o=k(e,"b","sub");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(On,n)}var ue=S({sub_:NW});function SW(r,e=null,t=!1){let o=k(r,"x","sum");o.dtype==="bool"&&(o=oe(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return E.runKernel($n,n,s)}var ye=S({sum_:SW});function TW(r,e=-1){let t=k(r,"logits","logSoftmax");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and axis was ${e}`);return Hr((n,s)=>{let a=!0,i=ar(n,e,!0),l=ue(n,i),u=ue(oe(l,"float32"),ir(ye(Xt(l),e,a)));return s([u]),{value:u,gradFunc:(p,m)=>{let[f]=m,d=!0,h=Xt(f);return ue(p,O(ye(p,e,d),h))}}})(t)}var Du=S({logSoftmax_:TW});function I_(r,e){for(let t=0;tr[s]);return[t,n]}function Vn(r,e){let t=e.map(o=>1);return ON(r,t,e)}function EW(r,e,t){T(I_(e,t),()=>`${r} supports only inner-most axes for now. Got axes ${e} and rank-${t} input.`)}function S_(r,e){if(I_(r,e))return null;let t=[];for(let o=0;ot.push(o)),t}function Wm(r){return r.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function AW(r,e){let t=[];for(let o=e-r;o`Error in maxPool: input must be rank 4 but got rank ${i.rank}.`),T(yr(t,a),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${t} and dilations '${a}'`),n!=null&&T(st(o),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n},p=E.runKernel(dn,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ea=S({maxPool_:PW});function MW(r,e=[1,1,1],t,o,n,s="NDHWC"){let a=k(r,"x","maxPool3d"),i=a,l=!1;a.rank===4&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),T(i.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${i.rank}.`),T(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),n!=null&&T(st(o),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${n} but got pad ${o}.`);let u={x:i},c={filterSize:e,strides:t,pad:o,dimRoundingMode:n,dataFormat:s},p=E.runKernel(pa,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var jm=S({maxPool3d_:MW});function LW(r,e,t,o,n=!1){let a={x:k(r,"x","maxPoolWithArgmax")},i={filterSize:e,strides:t,pad:o,includeBatchInIndex:n},l=E.runKernel(lu,a,i);return{result:l[0],indexes:l[1]}}var E_=S({maxPoolWithArgmax_:LW});function zW(r,e){let t=k(r,"a","maximum"),o=k(e,"b","maximum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=oe(t,"int32"),o=oe(o,"int32")),ze(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(fn,n)}var qr=S({maximum_:zW});function BW(r,e=null,t=!1){let n={x:k(r,"x","mean")},s={axis:e,keepDims:t};return E.runKernel(hn,n,s)}var ht=S({mean_:BW});function VW(r,e=null,t=!1){let n={x:k(r,"x","min")},s={axis:e,keepDims:t};return E.runKernel(gn,n,s)}var Li=S({min_:VW});function GW(r,e){let t=k(r,"a","minimum"),o=k(e,"b","minimum");[t,o]=Ge(t,o),t.dtype==="bool"&&(t=oe(t,"int32"),o=oe(o,"int32")),ze(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(xn,n)}var As=S({minimum_:GW});function WW(r,e,t){T(t==="reflect"||t==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${t}.`);let o=k(r,"x","mirrorPad");if(o.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");T(e.length===o.rank,()=>`Padding doesn't match input. Must be ${o.rank}. Got ${e.length}.`);let n=t==="reflect"?1:0;for(let i=0;i"Invalid number of paddings. Must be length of 2 each."),T(e[i][0]>=0&&e[i][0]<=o.shape[i]-n&&e[i][1]>=0&&e[i][1]<=o.shape[i]-n,()=>`Padding in dimension ${i} cannot be greater than or equal to ${o.shape[i]-n} or less than 0 for input of shape ${o.shape}`);let s={paddings:e,mode:t},a={x:o};return E.runKernel(ma,a,s)}var Hm=S({mirrorPad_:WW});function UW(r,e){let t=k(r,"a","mod"),o=k(e,"b","mod");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(yi,n)}var qm=S({mod_:UW});function jW(r){let e=k(r,"x","square"),t={};return E.runKernel("Square",{x:e},t)}var Pe=S({square_:jW});function HW(r,e=null,t=!1){r=k(r,"x","moments");let o=Jt(e,r.shape),n=ht(r,o,t),s=n.shape;t||(s=Vn(n.shape,o));let a=Pe(ue(oe(r,"float32"),L(n,s))),i=ht(a,o,t);return{mean:n,variance:i}}var Yc=S({moments_:HW});function qW(r,e,t,o){let n=k(e,"data","multiRNNCell"),s=ya(t,"c","multiRNNCell"),a=ya(o,"h","multiRNNCell"),i=n,l=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${a}`);t=t||Math.random();let l={logits:a===1?L(n,[1,-1]):n},u={numSamples:e,seed:t,normalized:o},c=E.runKernel(uu,l,u);return a===1?L(c,[c.size]):c}var A_=S({multinomial_:XW});function YW(r,e){let t=k(r,"a","notEqual"),o=k(e,"b","notEqual");[t,o]=Ge(t,o),ze(t.shape,o.shape);let n={a:t,b:o};return E.runKernel(bi,n)}var Gn=S({notEqual_:YW});function gt(r,e="float32"){if(e==="complex64"){let o=gt(r,"float32"),n=gt(r,"float32");return bo(o,n)}let t=$c(ft(r),e);return E.makeTensor(t,r,e)}function Cr(r,e="float32"){if(e==="complex64"){let o=Cr(r,"float32"),n=gt(r,"float32");return bo(o,n)}let t=hm(ft(r),e);return E.makeTensor(t,r,e)}function ZW(r){let t={x:k(r,"x","onesLike")};return E.runKernel(ds,t)}var er=S({onesLike_:ZW});function JW(r,e){let t=k(r,"v1","outerProduct"),o=k(e,"v2","outerProduct");T(t.rank===1&&o.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${t.rank} and ${o.rank}.`);let n=L(t,[-1,1]),s=L(o,[1,-1]);return We(n,s)}var QW=S({outerProduct_:JW});function e4(r,e,t=0){let o=k(r,"x","pad");if(o.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let n={paddings:e,constantValue:t},s={x:o};return E.runKernel(_n,s,n)}var $r=S({pad_:e4});function t4(r,e,t=0){return T(e.length===2,()=>"Invalid number of paddings. Must be length of 2."),$r(r,[e],t)}var r4=S({pad1d_:t4});function o4(r,e,t=0){return T(e.length===2&&e[0].length===2&&e[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),$r(r,e,t)}var n4=S({pad2d_:o4});function s4(r,e,t=0){return T(e.length===3&&e[0].length===2&&e[1].length===2&&e[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),$r(r,e,t)}var i4=S({pad3d_:s4});function a4(r,e,t=0){return T(e.length===4&&e[0].length===2&&e[1].length===2&&e[2].length===2&&e[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),$r(r,e,t)}var l4=S({pad4d_:a4});function u4(r,e,t){let o=k(r,"x","spaceToBatchND");T(o.rank>=1+e.length,()=>`input rank ${o.rank} should be > than [blockShape] ${e.length}`),T(t.length===e.length,()=>`paddings.shape[0] ${t.length} must be equal to [blockShape] ${e.length}`),T(o.shape.reduce((a,i,l)=>l>0&&l<=e.length?a&&(i+t[l-1][0]+t[l-1][1])%e[l-1]==0:a,!0),()=>`input spatial dimensions ${o.shape.slice(1)} with paddings ${t.toString()} must be divisible by blockShapes ${e.toString()}`);let n={x:o},s={blockShape:e,paddings:t};return E.runKernel(ha,n,s)}var Aa=S({spaceToBatchND_:u4});function m4(r,e,t,o,n,s){n==null&&(n=[1,1]),s==null&&(s=1),o===0&&(o="valid");let a=k(r,"x","maxPool"),i=a,l=!1;a.rank===3&&(l=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2]])),T(yr(s,n),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${n}'`);let u=a_(i.shape,e,s,n,o),c=[u.dilationHeight,u.dilationWidth],p;o==="same"?p=p4([u.filterHeight,u.filterWidth],c):p=[[0,0],[0,0]];let m=c[0]===1&&c[1]===1,[f,d]=c4([u.inHeight,u.inWidth],c,p),h=m?o:"valid",g=m?i:Aa(i,c,f),b=(t==="avg"?()=>va(g,e,s,h):()=>Ea(g,e,s,h))(),_=m?b:Ca(b,c,d);return l?L(_,[_.shape[1],_.shape[2],_.shape[3]]):_}function c4(r,e,t){let o=t.map(c=>c[0]),n=t.map(c=>c[1]),s=r.concat(o,n),a=e.map((c,p)=>(c-s[p]%c)%c),i=n.map((c,p)=>c+a[p]),l=e.map((c,p)=>[o[p],i[p]]),u=e.map((c,p)=>[0,a[p]]);return[l,u]}function p4(r,e){let o=r.map((a,i)=>a+(a-1)*(e[i]-1)).map(a=>a-1),n=o.map(a=>Math.floor(a/2)),s=o.map((a,i)=>a-n[i]);return o.map((a,i)=>[n[i],s[i]])}var D_=S({pool_:m4});function f4(r,e){let t=k(r,"base","pow"),o=k(e,"exp","pow");[t,o]=Ge(t,o);let n={a:t,b:o};return E.runKernel(wn,n)}var Rr=S({pow_:f4});function d4(r,e){let t=k(r,"x","prelu"),o=k(e,"alpha","prelu"),n={x:t,alpha:o};return E.runKernel(kn,n)}var Da=S({prelu_:d4});function h4(r,e=null,t=!1){let o=k(r,"x","prod");o.dtype==="bool"&&(o=oe(o,"int32"));let n={x:o},s={axis:e,keepDims:t};return E.runKernel(vi,n,s)}var Ru=S({prod_:h4});function g4(r,e,t){let o=ft(r),n=null;if(t==null||t==="float32")n=new Float32Array(o);else if(t==="int32")n=new Int32Array(o);else if(t==="bool")n=new Uint8Array(o);else throw new Error(`Unknown data type ${t}`);for(let s=0;s=1||a===0);let i=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*i,t=this.mean+this.stdDev*s*i,(!this.truncated||this.isValidTruncated(e))&&(o=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},L_=class{constructor(e,t,o,n){this.alpha=e,this.beta=1/t,this.dtype=o;let s=n||Math.random();this.randu=fg.alea(s.toString()),this.randn=new Zc(0,1,o,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,o,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0);if(a*=a*a,e=n*n,t=1-.331*e*e,o=.5*e+this.d*(1-a+Math.log(a)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=o,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=fg.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function C4(r,e,t=1,o="float32",n){if(t==null&&(t=1),o==null&&(o="float32"),o!=="float32"&&o!=="int32")throw new Error(`Unsupported data type ${o}`);let s=new L_(e,t,o,n),a=Ce(r,o);for(let i=0;i`Error in reverse1D: x must be rank 1 but got rank ${e.rank}.`),qt(e,0)}var F4=S({reverse1d_:R4});function O4(r,e){let t=k(r,"x","reverse");return T(t.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${t.rank}.`),qt(t,e)}var P4=S({reverse2d_:O4});function M4(r,e){let t=k(r,"x","reverse");return T(t.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${t.rank}.`),qt(t,e)}var L4=S({reverse3d_:M4});function z4(r,e){let t=k(r,"x","reverse");return T(t.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${t.rank}.`),qt(t,e)}var B4=S({reverse4d_:z4});function V4(r){let t={x:k(r,"x","round")};return E.runKernel(Sn,t)}var Ym=S({round_:V4});function G4(r){let t={x:k(r,"x","rsqrt")};return E.runKernel(Tn,t)}var Pu=S({rsqrt_:G4});function le(r,e){if((rr(r)&&e!=="string"||Array.isArray(r))&&e!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(e==="string"&&rr(r)&&!(r instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return Gr(r,[],[],e)}function W4(r){let t={x:k(r,"x","selu")};return E.runKernel(Ni,t)}var Mu=S({selu_:W4});function U4(r,e,t,o,n,s=[1,1],a="NHWC"){let i=k(r,"x","separableConv2d"),l=k(e,"depthwiseFilter","separableConv2d"),u=k(t,"pointwiseFilter","separableConv2d"),c=i,p=!1;if(i.rank===3&&(p=!0,c=L(i,[1,i.shape[0],i.shape[1],i.shape[2]])),a==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");T(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),T(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),T(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),T(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),T(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let m=l.shape[2],f=l.shape[3];T(u.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${u.shape[2]}.`);let d=Ns(c,l,o,n,a,s),g=jr(d,u,1,"valid",a);return p?L(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var Zm=S({separableConv2d_:U4});async function j4(r,e){let t=k(r,"x","setdiff1d"),o=k(e,"y","setdiff1d");T(t.dtype===o.dtype,()=>`x and y should have the same dtype, but got x (${t.dtype}) and y (${o.dtype}).`),T(t.rank===1,()=>`x should be 1D tensor, but got x (${t.shape}).`),T(o.rank===1,()=>`y should be 1D tensor, but got y (${o.shape}).`);let n=await t.data(),s=await o.data(),a=new Set(s),i=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${o.rank} tensor`),Fe(o,[e],[t])}var Qm=S({slice1d_:X4});function Y4(r,e,t){let o=k(r,"x","slice2d");return T(o.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${o.rank} tensor`),Fe(o,e,t)}var hg=S({slice2d_:Y4});function Z4(r,e,t){let o=k(r,"x","slice3d");return T(o.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${o.rank} tensor`),Fe(o,e,t)}var ef=S({slice3d_:Z4});function J4(r,e,t){let o=k(r,"x","slice4d");return T(o.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${o.rank} tensor`),Fe(o,e,t)}var Qc=S({slice4d_:J4});function Q4(r,e=-1){let t=k(r,"logits","softmax","float32");if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${t.rank} and dim was ${e}`);let o={logits:t},n={dim:e};return E.runKernel(Rn,o,n)}var $a=S({softmax_:Q4});function eU(r){T(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let e={input:r};return E.runKernel(tu,e)}var Ra=S({fft_:eU});function tU(r){T(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let e={input:r};return E.runKernel(ru,e)}var zi=S({ifft_:tU});function rU(r){let e=r.shape[r.shape.length-1],t=r.size/e,o;if(e<=2){let n=L(r,[t,e]);o=zi(n)}else{let n=[t,2*(e-1)],s=L(al(r),[t,e]),a=L(Tu(r),[t,e]),i=qt(Fe(s,[0,1],[t,e-2]),1),l=O(qt(Fe(a,[0,1],[t,e-2]),1),le(-1)),u=Je([s,i],1),c=Je([a,l],1),p=L(bo(u,c),[n[0],n[1]]);o=zi(p)}if(o=al(o),r.rank===3&&r.shape[0]!==0){let n=o,s=r.shape[0];o=L(o,[s,o.shape[0]/s,o.shape[1]]),n.dispose()}return o}var Bu=S({irfft_:rU});function oU(r,e,t=0){let n={x:k(r,"x","split")},s={numOrSizeSplits:e,axis:t};return E.runKernel(bs,n,s)}var lr=S({split_:oU});function nU(r,e){T(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let t=r.shape[r.shape.length-1],o=r.size/t,n;if(e!=null&&e0),h=r.shape.map(g=>g);h[r.shape.length-1]=e,n=Fe(r,d,h),t=e}else if(e!=null&&e>t){let d=r.shape.map(h=>h);d[r.shape.length-1]=e-t,n=Je([r,gt(d)],r.shape.length-1),t=e}else n=r;let s=Ie(n),a=L(bo(n,s),[o,t]),i=Ra(a),l=Math.floor(t/2)+1,u=al(i),c=Tu(i),p=lr(u,[l,t-l],u.shape.length-1),m=lr(c,[l,t-l],c.shape.length-1),f=n.shape.slice();return f[n.shape.length-1]=l,L(bo(p[0],m[0]),f)}var Fa=S({rfft_:nU});function sU(r){let t={x:k(r,"x","sqrt")};return E.runKernel(Dn,t)}var xt=S({sqrt_:sU});function iU(r,e){let t=k(r,"a","squaredDifference"),o=k(e,"b","squaredDifference");[t,o]=Ge(t,o),ze(t.shape,o.shape);let n={a:t,b:o},s={};return E.runKernel(Fn,n,s)}var Vu=S({squaredDifference_:iU});function aU(r,e){let t=k(r,"x","squeeze");return L(t,hb(t.shape,e).newShape)}var wo=S({squeeze_:aU});function lU(r,e=0){let t=ya(r,"tensors","stack","string_or_numeric");T(t.length>=1,()=>"Pass at least one tensor to tf.stack"),t.length>0&&T(e<=t[0].rank,()=>"Axis must be <= rank of the tensor");let o=t,n={axis:e};return E.runKernel(hs,o,n)}var Bt=S({stack_:lU});function uU(r,e=0){let o={x:k(r,"x","step")},n={alpha:e};return E.runKernel($o,o,n)}var $s=S({step_:uU});function cU(r,e,t,o,n=0,s=0,a=0,i=0,l=0){let c={x:k(r,"x","stridedSlice")},p={begin:e,end:t,strides:o,beginMask:n,endMask:s,ellipsisMask:a,newAxisMask:i,shrinkAxisMask:l};return E.runKernel(Ai,c,p)}var tf=S({stridedSlice_:cU});function pU(r){let t={x:k(r,"x","tan")};return E.runKernel(Di,t)}var rf=S({tan_:pU});function Vt(r,e){To(r);let t=kr(r,e);if(t.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Gr(r,null,t,e)}function Bi(r,e,t){if(To(r),e!=null&&e.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let o=kr(r,t);if(o.length!==2&&o.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Gr(r,e,o,t)}function mU(r,e,t){if(To(r),e!=null&&e.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let o=kr(r,t);if(o.length!==4&&o.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Gr(r,e,o,t)}function fU(r,e,t){if(To(r),e!=null&&e.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let o=kr(r,t);if(o.length!==5&&o.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Gr(r,e,o,t)}function dU(r,e,t){if(To(r),e!=null&&e.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let o=kr(r,t);if(o.length!==6&&o.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(o.length===1&&e==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return e=e||o,Gr(r,e,o,t)}function hU(r,e=1,t=!0){let o=k(r,"x","topk");if(o.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let n=o.shape[o.shape.length-1];if(e>n)throw new Error(`'k' passed to topk() must be <= the last dimension (${n}) but got ${e}`);let s={x:o},a={k:e,sorted:t},[i,l]=E.runKernel($i,s,a);return{values:i,indices:l}}var of=S({topk_:hU});function gU(r,e=0,t=1,o,n){if(o!=null&&o==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Zc(e,t,o,!0,n),a=Ce(r,o);for(let i=0;i0,()=>"The input tensor must be at least 1D");let o={x:t},n={axis:e},[s,a]=E.runKernel(du,o,n);return{values:s,indices:a}}var ep=S({unique_:xU});function yU(r,e,t){let o=k(r,"x","unsortedSegmentSum"),n=k(e,"segmentIds","unsortedSegmentSum","int32");T(st(t),()=>"numSegments must be of dtype int");let s={x:o,segmentIds:n},a={numSegments:t};return E.runKernel(xa,s,a)}var nf=S({unsortedSegmentSum_:yU});function bU(r,e=0){let t=k(r,"x","unstack","string_or_numeric");T(e>=-t.shape.length&&e`Axis = ${e} is not in [-${t.shape.length}, ${t.shape.length})`);let o={value:t},n={axis:e};return E.runKernel(_s,o,n)}var ur=S({unstack_:bU});function V_(r,e=!0,t,o){return E.makeVariable(r,e,t,o)}function G_(r,e){let t=[];for(let s=0;s0,()=>"mask cannot be scalar"),Nt(i.slice(s,s+a),n.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let h=s;h"Shape mismatch in v and x");let l=le(1),u=ue(l,i),c=O(ue(a,s),u);if(n){T(o!=null,()=>"When using zeroDebias: true, step is required.");let p=k(o,"step","movingAverage");c=de(c,ue(l,Rr(i,p)))}return Q(s,c)}var IU=S({movingAverage_:CU});function NU(r,e,t){let o=k(r,"indices","scatterND","int32"),n=k(e,"updates","scatterND");ng(n,o,t);let s={indices:o,updates:n},a={shape:t};return E.runKernel(Ii,s,a)}var W_=S({scatterND_:NU});function JN(r,e,t,o){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let n=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(t.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${t.length}, should be: ${s}.`);let a=e.size;if(!(e.rank===0||e.rank===1&&a===n))throw new Error(`sparseValues has incorrect shape ${e.shape}, should be [] or [${n}]`);if(e.dtype!==o.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function SU(r,e,t,o=0){let n=k(r,"sparseIndices","sparseToDense","int32"),s=k(e,"sparseValues","sparseToDense"),a=k(o,"defaultValue","sparseToDense",s.dtype);JN(n,s,t,a);let i={sparseIndices:n,sparseValues:s,defaultValue:a},l={outputShape:t};return E.runKernel(fu,i,l)}var af=S({sparseToDense_:SU});function TU(r,e){let t=k(e,"indices","gatherND","int32"),n={params:k(r,"x","gatherND"),indices:t};return E.runKernel(ui,n)}var U_=S({gatherND_:TU});function QN(r,e){if(e==null)return r.shape.slice();if(Vr(r.shape,e))return e;if(r.shape.length===e.length){let t=[];for(let o=0;o`x has to be a floating point tensor since it's going to be scaled, but got a ${n.dtype} tensor instead.`),T(e>=0&&e<1,()=>`rate must be a float in the range [0, 1), but got ${e}.`),e===0)return r instanceof Ve?n.clone():n;let s=QN(n,t),a=1-e,i=de(Ts(Q(Ds(s,0,1,"float32",o),a)),a);return O(n,i)}var j_=S({dropout_:EU});function H_(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function lf(r,e,t){let o=1-r%2,n=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${o.rank}`),T(o.rank-1===n.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${o.rank} and targets rank ${n.rank}`),Nt(o.shape.slice(0,o.shape.length-1),n.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=o.shape[o.shape.length-1];T(t>0&&t<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${t}`);let a=await o.data(),i=await n.data(),[l,u]=[a.length/s,s],c=gb("bool",l);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hFU,depthwiseConv2d:()=>LU,matMul:()=>BU});function $U(r,e,t,o,n,s="NHWC",a){let i=r;r.rank===3&&(i=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]])),T(i.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${i.shape}.`),T(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),T(t.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${t}.`);let u=s==="NHWC"?i.shape[3]:i.shape[1],c=s==="NHWC"?l.shape[3]:l.shape[1];T(u===t[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${t[2]}.`),T(c===t[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${t[3]}).`),a!=null&&T(st(n),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${a} but got pad ${n}.`);let p={x:i,dy:l},m={strides:o,pad:n,dataFormat:s,dimRoundingMode:a,filterShape:t};return E.runKernel(ql,p,m)}var tp=S({conv2DBackpropFilter_:$U});function Uu(r,e,t){if(t==null||t==="linear")return r;if(t==="relu")return O(r,$s(e));throw new Error(`Cannot compute gradient for fused activation ${t}.`)}function ju(r,e){let t=e,o=Ct(r.shape,e.shape);return o.length>0&&(t=ye(t,o)),L(t,r.shape)}function Hu(r,e,t,o){if(e==="linear")return r;if(e==="relu")return Ir(r);if(e==="elu")return Ss(r);if(e==="relu6")return Ou(r);if(e==="prelu")return Da(r,t);if(e==="leakyrelu")return Sa(r,o);throw new Error(`Unknown fused activation ${e}.`)}var qu=(r,e)=>!(r>0)||e==="linear";function RU({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(l=l||"linear",qu(E.state.gradientDepth,l)===!1){let v=jr(r,e,t,o,n,s,a);return i!=null&&(v=Q(v,i)),Hu(v,l,u,c)}let p=k(r,"x","conv2d"),m=k(e,"filter","conv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=L(p,[1,p.shape[0],p.shape[1],p.shape[2]])),T(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),T(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),a!=null&&T(st(o),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`),T(f.shape[3]===m.shape[2],()=>`Error in conv2d: depth of input (${f.shape[3]}) must match input depth for filter ${m.shape[2]}.`),T(yr(t,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),T(n==="NHWC",()=>`Error in conv2d: got dataFormat of ${n} but only NHWC is currently supported.`);let h=ku(f.shape,m.shape,t,s,o,a),g;i!=null&&(g=k(i,"bias","fused conv2d"),[g]=Ge(g,p),ze(h.outShape,g.shape));let x;u!=null&&(x=k(u,"prelu weights","fused conv2d"));let b=(v,$)=>{let[A,R,M,V]=$,G=Uu(v,M,l);T(Oo(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=Kc(R.shape,G,A,t,o),q=tp(R,G,A.shape,t,o),Z=[W,q];if(V!=null){let X=ju(V,G);Z.push(X)}return Z},_={x:f,filter:m,bias:g,preluActivationWeights:x},w={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Hr(($,A,R)=>{let M=E.runKernel(vs,_,w);return R([A,$,M]),d&&(M=L(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m):Hr(($,A,R,M)=>{let V=E.runKernel(vs,_,w);return M([A,$,V,R]),d&&(V=L(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:b}})(f,m,g)}var FU=S({fusedConv2d_:RU});function OU(r,e,t,o,n,s=[1,1],a){let i=r;r.rank===3&&(i=L(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let l=e;l.rank===3&&(l=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={x:i,dy:l},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,filterShape:t};return E.runKernel(Zl,u,c)}var gg=S({depthwiseConv2dNativeBackpropFilter_:OU});function PU(r,e,t,o,n,s=[1,1],a){let i=e,l=!1;e.rank===3&&(l=!0,i=L(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let u={dy:i,filter:t},c={strides:o,pad:n,dimRoundingMode:a,dilations:s,inputShape:r},p=E.runKernel(Jl,u,c);return l?L(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var xg=S({depthwiseConv2dNativeBackpropInput_:PU});function MU({x:r,filter:e,strides:t,pad:o,dataFormat:n="NHWC",dilations:s=[1,1],dimRoundingMode:a,bias:i,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:c}){if(qu(E.state.gradientDepth,l)===!1){let v=Ns(r,e,t,o,n,s,a);return i!=null&&(v=Q(v,i)),Hu(v,l,u,c)}let p=k(r,"x","depthwiseConv2d"),m=k(e,"filter","depthwiseConv2d"),f=p,d=!1;p.rank===3&&(d=!0,f=L(p,[1,p.shape[0],p.shape[1],p.shape[2]])),T(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),T(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),T(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),T(yr(t,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${t} and dilations '${s}'`),a!=null&&T(st(o),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${a} but got pad ${o}.`);let h=ku(f.shape,m.shape,t,s,o,a,!0),g;i!=null&&(g=k(i,"bias","fused conv2d"),[g]=Ge(g,p),ze(h.outShape,g.shape));let x;u!=null&&(x=k(u,"prelu weights","fused depthwiseConv2d"));let b=(v,$)=>{T(Oo(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,R,M,V]=$,G=Uu(v,M,l),W=xg(R.shape,G,A,t,o,s,a),q=gg(R,G,A.shape,t,o,s,a);if(V!=null){let Z=ju(g,G);return[W,q,Z]}return[W,q]},_={x:f,filter:m,bias:g,preluActivationWeights:x},w={strides:t,pad:o,dataFormat:n,dilations:s,dimRoundingMode:a,activation:l,leakyreluAlpha:c};return i==null?Hr(($,A,R)=>{let M=E.runKernel(Cs,_,w);return R([A,$,M]),d&&(M=L(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:b}})(f,m):Hr(($,A,R,M)=>{let V=E.runKernel(Cs,_,w);return M([A,$,V,R]),d&&(V=L(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:b}})(f,m,g)}var LU=S({fusedDepthwiseConv2d_:MU});function zU({a:r,b:e,transposeA:t=!1,transposeB:o=!1,bias:n,activation:s="linear",preluActivationWeights:a,leakyreluAlpha:i}){if(qu(E.state.gradientDepth,s)===!1){let V=We(r,e,t,o);return n!=null&&(V=Q(V,n)),Hu(V,s,a,i)}let l=k(r,"a","fused matMul"),u=k(e,"b","fused matMul");[l,u]=Ge(l,u);let c=t?l.shape[l.rank-2]:l.shape[l.rank-1],p=o?u.shape[u.rank-1]:u.shape[u.rank-2],m=t?l.shape[l.rank-1]:l.shape[l.rank-2],f=o?u.shape[u.rank-2]:u.shape[u.rank-1],d=l.shape.slice(0,-2),h=u.shape.slice(0,-2),g=ft(d),x=ft(h);T(l.rank>=2&&u.rank>=2&&l.rank===u.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${l.rank} and ${u.rank}.`),T(Vr(d,h),()=>`Error in fused matMul: outer dimensions (${d}) and (${h}) of Tensors with shapes ${l.shape} and ${u.shape} must match.`),T(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${t} and transposeB=${o} must match.`);let b=l.shape.slice(0,-2).concat([m,f]),_=t?L(l,[g,c,m]):L(l,[g,m,c]),w=o?L(u,[x,f,p]):L(u,[x,p,f]),v;n!=null&&(v=k(n,"bias","fused matMul"),[v]=Ge(v,l),ze(b,v.shape));let $;a!=null&&($=k(a,"prelu weights","fused matMul"));let A=(V,G)=>{let[W,q,Z,X]=G,Y=Uu(L(V,Z.shape),Z,s),te,K;if(!t&&!o?(te=We(Y,q,!1,!0),K=We(W,Y,!0,!1)):!t&&o?(te=We(Y,q,!1,!1),K=We(Y,W,!0,!1)):t&&!o?(te=We(q,Y,!1,!0),K=We(W,Y,!1,!1)):(te=We(q,Y,!0,!0),K=We(Y,W,!0,!0)),n!=null){let re=ju(X,Y);return[te,K,re]}else return[te,K]},R={a:_,b:w,bias:v,preluActivationWeights:$},M={transposeA:t,transposeB:o,activation:s,leakyreluAlpha:i};return n==null?Hr((G,W,q)=>{let Z=E.runKernel(ks,R,M);return q([G,W,Z]),{value:L(Z,b),gradFunc:A}})(_,w):Hr((G,W,q,Z)=>{let X=E.runKernel(ks,R,M);return Z([G,W,X,q]),{value:L(X,b),gradFunc:A}})(_,w,v)}var BU=S({fusedMatMul_:zU});function VU(r){return lf(r,.54,.46)}var e0=S({hammingWindow_:VU});function GU(r){return lf(r,.5,.5)}var yg=S({hannWindow_:GU});function WU(r,e,t,o=!1,n=0){let s=0,a=[];for(;s+e<=r.size;)a.push(Fe(r,s,e)),s+=t;if(o)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${a.rank}.`),T(i.rank===2&&i.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${i.shape}.`),T(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${i.shape}.`),T(o.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${o.length}.`),T(o[0]>=1&&o[1]>=1,()=>`cropSize must be atleast [1,1], but was ${o}`),T(n==="bilinear"||n==="nearest",()=>`method must be bilinear or nearest, but was ${n}`);let c={image:a,boxes:i,boxInd:l},p={method:n,extrapolationValue:s,cropSize:o};return E.runKernel(ri,c,p)}var r0=S({cropAndResize_:jU});function HU(r){let e=k(r,"image","flipLeftRight","float32");T(e.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${e.rank}.`);let t={image:e};return E.runKernel(li,t,{})}var o0=S({flipLeftRight_:HU});function qU(r,e,t=0,o=.5){let n=k(r,"image","rotateWithOffset","float32");T(n.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${n.rank}.`);let s={image:n},a={radians:e,fillValue:t,center:o};return E.runKernel(Ri,s,a)}var n0=S({rotateWithOffset_:qU});function Un(r,e,t,o,n,s){o==null&&(o=.5),n==null&&(n=Number.NEGATIVE_INFINITY),s==null&&(s=0);let a=r.shape[0];return t=Math.min(t,a),T(0<=o&&o<=1,()=>`iouThreshold must be in [0, 1], but was '${o}'`),T(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),T(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),T(e.rank===1,()=>"scores must be a 1D tensor"),T(e.shape[0]===a,()=>`scores has incompatible shape with boxes. Expected ${a}, but was ${e.shape[0]}`),T(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s}}function KU(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=k(r,"boxes","nonMaxSuppression"),a=k(e,"scores","nonMaxSuppression"),i=Un(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l={maxOutputSize:t,iouThreshold:o,scoreThreshold:n};return E.runKernel(_i,{boxes:s,scores:a},l)}var s0=S({nonMaxSuppression_:KU});function i0(r,e,t){let o=XU(r,e,t),n=o<0?-(o+1):o;r.splice(n,0,e)}function XU(r,e,t){return ZU(r,e,t||YU)}function YU(r,e){return r>e?1:r>>1);let i=t(e,r[s]);i>0?o=s+1:(n=s,a=!i)}return a?o:-o-1}function K_(r,e,t,o,n){return q_(r,e,t,o,n,0)}function X_(r,e,t,o,n,s){return q_(r,e,t,o,n,0,!1,s,!0)}function Y_(r,e,t,o,n,s){return q_(r,e,t,o,n,s,!0)}function q_(r,e,t,o,n,s,a=!1,i=!1,l=!1){let u=[];for(let g=0;gn&&u.push({score:e[g],boxIndex:g,suppressBeginIndex:0});u.sort(a0);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=u.pop(),{score:x,boxIndex:b,suppressBeginIndex:_}=g;if(x=_;--v){let $=JU(r,b,p[v]);if($>=o){w=!0;break}if(g.score=g.score*QU(o,c,$),g.score<=n)break}g.suppressBeginIndex=p.length,w||(g.score===x?(p.push(b),m.push(g.score)):g.score>n&&i0(u,g,a0))}let f=p.length,d=t-f;i&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return a&&(h.selectedScores=m),l&&(h.validOutputs=f),h}function JU(r,e,t){let o=r.subarray(e*4,e*4+4),n=r.subarray(t*4,t*4+4),s=Math.min(o[0],o[2]),a=Math.min(o[1],o[3]),i=Math.max(o[0],o[2]),l=Math.max(o[1],o[3]),u=Math.min(n[0],n[2]),c=Math.min(n[1],n[3]),p=Math.max(n[0],n[2]),m=Math.max(n[1],n[3]),f=(i-s)*(l-a),d=(p-u)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,u),g=Math.max(a,c),x=Math.min(i,p),b=Math.min(l,m),_=Math.max(x-h,0)*Math.max(b-g,0);return _/(f+d-_)}function QU(r,e,t){let o=Math.exp(e*t*t);return t<=r?o:0}function a0(r,e){return r.score-e.score||r.score===e.score&&e.boxIndex-r.boxIndex}async function ej(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY){let s=k(r,"boxes","nonMaxSuppressionAsync"),a=k(e,"scores","nonMaxSuppressionAsync"),i=Un(s,a,t,o,n);t=i.maxOutputSize,o=i.iouThreshold,n=i.scoreThreshold;let l=await Promise.all([s.data(),a.data()]),u=l[0],c=l[1],{selectedIndices:p}=K_(u,c,t,o,n);return s!==r&&s.dispose(),a!==e&&a.dispose(),Vt(p,"int32")}var l0=ej;function tj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=k(r,"boxes","nonMaxSuppression"),i=k(e,"scores","nonMaxSuppression"),l=Un(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:a,scores:i},c={maxOutputSize:t,iouThreshold:o,scoreThreshold:n,softNmsSigma:s},p=E.runKernel(ki,u,c);return{selectedIndices:p[0],selectedScores:p[1]}}var u0=S({nonMaxSuppressionWithScore_:tj});async function rj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=0){let a=k(r,"boxes","nonMaxSuppressionAsync"),i=k(e,"scores","nonMaxSuppressionAsync"),l=Un(a,i,t,o,n,s);t=l.maxOutputSize,o=l.iouThreshold,n=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([a.data(),i.data()]),c=u[0],p=u[1],{selectedIndices:m,selectedScores:f}=Y_(c,p,t,o,n,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Vt(m,"int32"),selectedScores:Vt(f)}}var c0=rj;function oj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=k(r,"boxes","nonMaxSuppression"),i=k(e,"scores","nonMaxSuppression"),l=Un(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,m={boxes:a,scores:i},f={maxOutputSize:u,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=E.runKernel(wi,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var p0=S({nonMaxSuppressionPadded_:oj});async function nj(r,e,t,o=.5,n=Number.NEGATIVE_INFINITY,s=!1){let a=k(r,"boxes","nonMaxSuppressionAsync"),i=k(e,"scores","nonMaxSuppressionAsync"),l=Un(a,i,t,o,n,null),u=l.maxOutputSize,c=l.iouThreshold,p=l.scoreThreshold,[m,f]=await Promise.all([a.data(),i.data()]),{selectedIndices:d,validOutputs:h}=X_(m,f,u,c,p,s);return a!==r&&a.dispose(),i!==e&&i.dispose(),{selectedIndices:Vt(d,"int32"),validOutputs:le(h,"int32")}}var m0=nj;function sj(r,e,t=!1,o=!1){let n=k(r,"images","resizeBilinear");T(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),T(e.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${e}.`),T(o===!1||t===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=L(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=E.runKernel(Cn,i,l);return a?L(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var _g=S({resizeBilinear_:sj});function ij(r,e,t=!1,o=!1){let n=k(r,"images","resizeNearestNeighbor");T(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),T(e.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${e}.`),T(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),T(o===!1||t===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=n,a=!1;n.rank===3&&(a=!0,s=L(n,[1,n.shape[0],n.shape[1],n.shape[2]]));let[]=e,i={images:s},l={alignCorners:t,halfPixelCenters:o,size:e},u=E.runKernel(da,i,l);return a?L(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var wg=S({resizeNearestNeighbor_:ij});function aj(r,e,t){T(e%1==0,()=>`bandPart(): numLower must be an integer, got ${e}.`),T(t%1==0,()=>`bandPart(): numUpper must be an integer, got ${t}.`);let o=k(r,"a","bandPart");T(o.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${o.rank}.`);let n=o.shape,[s,a]=o.shape.slice(-2);if(!(e<=s))throw new Error(`bandPart(): numLower (${e}) must not be greater than the number of rows (${s}).`);if(!(t<=a))throw new Error(`bandPart(): numUpper (${t}) must not be greater than the number of columns (${a}).`);e<0&&(e=s),t<0&&(t=a);let i=L(Jc(0,s,1,"int32"),[-1,1]),l=Jc(0,a,1,"int32"),u=ue(i,l),c=fr(Mo(u,le(+e,"int32")),to(u,le(-t,"int32"))),p=gt([s,a],o.dtype);return L(Bt(ur(L(o,[-1,s,a])).map(m=>$t(c,m,p))),n)}var f0=S({bandPart_:aj});function lj(r){let e;if(Array.isArray(r)){e=!1,T(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let n=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${n})`)}else e=!0,r=lr(r,r.shape[0],0).map(n=>wo(n,[0]));T(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let t=[],o=r;for(let n=0;n{let s=o[n];if(n>0)for(let a=0;a=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return h0(r,e);{let t=r.shape.slice(0,r.shape.length-2).reduce((l,u)=>l*u),o=ur(L(r,[t,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),n=[],s=[];o.forEach(l=>{let[u,c]=h0(l,e);n.push(u),s.push(c)});let a=L(Bt(n,0),r.shape),i=L(Bt(s,0),r.shape);return[a,i]}}function h0(r,e=!1){return E.tidy(()=>{T(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let t=r.shape[0],o=r.shape[1],n=Xc(t),s=Ro(r),a=Bi([[1]],[1,1]),i=Ro(a),l=t>=o?o:t;for(let u=0;u{let f=Fe(s,[u,u],[t-u,1]),d=Wu(f),h=Fe(s,[u,u],[1,1]),g=$t(Qt(h,0),Bi([[-1]]),Bi([[1]])),x=ue(h,O(g,d)),b=de(f,x);b.shape[0]===1?i=Ro(a):i=Je([a,Fe(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let _=je(de(We(g,x),d)),w=Fe(s,[u,0],[t-u,o]),v=O(_,i),$=Ue(i);if(u===0)s=ue(w,We(v,We($,w)));else{let M=ue(w,We(v,We($,w)));s=Je([Fe(s,[0,0],[u,o]),M],0)}let A=Ue(v),R=Fe(n,[0,u],[t,n.shape[1]-u]);if(u===0)n=ue(R,We(We(R,i),A));else{let M=ue(R,We(We(R,i),A));n=Je([Fe(n,[0,0],[t,u]),M],1)}return[i,s,n]}),Te([c,p,m])}return!e&&t>o&&(n=Fe(n,[0,0],[t,o]),s=Fe(s,[0,0],[o,o])),[n,s]})}var g0=S({qr_:uj});var Gt;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Gt||(Gt={}));function cj(r,e,t=Gt.SUM_BY_NONZERO_WEIGHTS){let o=k(r,"losses","computeWeightedLoss"),n=null;e!=null&&(n=k(e,"weights","computeWeightedLoss"));let s=n==null?o:O(o,n);if(t===Gt.NONE)return s;if(t===Gt.SUM)return ye(s);if(t===Gt.MEAN){if(n==null)return ht(s);{let a=o.size/n.size,i=de(ye(s),ye(n));return a>1?de(i,le(a)):i}}if(t===Gt.SUM_BY_NONZERO_WEIGHTS){if(n==null)return de(ye(s),le(o.size));{let a=O(n,Cr(o.shape)),i=oe(ye(Gn(a,le(0))),"float32");return de(ye(s),i)}}throw Error(`Unknown reduction: ${t}`)}var Nr=S({computeWeightedLoss_:cj});function pj(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","absoluteDifference"),s=k(e,"predictions","absoluteDifference"),a=null;t!=null&&(a=k(t,"weights","absoluteDifference")),Nt(n.shape,s.shape,"Error in absoluteDifference: ");let i=Tt(ue(n,s));return Nr(i,a,o)}var x0=S({absoluteDifference_:pj});function mj(r,e,t,o,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","cosineDistance"),a=k(e,"predictions","cosineDistance"),i=null;o!=null&&(i=k(o,"weights","cosineDistance")),Nt(s.shape,a.shape,"Error in cosineDistance: ");let l=le(1),u=ue(l,ye(O(s,a),t,!0));return Nr(u,i,n)}var y0=S({cosineDistance_:mj});function fj(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","hingeLoss"),s=k(e,"predictions","hingeLoss"),a=null;t!=null&&(a=k(t,"weights","hingeLoss")),Nt(n.shape,s.shape,"Error in hingeLoss: ");let i=le(1);n=ue(O(le(2),n),i);let l=Ir(ue(i,O(n,s)));return Nr(l,a,o)}var b0=S({hingeLoss_:fj});function dj(r,e,t,o=1,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","huberLoss"),a=k(e,"predictions","huberLoss"),i=null;t!=null&&(i=k(t,"weights","huberLoss")),Nt(s.shape,a.shape,"Error in huberLoss: ");let l=le(o),u=Tt(ue(a,s)),c=As(u,l),p=ue(u,c),m=Q(O(le(.5),Pe(c)),O(l,p));return Nr(m,i,n)}var _0=S({huberLoss_:dj});function hj(r,e,t,o=1e-7,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"labels","logLoss"),a=k(e,"predictions","logLoss"),i=null;t!=null&&(i=k(t,"weights","logLoss")),Nt(s.shape,a.shape,"Error in logLoss: ");let l=le(1),u=le(o),c=je(O(s,ir(Q(a,u)))),p=O(ue(l,s),ir(Q(ue(l,a),u))),m=ue(c,p);return Nr(m,i,n)}var w0=S({logLoss_:hj});function gj(r,e,t,o=Gt.SUM_BY_NONZERO_WEIGHTS){let n=k(r,"labels","meanSquaredError"),s=k(e,"predictions","meanSquaredError"),a=null;t!=null&&(a=k(t,"weights","meanSquaredError")),Nt(n.shape,s.shape,"Error in meanSquaredError: ");let i=Vu(n,s);return Nr(i,a,o)}var k0=S({meanSquaredError_:gj});function xj(r,e){let t=k(r,"labels","sigmoidCrossEntropyWithLogits"),o=k(e,"logits","sigmoidCrossEntropyWithLogits");Nt(t.shape,o.shape,"Error in sigmoidCrossEntropyWithLogits: ");let n=Ir(o),s=O(o,t),a=Au(Xt(je(Tt(o))));return Q(ue(n,s),a)}function yj(r,e,t,o=0,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"multiClassLabels","sigmoidCrossEntropy"),a=k(e,"logits","sigmoidCrossEntropy"),i=null;if(t!=null&&(i=k(t,"weights","sigmoidCrossEntropy")),Nt(s.shape,a.shape,"Error in sigmoidCrossEntropy: "),o>0){let u=le(o),c=le(1),p=le(.5);s=Q(O(s,ue(c,u)),O(p,u))}let l=xj(s,a);return Nr(l,i,n)}var v0=S({sigmoidCrossEntropy_:yj});function bj(r,e,t=-1){if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${e.rank} and dim was ${t}`);return Hr((n,s,a)=>{let l=Um(s,[t],!0),u=ue(oe(s,"float32"),l);a([n,u]);let c=je(O(u,n));return{value:ye(c,[t]),gradFunc:(f,d)=>{let[h,g]=d,x=Vn(f.shape,[t]);return[O(L(f,x),ue(oe(h,"float32"),Xt(g))),O(L(f,x),ue(Xt(g),oe(h,"float32")))]}}})(r,e)}function _j(r,e,t,o=0,n=Gt.SUM_BY_NONZERO_WEIGHTS){let s=k(r,"onehotLabels","softmaxCrossEntropy"),a=k(e,"logits","softmaxCrossEntropy"),i=null;if(t!=null&&(i=k(t,"weights","softmaxCrossEntropy")),Nt(s.shape,a.shape,"Error in softmaxCrossEntropy: "),o>0){let u=le(o),c=le(1),p=le(s.shape[1]);s=Q(O(s,ue(c,u)),de(u,p))}let l=bj(s,a);return Nr(l,i,n)}var C0=S({softmaxCrossEntropy_:_j});var wj={fft:Ra,ifft:zi,rfft:Fa,irfft:Bu},kj={hammingWindow:e0,hannWindow:yg,frame:bg,stft:t0},Rs={flipLeftRight:o0,resizeNearestNeighbor:wg,resizeBilinear:_g,rotateWithOffset:n0,cropAndResize:r0,nonMaxSuppression:s0,nonMaxSuppressionAsync:l0,nonMaxSuppressionWithScore:u0,nonMaxSuppressionWithScoreAsync:c0,nonMaxSuppressionPadded:p0,nonMaxSuppressionPaddedAsync:m0},Z_={bandPart:f0,gramSchmidt:d0,qr:g0},vj={absoluteDifference:x0,computeWeightedLoss:Nr,cosineDistance:y0,hingeLoss:b0,huberLoss:_0,logLoss:w0,meanSquaredError:k0,sigmoidCrossEntropy:v0,softmaxCrossEntropy:C0};var Fr=class extends ig{minimize(e,t=!1,o){let{value:n,grads:s}=this.computeGradients(e,o);if(o!=null){let a=o.map(i=>({name:i.name,tensor:s[i.name]}));this.applyGradients(a)}else this.applyGradients(s);return Te(s),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return pg(e,t)}dispose(){this.iterations_!=null&&Te(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:le(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Fr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var rp=class extends Fr{constructor(e,t,o=null){super();this.learningRate=e,this.rho=t,this.epsilon=o,this.accumulatedGrads=[],this.accumulatedUpdates=[],o==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o],a=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${o}/accum_grad`,variable:B(()=>Ie(s).variable(a))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${o}/accum_var`,variable:B(()=>Ie(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedGrads[n].variable,u=this.accumulatedUpdates[n].variable;B(()=>{let c=Q(O(l,this.rho),O(Pe(i),1-this.rho)),p=O(de(xt(Q(u,this.epsilon)),xt(Q(l,this.epsilon))),i),m=Q(O(u,this.rho),O(Pe(p),1-this.rho));l.assign(c),u.assign(m);let f=Q(O(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Te(this.accumulatedGrads.map(e=>e.variable)),Te(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,o=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};rp.className="Adadelta";eo(rp);var op=class extends Fr{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o];if(this.accumulatedGrads[n]==null){let l=!1;this.accumulatedGrads[n]={originalName:`${o}/accumulator`,variable:B(()=>Na(s.shape,this.initialAccumulatorValue).variable(l))}}let a=Array.isArray(e)?e[n].tensor:e[o];if(a==null)return;let i=this.accumulatedGrads[n].variable;B(()=>{let l=Q(i,Pe(a));i.assign(l);let u=Q(O(de(a,xt(Q(l,E.backend.epsilon()))),-this.learningRate),s);s.assign(u)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Te(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};op.className="Adagrad";eo(op);var np=class extends Fr{constructor(e,t,o,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=le(t).variable(),this.accBeta2=le(o).variable()}),n==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);B(()=>{let o=ue(1,this.accBeta1),n=ue(1,this.accBeta2);t.forEach((s,a)=>{let i=E.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:B(()=>Ie(i).variable(l))}),this.accumulatedSecondMoment[a]==null&&(this.accumulatedSecondMoment[a]={originalName:`${s}/v`,variable:B(()=>Ie(i).variable(l))});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedSecondMoment[a].variable,m=Q(O(c,this.beta1),O(u,1-this.beta1)),f=Q(O(p,this.beta2),O(Pe(u),1-this.beta2)),d=de(m,o),h=de(f,n);c.assign(m),p.assign(f);let g=Q(O(de(d,Q(xt(h),this.epsilon)),-this.learningRate),i);i.assign(g)}),this.accBeta1.assign(O(this.accBeta1,this.beta1)),this.accBeta2.assign(O(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Te(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),B(()=>{this.accBeta1.assign(Rr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Rr(this.beta2,this.iterations_+1))});let t=e.length/2,o=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};np.className="Adam";eo(np);var sp=class extends Fr{constructor(e,t,o,n=null,s=0){super();this.learningRate=e,this.beta1=t,this.beta2=o,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=le(0).variable(),this.accBeta1=le(t).variable()}),n==null&&(this.epsilon=E.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);B(()=>{let o=ue(1,this.accBeta1),n=de(-this.learningRate,Q(O(this.iteration,this.decay),1));t.forEach((s,a)=>{let i=E.registeredVariables[s],l=!1;this.accumulatedFirstMoment[a]==null&&(this.accumulatedFirstMoment[a]={originalName:`${s}/m`,variable:Ie(i).variable(l)}),this.accumulatedWeightedInfNorm[a]==null&&(this.accumulatedWeightedInfNorm[a]={originalName:`${s}/v`,variable:Ie(i).variable(l)});let u=Array.isArray(e)?e[a].tensor:e[s];if(u==null)return;let c=this.accumulatedFirstMoment[a].variable,p=this.accumulatedWeightedInfNorm[a].variable,m=Q(O(c,this.beta1),O(u,1-this.beta1)),f=O(p,this.beta2),d=Tt(u),h=qr(f,d);c.assign(m),p.assign(h);let g=Q(O(de(n,o),de(m,Q(h,this.epsilon))),i);i.assign(g)}),this.iteration.assign(Q(this.iteration,1)),this.accBeta1.assign(O(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Te(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Te(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};sp.className="Adamax";eo(sp);var ll=class extends Fr{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=Array.isArray(e)?e[n].tensor:e[o];if(s==null)return;let a=E.registeredVariables[o];B(()=>{let i=Q(O(this.c,s),a);a.assign(i)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Dt(le(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};ll.className="SGD";eo(ll);var ip=class extends ll{constructor(e,t,o=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=o,this.accumulations=[],this.m=le(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o];if(this.accumulations[n]==null){let l=!1;this.accumulations[n]={originalName:`${o}/momentum`,variable:B(()=>Ie(s).variable(l))}}let a=this.accumulations[n].variable,i=Array.isArray(e)?e[n].tensor:e[o];i!=null&&B(()=>{let l,u=Q(O(this.m,a),i);this.useNesterov?l=Q(O(this.c,Q(i,O(u,this.m))),s):l=Q(O(this.c,u),s),a.assign(u),s.assign(l)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Te(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(o=>({originalName:o.name,variable:o.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};ip.className="Momentum";eo(ip);var ap=class extends Fr{constructor(e,t=.9,o=0,n=null,s=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=o,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,n==null&&(this.epsilon=E.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(o=>o.name):Object.keys(e)).forEach((o,n)=>{let s=E.registeredVariables[o],a=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${o}/rms`,variable:B(()=>Ie(s).variable(a))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${o}/momentum`,variable:B(()=>Ie(s).variable(a))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${o}/mg`,variable:B(()=>Ie(s).variable(a))});let i=Array.isArray(e)?e[n].tensor:e[o];if(i==null)return;let l=this.accumulatedMeanSquares[n].variable,u=this.accumulatedMoments[n].variable;B(()=>{let c=Q(O(l,this.decay),O(Pe(i),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[n].variable,m=Q(O(p,this.decay),O(i,1-this.decay)),f=de(O(i,this.learningRate),xt(ue(c,Q(Pe(m),this.epsilon)))),d=Q(O(u,this.momentum),f);l.assign(c),p.assign(m),u.assign(d);let h=ue(s,d);s.assign(h)}else{let p=Q(O(l,this.decay),O(Pe(i),1-this.decay)),m=Q(O(u,this.momentum),de(O(i,this.learningRate),xt(Q(p,this.epsilon))));l.assign(p),u.assign(m);let f=ue(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Te(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Te(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Te(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,o=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(o)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};ap.className="RMSProp";eo(ap);var Oa=class{static sgd(e){return new ll(e)}static momentum(e,t,o=!1){return new ip(e,t,o)}static rmsprop(e,t=.9,o=0,n=null,s=!1){return new ap(e,t,o,n,s)}static adam(e=.001,t=.9,o=.999,n=null){return new np(e,t,o,n)}static adadelta(e=.001,t=.95,o=null){return new rp(e,t,o)}static adamax(e=.002,t=.9,o=.999,n=null,s=0){return new sp(e,t,o,n,s)}static adagrad(e,t=.1){return new op(e,t)}};var ul={sgd:Oa.sgd,momentum:Oa.momentum,adadelta:Oa.adadelta,adagrad:Oa.adagrad,rmsprop:Oa.rmsprop,adamax:Oa.adamax,adam:Oa.adam};var Cj=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function uf(){return new Promise(r=>Cj(()=>r()))}var N={};et(N,{ERF_A1:()=>Oj,ERF_A2:()=>Pj,ERF_A3:()=>Mj,ERF_A4:()=>Lj,ERF_A5:()=>zj,ERF_P:()=>Fj,PARALLELIZE_THRESHOLD:()=>kg,SELU_SCALE:()=>Q_,SELU_SCALEALPHA:()=>J_,applyActivation:()=>Hu,assertAndGetBroadcastShape:()=>ze,assertAxesAreInnerMostDims:()=>EW,assertParamsConsistent:()=>Ij,assignToTypedArray:()=>qj,axesAreInnerMostDims:()=>I_,calculateShapes:()=>xN,combineLocations:()=>ON,complexWithEvenIndex:()=>Uj,complexWithOddIndex:()=>jj,computeConv2DInfo:()=>ku,computeConv3DInfo:()=>RN,computeDefaultPad:()=>u_,computeDilation2DInfo:()=>eG,computeOptimalWindowSize:()=>Sj,computeOutAndReduceShapes:()=>N_,computeOutShape:()=>Nj,computePool2DInfo:()=>a_,computePool3DInfo:()=>tG,convertConv2DDataFormat:()=>$N,eitherStridesOrDilationsAreOne:()=>yr,expandShapeToKeepDim:()=>Vn,exponent:()=>Xj,exponents:()=>Kj,fromStringArrayToUint8:()=>tH,fromUint8ToStringArray:()=>eH,getAxesPermutation:()=>S_,getBroadcastDims:()=>jG,getComplexWithIndex:()=>Hj,getFusedBiasGradient:()=>ju,getFusedDyActivation:()=>Uu,getImageCenter:()=>Tj,getInnerMostAxes:()=>AW,getPermuted:()=>Aj,getReductionAxes:()=>Ct,getReshaped:()=>Ej,getReshapedPermuted:()=>Dj,getSliceBeginCoords:()=>$j,getSliceSize:()=>Rj,getUndoAxesPermutation:()=>Wm,log:()=>Vj,mergeRealAndImagArrays:()=>Gj,prepareAndValidate:()=>gN,prepareSplitSize:()=>Yj,segment_util:()=>I0,shouldFuse:()=>qu,slice_util:()=>or,splitRealAndImagArrays:()=>Wj,tupleValuesAreOne:()=>Oo,upcastType:()=>mr,validateInput:()=>ng,validateUpdateShape:()=>Qb,warn:()=>Bj});function Ij(r,e){let t=r[0].length;r.forEach((n,s)=>{T(n.length===t,()=>`Error in concat${t}D: rank of tensors[${s}] must be the same as the rank of the rest (${t})`)}),T(e>=0&&e`Error in concat${t}D: axis must be between 0 and ${t-1}.`);let o=r[0];r.forEach((n,s)=>{for(let a=0;a`Error in concat${t}D: Shape of tensors[${s}] (${n}) does not match the shape of the rest (${o}) along the non-concatenated axis ${s}.`)})}function Nj(r,e){let t=r[0].slice();for(let o=1;o=e*2+1||a%2==1?s.push(a):n.push(a);o.push(...n),o.push(0),o.push(...s)}return o}function Dj(r,e,t,o=!0){let n=[];o?n.push(r[0]/t):n.push(r[0]*t);for(let s=1;s"Number of splits must evenly divide the axis."),o=new Array(e).fill(r.shape[t]/e);else{let n=e.reduce((a,i)=>(i===-1&&(a+=1),a),0);T(n<=1,()=>"There should be only one negative value in split array.");let s=e.indexOf(-1);if(s!==-1){let a=e.reduce((i,l)=>l>0?i+l:i);e[s]=r.shape[t]-a}T(r.shape[t]===e.reduce((a,i)=>a+i),()=>"The sum of sizes must match the size of the axis dimension."),o=e}return o}var I0={};et(I0,{collectGatherOpShapeInfo:()=>Qj,computeOutShape:()=>Jj,segOpComputeOptimalWindowSize:()=>Zj});function Zj(r,e){let t=!1,o;for(r<=kg?(o=r,t=!0):o=Dc(r,Math.floor(Math.sqrt(r)));!t;)o>e||o===r?t=!0:o=Dc(r,o+1);return o}function Jj(r,e,t){let o=[],n=r.length;for(let s=0;sn))throw new Error(`Expect batchDims in the range of [-${n}, ${n}], but got ${o}`);if(o<0&&(o+=n),o>s)throw new Error(`batchDims (${o}) must be less than rank(x) ( + ${s}).`);if(tzc(e))}catch(e){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function tH(r){return r.map(e=>el(e))}var Sr={};et(Sr,{nonMaxSuppressionV3Impl:()=>K_,nonMaxSuppressionV4Impl:()=>X_,nonMaxSuppressionV5Impl:()=>Y_,whereImpl:()=>G_});var vg={kernelName:us,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,$s(oe(t,"float32"),-1))}}};var N0={kernelName:Ks,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Pe(oe(t,"float32")),n=xt(ue(le(1),o));return je(de(r,n))}}}};var S0={kernelName:Xs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=xt(ue(Pe(oe(t,"float32")),1));return de(r,o)}}}};var T0={kernelName:xo,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=r,l=Ct(t.shape,n);return l.length>0&&(i=ye(i,l)),L(i,t.shape)},b:()=>{let i=r,l=Ct(o.shape,n);return l.length>0&&(i=ye(i,l)),L(i,o.shape)}}}};var E0={kernelName:qo,saveAllInputs:!0,gradFunc:(r,e)=>{let t={};return e.forEach((o,n)=>{t[n]=()=>r.clone()}),t}};var A0={kernelName:Ko,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ie(t)}}};var D0={kernelName:oa,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>Ie(t)}}};var $0={kernelName:Ys,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,xt(ue(le(1),Pe(oe(t,"float32")))))}}};var R0={kernelName:Zs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=xt(Q(le(1),Pe(oe(t,"float32"))));return de(r,o)}}}};var F0={kernelName:ei,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=Q(Pe(t),Pe(o)),l=O(r,de(o,i)),u=Ct(t.shape,n);return u.length>0&&(l=ye(l,u)),L(l,t.shape)},b:()=>{let i=Q(Pe(t),Pe(o)),l=je(O(r,de(t,i))),u=Ct(o.shape,n);return u.length>0&&(l=ye(l,u)),L(l,o.shape)}}}};var O0={kernelName:Js,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,Q(Pe(oe(t,"float32")),1))}}};var P0={kernelName:Qs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,ue(le(1),Pe(oe(t,"float32"))))}}};function rH(r,e,t,o,n,s){let a=k(r,"dy","avgPool3dGrad"),i=k(e,"input","avgPool3dGrad"),l=a,u=i,c=!1;i.rank===4&&(c=!0,l=L(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),u=L(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),T(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),T(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),s!=null&&T(st(n),()=>`Error in avgPool3dGrad: pad must be an integer when using, dimRoundingMode ${s} but got pad ${n}.`);let p={dy:l,input:u},m={filterSize:t,strides:o,pad:n,dimRoundingMode:s},f=E.runKernel(Ul,p,m);return c?L(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var M0=S({avgPool3dGrad_:rH});var L0={kernelName:na,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a,dimRoundingMode:i}=t;return{x:()=>M0(r,o,n,s,a,i)}}};function oH(r,e,t,o,n){let s=k(r,"dy","avgPoolGrad"),a=k(e,"input","avgPoolGrad");T(a.rank===s.rank,()=>`Rank of input (${a.rank}) does not match rank of dy (${s.rank})`);let i=a,l=s,u=!1;a.rank===3&&(u=!0,i=L(a,[1,a.shape[0],a.shape[1],a.shape[2]]),l=L(s,[1,s.shape[0],s.shape[1],s.shape[2]])),T(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),T(i.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${i.rank}.`);let c={dy:l,input:i},p={filterSize:t,strides:o,pad:n},m=E.runKernel(Wl,c,p);return u?L(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var z0=S({avgPoolGrad_:oH});var B0={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{filterSize:n,strides:s,pad:a}=t;return{x:()=>z0(r,o,n,s,a)}}};var V0={kernelName:Yo,inputsToSave:["a","b"],gradFunc:(r,e,t)=>{let[o,n]=e,{transposeA:s,transposeB:a}=t;return!s&&!a?{a:()=>We(r,n,!1,!0),b:()=>We(o,r,!0,!1)}:!s&&a?{a:()=>We(r,n,!1,!1),b:()=>We(r,o,!0,!1)}:s&&!a?{a:()=>We(n,r,!1,!0),b:()=>We(o,r,!1,!1)}:{a:()=>We(n,r,!0,!0),b:()=>We(r,o,!0,!0)}}};var G0={kernelName:sa,gradFunc:(r,e,t)=>{let{blockShape:o,crops:n}=t;return{x:()=>Aa(r,o,n)}}};var W0={kernelName:Cb,gradFunc:(r,e,t)=>{let o=t,n=o.inputShape,s=o.shape,a=Array.from(s);for(let l=n.length-1;l>=0;l--)if(n[l]===s[l])a[l]=1;else if(n[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${s}].`);let i=[];for(let l=0;l1&&i.push(l);return{x:()=>ye(r,i,!0)}}};var U0={kernelName:Eo,gradFunc:r=>({x:()=>r.clone()})};var j0={kernelName:Zo,gradFunc:r=>({x:()=>Ie(r)})};var H0={kernelName:Ao,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{clipValueMin:n,clipValueMax:s}=t;return{x:()=>$t(fr(to(o,n),Mo(o,s)),r,Ie(r))}}};var q0={kernelName:ia,inputsToSave:["x"],gradFunc:vg.gradFunc};var K0={kernelName:cs,saveAllInputs:!0,gradFunc:(r,e,t)=>{let o=e.map(l=>l.shape),{axis:n}=t,s=Jt(n,e[0].shape)[0],a=o.map(l=>l[s]);return lr(r,a,s).map(l=>()=>l)}};var X0={kernelName:Jo,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{dilations:s,strides:a,pad:i,dataFormat:l}=t;return T(Oo(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>Kc(o.shape,r,n,a,i,l),filter:()=>tp(o,r,n.shape,a,i,l)}}};var Y0={kernelName:Qo,inputsToSave:["dy","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,{strides:s,pad:a,dataFormat:i,dimRoundingMode:l}=t;return{dy:()=>jr(r,n,s,a,i,1,l),filter:()=>tp(r,o,n.shape,s,a,i,l)}}};function nH(r,e,t,o,n){let s=r;r.rank===4&&(s=L(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let a=e;a.rank===4&&(a=L(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]])),T(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),T(a.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${a.shape}.`),T(t.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${t}.`),T(s.shape[4]===t[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${t[3]}.`),T(a.shape[4]===t[4],()=>`Error in conv3dDerFilter: depth of dy (${a.shape[4]}) must match output depth for filter (${t[4]}).`);let i={x:s,dy:a},l={strides:o,pad:n,filterShape:t};return E.runKernel(Kl,i,l)}var Z0=S({conv3DBackpropFilter_:nH});var J0={kernelName:aa,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s}=t;T(Oo(o),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${o}'`);let[a,i]=e;return{x:()=>ug(a.shape,r,i,n,s),filter:()=>Z0(a,r,i.shape,n,s)}}};var Q0={kernelName:en,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(je(Lu(oe(t,"float32"))),r)}}};var eS={kernelName:ti,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(zu(oe(t,"float32")),r)}}};var tS={kernelName:tn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n,exclusive:s,reverse:a}=t;return{x:()=>{let i=S_([n],o.rank),l=Su(r,n,s,!a);return i!=null&&(l=Ue(l,i)),l}}}};var rS={kernelName:rn,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let{dilations:o,strides:n,pad:s,dimRoundingMode:a}=t,i=o==null?[1,1]:o;T(Oo(i),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${i}'`);let[l,u]=e;return T(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),T(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),T(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),T(yr(n,i),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'.`),a!=null&&T(st(s),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`),{x:()=>xg(l.shape,r,u,n,s,o,a),filter:()=>gg(l,r,u.shape,n,s,o,a)}}};var oS={kernelName:la,inputsToSave:["x","filter"],gradFunc:(r,e,t)=>{let[o,n]=e,s={x:o,filter:n,dy:r},a={x:o,filter:n,dy:r};return{x:()=>E.runKernel(Rc,s,t),filter:()=>E.runKernel(Fc,a,t)}}};var nS={kernelName:ni,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e,o={dy:r,y:t};return{x:()=>E.runKernel(eu,o)}}};var sS={kernelName:si,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=O(Xt(je(Pe(t))),2/Math.sqrt(Math.PI));return{x:()=>O(r,o)}}};var iS={kernelName:nn,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,t)}}};var aS={kernelName:ps,inputsToSave:["input"],gradFunc:(r,e)=>{let[t]=e;return{input:()=>L(r,t.shape)}}};var lS={kernelName:ai,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,Xt(t))}}};var uS={kernelName:sn,gradFunc:r=>({x:()=>Ie(r)})};var cS={kernelName:an,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=de(r,oe(o,"float32")),l=Ct(t.shape,n);return l.length>0?L(ye(i,l),t.shape):i},b:()=>{let i=O(r,oe(t,"float32")),l=Ct(o.shape,n);l.length>0&&(i=L(ye(i,l),o.shape));let u=Pe(o);return je(de(i,oe(u,"float32")))}}}};var pS={kernelName:ln,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,e,t)=>{let{varianceEpsilon:o}=t,[n,s,a,i]=e,l=i==null?le(1):i,u=Ct(s.shape,n.shape),c=[];if(s.rank===1){for(let w=0;ws.rank===1?L(O(O(r,Po(L(f,[1,1,1,s.shape[0]]),c)),l),n.shape):L(O(O(r,f),l),n.shape),mean:()=>{let w=O(O(f,le(-1)),m);return s.rank===1&&(w=ye(w,u)),L(w,s.shape)},variance:()=>{let w=O(O(d,p),m);return s.rank===1&&(w=ye(w,u)),L(w,s.shape)},scale:()=>{let w=O(p,f),v=O(r,w);return s.rank===1&&(v=ye(v,u)),L(v,s.shape)},offset:()=>{let w=r;return s.rank===1&&(w=ye(w,u)),L(w,s.shape)}}}};var dS={kernelName:ms,inputsToSave:["x","indices"],gradFunc:(r,e,t)=>{let[o,n]=e,{axis:s}=t,a=Jt(s,o.shape)[0];return{x:()=>{let l=o.shape,u=n.size,c=l.slice(0,a),p=c.length,m=l.slice(s,l.length).slice(1),f=m.length,d=mS(0,p),h=mS(p+1,p+1+f),g=fS([c,[u],m]),x=L(r,g),b=L(n,[u]),_=fS([[p],d,h]),w=Ue(x,_),v=nf(w,b,o.shape[a]),$=Wm(_);return v=Ue(v,$),v},indices:()=>n}}};function mS(r,e){let t=[];for(let o=r;o{let[t,o]=e;return{a:()=>Ie(t),b:()=>Ie(o)}}};var gS={kernelName:Do,gradFunc:r=>({x:()=>oe(r,"float32")})};var xS={kernelName:pi,gradFunc:r=>({x:()=>Ie(r)})};var yS={kernelName:mi,gradFunc:r=>({x:()=>Ie(r)})};var bS={kernelName:fi,gradFunc:r=>({x:()=>Ie(r)})};var _S={kernelName:cn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{alpha:n}=t,s=Qt(o,0);return{x:()=>$t(s,r,O(r,n))}}};var wS={kernelName:gi,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,Q(t,1))}}};var kS={kernelName:pn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,oe(t,"float32"))}}};var vS={kernelName:Ib,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t;return{logits:()=>{let s=!0,a=Xt(o);return ue(r,O(ye(r,n,s),a))}}}};function sH(r,e,t,o=5,n=1,s=1,a=.5){let i={x:r,y:e,dy:t},l={depthRadius:o,bias:n,alpha:s,beta:a};return E.runKernel(su,i,l)}var CS=S({localResponseNormalizationBackprop_:sH});var IS={kernelName:ca,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{depthRadius:s,bias:a,alpha:i,beta:l}=t;return{x:()=>CS(o,n,r,s,a,i,l)}}};function Cg(r,e,t,o){return e.rankO(r,oe(_o(t,e),r.dtype))}}var ew={kernelName:mn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{reductionIndices:n}=o,s=e[0],a=e[1],i=Jt(n,s.shape),l=Cg(r,a,s,i);return{x:()=>l.x()}}};var NS={kernelName:fn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>O(r,oe(to(t,o),"float32")),b:()=>O(r,oe(Eu(t,o),"float32"))}}};function iH(r,e,t,o,n,s,a){let i=k(r,"dy","maxPool3dGrad"),l=k(e,"input","maxPool3dGrad"),u=k(t,"output","maxPool3dGrad"),c=i,p=l,m=u,f=!1;l.rank===4&&(f=!0,c=L(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),p=L(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),m=L(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),T(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),T(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),T(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),a!=null&&T(st(s),()=>`Error in maxPool3dGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let d={dy:c,input:p,output:m},h={filterSize:o,strides:n,pad:s,dimRoundingMode:a},g=E.runKernel(au,d,h);return f?L(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var SS=S({maxPool3dGrad_:iH});var TS={kernelName:pa,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=t;return{x:()=>SS(r,o,n,s,a,i,l)}}};function aH(r,e,t,o,n,s,a){let i=k(r,"dy","maxPoolGrad"),l=k(e,"input","maxPoolGrad"),u=k(t,"output","maxPoolGrad");T(l.rank===i.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${i.rank})`),T(i.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${i.rank}.`),T(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),a!=null&&T(st(s),()=>`Error in maxPoolGrad: pad must be an integer when using, dimRoundingMode ${a} but got pad ${s}.`);let c={dy:i,input:l,output:u},p={filterSize:o,strides:n,pad:s,dimRoundingMode:a};return E.runKernel(iu,c,p)}var ES=S({maxPoolGrad_:aH});var AS={kernelName:dn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o,n]=e,{filterSize:s,strides:a,pad:i}=t;return{x:()=>ES(r,o,n,s,a,i)}}};var DS={kernelName:hn,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{axis:n}=t,s=Jt(n,o.shape),i=N_(o.shape,s)[1],l=ft(i);return{x:()=>{let c=o.shape.slice();s.forEach(f=>{c[f]=1});let p=L(r,c);return de(O(p,Cr(o.shape,"float32")),l)}}}};var $S={kernelName:gn,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,e,t)=>{let o=t,{axis:n}=o,[s,a]=e,i=Jt(n,s.shape),l=Cg(r,a,s,i);return{x:()=>l.x()}}};var RS={kernelName:xn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e;return{a:()=>O(r,oe(Mo(t,o),"float32")),b:()=>O(r,oe(Qt(t,o),"float32"))}}};var FS={kernelName:ma,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Fe(r,s,o.shape)}}};var OS={kernelName:yi,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=Ct(t.shape,n);return i.length>0?L(ye(r,i),t.shape):r},b:()=>{let i=O(r,je(Ts(de(t,o)))),l=Ct(o.shape,n);return l.length>0?L(ye(i,l),o.shape):i}}}};var PS={kernelName:yn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=O(r,oe(o,"float32")),l=Ct(t.shape,n);return l.length>0?L(ye(i,l),t.shape):i},b:()=>{let i=O(r,oe(t,"float32")),l=Ct(o.shape,n);return l.length>0?L(ye(i,l),o.shape):i}}}};var MS={kernelName:fs,gradFunc:r=>({x:()=>je(r)})};var LS={kernelName:bn,inputsToSave:["indices"],gradFunc:(r,e)=>{let t=e[0];return{indices:()=>gt(t.shape,"float32")}}};var zS={kernelName:ds,gradFunc:r=>({x:()=>Ie(r)})};var BS={kernelName:hs,saveAllInputs:!0,gradFunc:(r,e,t)=>{let{axis:o}=t;return ur(r,o).map(s=>()=>s)}};var tw={kernelName:_n,inputsToSave:["x"],gradFunc:(r,e,t)=>{let o=e[0],{paddings:n}=t,s=n.map(a=>a[0]);return{x:()=>Fe(r,s,o.shape)}}};var VS={kernelName:wn,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,e)=>{let[t,o,n]=e,s=t,a=o,i=ze(s.shape,a.shape);return{a:()=>{let c=oe(a,"float32"),p=O(r,O(c,Rr(s,ue(c,le(1))))),m=Ct(s.shape,i);return m.length>0&&(p=ye(p,m)),L(p,s.shape)},b:()=>{let c=Qt(s,0),p=$t(c,ir(s),Ie(s)),m=O(r,O(n,p)),f=Ct(a.shape,i);return f.length>0&&(m=ye(m,f)),L(m,a.shape)}}}};var GS={kernelName:kn,inputsToSave:["x","alpha"],gradFunc:(r,e)=>{let[t,o]=e,n=Qt(t,0);return{x:()=>$t(n,r,O(r,o)),alpha:()=>{let s=$t(n,Ie(r),O(r,t)),a=Ct(o.shape,r.shape);return a.length>0&&(s=ye(s,a)),L(s,o.shape)}}}};var WS={kernelName:on,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=de(r,oe(o,"float32")),l=Ct(t.shape,n);return l.length>0?L(ye(i,l),t.shape):i},b:()=>{let i=O(r,oe(t,"float32")),l=Ct(o.shape,n);l.length>0&&(i=L(ye(i,l),o.shape));let u=Pe(o);return je(de(i,oe(u,"float32")))}}}};var US={kernelName:Ci,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,je(Pe(t)))}}};var jS={kernelName:In,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e,o=O(Mo(t,6),$s(t));return{x:()=>O(r,oe(o,"float32"))}}};var HS={kernelName:vn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,oe($s(t),"float32"))}}};var qS={kernelName:gs,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>L(r,t.shape)}}};var KS={kernelName:Cn,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>E.runKernel(mu,n,t)}}};var XS={kernelName:da,inputsToSave:["images"],gradFunc:(r,e,t)=>{let[o]=e,n={dy:r,images:o};return{images:()=>E.runKernel(pu,n,t)}}};var YS={kernelName:Nn,gradFunc:(r,e,t)=>{let{dims:o}=t,n=Jt(o,r.shape);return{x:()=>qt(r,n)}}};var ZS={kernelName:Sn,gradFunc:r=>({x:()=>Ie(r)})};var JS={kernelName:Tn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>je(de(r,O(Rr(t,1.5),2)))}}};var QS={kernelName:xs,inputsToSave:["condition"],gradFunc:(r,e)=>{let[t]=e;return{condition:()=>oe(Ie(t),"float32"),t:()=>O(r,oe(t,r.dtype)),e:()=>O(r,oe(Ta(t),r.dtype))}}};var eT={kernelName:Ni,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>{let o=Qt(t,le(0)),n=le(J_),s=le(Q_),a=O(r,s),i=O(O(r,n),Xt(oe(t,"float32")));return $t(o,a,i)}}}};var tT={kernelName:An,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,O(t,ue(le(1),t)))}}};var rT={kernelName:Ti,gradFunc:r=>({x:()=>Ie(r)})};var oT={kernelName:En,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(Ia(oe(t,"float32")),r)}}};var nT={kernelName:Si,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(Nu(oe(t,"float32")),r)}}};var sT={kernelName:ys,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{begin:n,size:s}=t,a=o.shape,[i,l]=e_(o,n,s),u=[];for(let c=0;c$r(r,u)}}};var iT={kernelName:Rn,outputsToSave:[!0],gradFunc:(r,e,t)=>{let[o]=e,{dim:n}=t,s=!0,a=O(r,o);return{logits:()=>ue(a,O(ye(a,[n],s),o))}}};var aT={kernelName:Ei,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,Ur(t))}}};var rw={kernelName:ha,gradFunc:(r,e,t)=>{let{blockShape:o,paddings:n}=t;return{x:()=>Ca(r,o,n)}}};var ow={kernelName:bs,gradFunc:(r,e,t)=>{let{axis:o}=t;return{x:()=>Je(r,o)}}};var lT={kernelName:Dn,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,O(xt(oe(t,"float32")),2))}}};var uT={kernelName:ga,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(r,O(oe(t,"float32"),2))}}};var cT={kernelName:Fn,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=le(2);return{a:()=>O(r,O(n,ue(t,o))),b:()=>O(r,O(n,ue(o,t)))}}};var pT={kernelName:$o,gradFunc:r=>({x:()=>Ie(r)})};var mT={kernelName:On,inputsToSave:["a","b"],gradFunc:(r,e)=>{let[t,o]=e,n=ze(t.shape,o.shape);return{a:()=>{let i=r,l=Ct(t.shape,n);return l.length>0&&(i=ye(i,l)),L(i,t.shape)},b:()=>{let i=r,l=Ct(o.shape,n);return l.length>0&&(i=ye(i,l)),L(je(i),o.shape)}}}};var fT={kernelName:$n,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,n=o.shape.slice(),{axis:s}=t;Jt(s,o.shape).forEach(u=>{n[u]=1});let i=L(r,n),l=O(i,Cr(o.shape,"float32"));return{x:()=>l}}};var dT={kernelName:Di,inputsToSave:["x"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>de(r,Pe(Ia(t)))}}};var hT={kernelName:Pn,outputsToSave:[!0],gradFunc:(r,e)=>{let[t]=e;return{x:()=>O(ue(le(1),Pe(t)),r)}}};var gT={kernelName:yo,inputsToSave:["x"],gradFunc:(r,e,t)=>{let[o]=e,{reps:n}=t;return{x:()=>{let a=Ie(o);if(o.rank===1)for(let i=0;i{let o=t,{perm:n}=o,s=Wm(n);return{x:()=>Ue(r,s)}}};var yT={kernelName:_s,gradFunc:(r,e,t)=>{let o=t,{axis:n}=o;return{value:()=>Bt(r,n)}}};var bT={kernelName:xa,inputsToSave:["segmentIds"],gradFunc:(r,e)=>{let[t]=e;return{x:()=>lH(r,t)}}};function lH(r,e){let t=qr(e,Ie(e)),o=Bn(r,t),n=to(e,le(0,"int32")),s=o.rank-n.rank;for(let i=0;i({x:()=>Ie(r)})};var uH=[vg,N0,S0,T0,E0,A0,D0,$0,R0,F0,O0,P0,L0,B0,V0,G0,W0,U0,j0,H0,q0,K0,Y0,X0,J0,Q0,eS,tS,rS,oS,WS,nS,sS,iS,aS,lS,cS,uS,pS,dS,hS,gS,xS,yS,bS,_S,wS,kS,vS,IS,ew,ew,NS,TS,AS,DS,$S,RS,FS,OS,PS,MS,LS,zS,BS,tw,tw,VS,GS,US,jS,HS,qS,KS,XS,YS,ZS,JS,QS,eT,tT,rT,oT,nT,sT,iT,aT,rw,rw,ow,ow,lT,cT,uT,pT,mT,fT,dT,hT,gT,xT,yT,bT,_T];for(let r of uH)Sb(r);F().prototype.abs=function(){return this.throwIfDisposed(),Tt(this)};F().prototype.acos=function(){return this.throwIfDisposed(),Nm(this)};F().prototype.acosh=function(){return this.throwIfDisposed(),Sm(this)};F().prototype.add=function(r){return this.throwIfDisposed(),Q(this,r)};F().prototype.all=function(r,e){return this.throwIfDisposed(),wu(this,r,e)};F().prototype.any=function(r,e){return this.throwIfDisposed(),nl(this,r,e)};F().prototype.argMax=function(r){return this.throwIfDisposed(),sl(this,r)};F().prototype.argMin=function(r){return this.throwIfDisposed(),Tm(this,r)};F().prototype.asScalar=function(){return this.throwIfDisposed(),T(this.size===1,()=>"The array must have only 1 element."),L(this,[])};F().prototype.asType=function(r){return this.throwIfDisposed(),oe(this,r)};F().prototype.as1D=function(){return this.throwIfDisposed(),L(this,[this.size])};F().prototype.as2D=function(r,e){return this.throwIfDisposed(),L(this,[r,e])};F().prototype.as3D=function(r,e,t){return this.throwIfDisposed(),L(this,[r,e,t])};F().prototype.as4D=function(r,e,t,o){return this.throwIfDisposed(),L(this,[r,e,t,o])};F().prototype.as5D=function(r,e,t,o,n){return this.throwIfDisposed(),L(this,[r,e,t,o,n])};F().prototype.asin=function(){return this.throwIfDisposed(),Em(this)};F().prototype.asinh=function(){return this.throwIfDisposed(),Am(this)};F().prototype.atan=function(){return this.throwIfDisposed(),Dm(this)};F().prototype.atan2=function(r){return this.throwIfDisposed(),$m(this,r)};F().prototype.atanh=function(){return this.throwIfDisposed(),Rm(this)};F().prototype.avgPool=function(r,e,t,o){return this.throwIfDisposed(),va(this,r,e,t,o)};F().prototype.batchToSpaceND=function(r,e){return this.throwIfDisposed(),Ca(this,r,e)};F().prototype.batchNorm=function(r,e,t,o,n){return this.throwIfDisposed(),zn(this,r,e,t,o,n)};F().prototype.broadcastTo=function(r){return this.throwIfDisposed(),il(this,r)};F().prototype.cast=function(r){return this.throwIfDisposed(),oe(this,r)};F().prototype.ceil=function(){return this.throwIfDisposed(),Om(this)};F().prototype.clipByValue=function(r,e){return this.throwIfDisposed(),nr(this,r,e)};F().prototype.concat=function(r,e){return this.throwIfDisposed(),r instanceof Ve&&(r=[r]),Je([this,...r],e)};F().prototype.conv1d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Cu(this,r,e,t,o,n,s)};F().prototype.conv2dTranspose=function(r,e,t,o,n){return this.throwIfDisposed(),Iu(this,r,e,t,o,n)};F().prototype.conv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),jr(this,r,e,t,o,n,s)};F().prototype.cos=function(){return this.throwIfDisposed(),Ia(this)};F().prototype.cosh=function(){return this.throwIfDisposed(),Nu(this)};F().prototype.cumsum=function(r,e,t){return this.throwIfDisposed(),Su(this,r,e,t)};F().prototype.depthToSpace=function(r,e){return this.throwIfDisposed(),Mm(this,r,e)};F().prototype.depthwiseConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Ns(this,r,e,t,o,n,s)};F().prototype.dilation2d=function(r,e,t,o,n){return this.throwIfDisposed(),Lm(this,r,e,t,o,n)};F().prototype.divNoNan=function(r){return this.throwIfDisposed(),zm(this,r)};F().prototype.div=function(r){return this.throwIfDisposed(),de(this,r)};F().prototype.dot=function(r){return this.throwIfDisposed(),b_(this,r)};F().prototype.elu=function(){return this.throwIfDisposed(),Ss(this)};F().prototype.equal=function(r){return this.throwIfDisposed(),_o(this,r)};F().prototype.erf=function(){return this.throwIfDisposed(),Bm(this)};F().prototype.exp=function(){return this.throwIfDisposed(),Xt(this)};F().prototype.expandDims=function(r){return this.throwIfDisposed(),sr(this,r)};F().prototype.expm1=function(){return this.throwIfDisposed(),Vm(this)};F().prototype.fft=function(){return this.throwIfDisposed(),Ra(this)};F().prototype.flatten=function(){return this.throwIfDisposed(),L(this,[this.size])};F().prototype.floor=function(){return this.throwIfDisposed(),Ts(this)};F().prototype.floorDiv=function(r){return this.throwIfDisposed(),_u(this,r)};F().prototype.gather=function(r,e){return this.throwIfDisposed(),Bn(this,r,e)};F().prototype.greaterEqual=function(r){return this.throwIfDisposed(),to(this,r)};F().prototype.greater=function(r){return this.throwIfDisposed(),Qt(this,r)};F().prototype.ifft=function(){return this.throwIfDisposed(),zi(this)};F().prototype.irfft=function(){return this.throwIfDisposed(),Bu(this)};F().prototype.isFinite=function(){return this.throwIfDisposed(),__(this)};F().prototype.isInf=function(){return this.throwIfDisposed(),w_(this)};F().prototype.isNaN=function(){return this.throwIfDisposed(),k_(this)};F().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Sa(this,r)};F().prototype.lessEqual=function(r){return this.throwIfDisposed(),Mo(this,r)};F().prototype.less=function(r){return this.throwIfDisposed(),Eu(this,r)};F().prototype.localResponseNormalization=function(r,e,t,o){return this.throwIfDisposed(),Gm(this,r,e,t,o)};F().prototype.logSigmoid=function(){return this.throwIfDisposed(),C_(this)};F().prototype.logSoftmax=function(r){return this.throwIfDisposed(),Du(this,r)};F().prototype.logSumExp=function(r,e){return this.throwIfDisposed(),Um(this,r,e)};F().prototype.log=function(){return this.throwIfDisposed(),ir(this)};F().prototype.log1p=function(){return this.throwIfDisposed(),Au(this)};F().prototype.logicalAnd=function(r){return this.throwIfDisposed(),fr(this,r)};F().prototype.logicalNot=function(){return this.throwIfDisposed(),Ta(this)};F().prototype.logicalOr=function(r){return this.throwIfDisposed(),$u(this,r)};F().prototype.logicalXor=function(r){return this.throwIfDisposed(),T_(this,r)};F().prototype.matMul=function(r,e,t){return this.throwIfDisposed(),We(this,r,e,t)};F().prototype.maxPool=function(r,e,t,o){return this.throwIfDisposed(),Ea(this,r,e,t,o)};F().prototype.max=function(r,e){return this.throwIfDisposed(),ar(this,r,e)};F().prototype.maximum=function(r){return this.throwIfDisposed(),qr(this,r)};F().prototype.mean=function(r,e){return this.throwIfDisposed(),ht(this,r,e)};F().prototype.min=function(r,e){return this.throwIfDisposed(),Li(this,r,e)};F().prototype.minimum=function(r){return this.throwIfDisposed(),As(this,r)};F().prototype.mirrorPad=function(r,e){return this.throwIfDisposed(),Hm(this,r,e)};F().prototype.mod=function(r){return this.throwIfDisposed(),qm(this,r)};F().prototype.mul=function(r){return this.throwIfDisposed(),O(this,r)};F().prototype.neg=function(){return this.throwIfDisposed(),je(this)};F().prototype.norm=function(r,e,t){return this.throwIfDisposed(),Wu(this,r,e,t)};F().prototype.notEqual=function(r){return this.throwIfDisposed(),Gn(this,r)};F().prototype.oneHot=function(r,e=1,t=0){return this.throwIfDisposed(),Is(this,r,e,t)};F().prototype.onesLike=function(){return this.throwIfDisposed(),er(this)};F().prototype.pad=function(r,e){return this.throwIfDisposed(),$r(this,r,e)};F().prototype.pool=function(r,e,t,o,n){return this.throwIfDisposed(),D_(this,r,e,t,o,n)};F().prototype.pow=function(r){return this.throwIfDisposed(),Rr(this,r)};F().prototype.prelu=function(r){return this.throwIfDisposed(),Da(this,r)};F().prototype.prod=function(r,e){return this.throwIfDisposed(),Ru(this,r,e)};F().prototype.reciprocal=function(){return this.throwIfDisposed(),Xm(this)};F().prototype.relu=function(){return this.throwIfDisposed(),Ir(this)};F().prototype.relu6=function(){return this.throwIfDisposed(),Ou(this)};F().prototype.reshapeAs=function(r){return this.throwIfDisposed(),L(this,r.shape)};F().prototype.reshape=function(r){return this.throwIfDisposed(),L(this,r)};F().prototype.resizeBilinear=function(r,e,t){return this.throwIfDisposed(),_g(this,r,e,t)};F().prototype.resizeNearestNeighbor=function(r,e,t){return this.throwIfDisposed(),wg(this,r,e,t)};F().prototype.reverse=function(r){return this.throwIfDisposed(),qt(this,r)};F().prototype.rfft=function(){return this.throwIfDisposed(),Fa(this)};F().prototype.round=function(){return this.throwIfDisposed(),Ym(this)};F().prototype.rsqrt=function(){return this.throwIfDisposed(),Pu(this)};F().prototype.selu=function(){return this.throwIfDisposed(),Mu(this)};F().prototype.separableConv2d=function(r,e,t,o,n,s){return this.throwIfDisposed(),Zm(this,r,e,t,o,n,s)};F().prototype.sigmoid=function(){return this.throwIfDisposed(),Ur(this)};F().prototype.sign=function(){return this.throwIfDisposed(),Jm(this)};F().prototype.sin=function(){return this.throwIfDisposed(),Lu(this)};F().prototype.sinh=function(){return this.throwIfDisposed(),zu(this)};F().prototype.slice=function(r,e){return this.throwIfDisposed(),Fe(this,r,e)};F().prototype.softmax=function(r){return this.throwIfDisposed(),$a(this,r)};F().prototype.softplus=function(){return this.throwIfDisposed(),Es(this)};F().prototype.spaceToBatchND=function(r,e){return this.throwIfDisposed(),Aa(this,r,e)};F().prototype.split=function(r,e){return this.throwIfDisposed(),lr(this,r,e)};F().prototype.sqrt=function(){return this.throwIfDisposed(),xt(this)};F().prototype.square=function(){return this.throwIfDisposed(),Pe(this)};F().prototype.squaredDifference=function(r){return this.throwIfDisposed(),Vu(this,r)};F().prototype.squeeze=function(r){return this.throwIfDisposed(),wo(this,r)};F().prototype.stack=function(r,e){this.throwIfDisposed();let t=r instanceof Ve?[this,r]:[this,...r];return Bt(t,e)};F().prototype.step=function(r){return this.throwIfDisposed(),$s(this,r)};F().prototype.stridedSlice=function(r,e,t,o,n,s,a,i){return this.throwIfDisposed(),tf(this,r,e,t,o,n,s,a,i)};F().prototype.sub=function(r){return this.throwIfDisposed(),ue(this,r)};F().prototype.sum=function(r,e){return this.throwIfDisposed(),ye(this,r,e)};F().prototype.tan=function(){return this.throwIfDisposed(),rf(this)};F().prototype.tanh=function(){return this.throwIfDisposed(),Mi(this)};F().prototype.tile=function(r){return this.throwIfDisposed(),Po(this,r)};F().prototype.toBool=function(){return this.throwIfDisposed(),oe(this,"bool")};F().prototype.toFloat=function(){return this.throwIfDisposed(),oe(this,"float32")};F().prototype.toInt=function(){return this.throwIfDisposed(),oe(this,"int32")};F().prototype.topk=function(r,e){return this.throwIfDisposed(),of(this,r,e)};F().prototype.transpose=function(r){return this.throwIfDisposed(),Ue(this,r)};F().prototype.unique=function(r){return this.throwIfDisposed(),ep(this,r)};F().prototype.unsortedSegmentSum=function(r,e){return this.throwIfDisposed(),nf(this,r,e)};F().prototype.unstack=function(r){return this.throwIfDisposed(),ur(this,r)};F().prototype.where=function(r,e){return this.throwIfDisposed(),$t(r,this,e)};F().prototype.zerosLike=function(){return this.throwIfDisposed(),Ie(this)};var uw={};et(uw,{maxNorm:()=>pH,minMaxNorm:()=>dH,nonNeg:()=>fH,unitNorm:()=>mH});var nw;function Yt(){return nw==null&&(nw=s_().epsilon()),nw}function Kr(){return"channelsLast"}var ko=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ko.prototype)}},Or=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Or.prototype)}},z=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,z.prototype)}},Ne=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ne.prototype)}},cf=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,cf.prototype)}},sw=class extends Error{constructor(e){super(e);Object.setPrototypeOf(this,sw.prototype)}};function jn(r,e){if(Array.isArray(r)){let t=[];for(let o=0;ot.toUpperCase())}var qn={};function lp(r){if(r==null)return null;let e={};return e.className=r.getClassName(),e.config=r.getConfig(),e}function aw(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(e=>aw(e));else{let e=Object.keys(r);for(let t of e){let o=r[t];o!=null&&typeof o=="object"&&(!Array.isArray(o)&&o.type==="ndarray"&&typeof o.value=="number"?r[t]=o.value:aw(o))}}}function Vi(r,e={},t={},o="object",n=!1){if(typeof r=="string"){let s=r,a;if(s in t)a=t[s];else if(s in qn)a=qn[s];else if(a=e[s],a==null)throw new z(`Unknown ${o}: ${r}. This may be due to one of the following reasons: 1. The ${o} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return a}else{let s=r;if(s.className==null||s.config==null)throw new B(`${o}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let a=s.className,i,l;if(a in t?[i,l]=t[a]:a in Wn?[i,l]=Wn.className:a in e&&([i,l]=e[a]),i==null)throw new B(`Unknown ${o}: ${a}. This may be due to one of the following reasons: +2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return a}else{let s=r;if(s.className==null||s.config==null)throw new z(`${o}: Improper config format: ${JSON.stringify(s)}. +'className' and 'config' must set.`);let a=s.className,i,l;if(a in t?[i,l]=t[a]:a in qn?[i,l]=qn.className:a in e&&([i,l]=e[a]),i==null)throw new z(`Unknown ${o}: ${a}. This may be due to one of the following reasons: 1. The ${o} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let f of Object.keys(Wn))u[f]=Wn[f];for(let f of Object.keys(t))u[f]=t[f];let c=s.config;c.customObjects=u;let p=Object.assign({},Wn);for(let f of Object.keys(t))Wn[f]=t[f];rw(s.config);let m=l(i,s.config,t,n);return Wn=Object.assign({},p),m}else{let u=Object.assign({},Wn);for(let p of Object.keys(t))Wn[p]=t[p];let c=new i(s.config);return Wn=Object.assign({},u),c}}}function sH(r,e){return re?1:0}function lf(r,e){return-1*sH(r,e)}function Un(r){if(r==null)return r;let e=[];for(let t of r)e.indexOf(t)===-1&&e.push(t);return e}function yT(r){if(r==null)throw new B(`Invalid value in obj: ${JSON.stringify(r)}`);for(let e in r)if(r.hasOwnProperty(e))return!1;return!0}function Gi(r,e,t){if(t!=null&&r.indexOf(t)<0)throw new B(`${t} is not a valid ${e}. Valid values are ${r} or null/undefined.`)}function _g(r,e,t=0,o=Infinity){return Po(t>=0),Po(o>=t),Array.isArray(r)&&r.length>=t&&r.length<=o&&r.every(n=>typeof n===e)}function Wt(r,e){Array.isArray(r)?(y.assert(r.length>0,()=>`${e} is unexpectedly an empty array.`),r.forEach((t,o)=>Wt(t,`element ${o+1} of ${e}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${e} to be a positive integer, but got ${bT(r)}.`)}function bT(r){return r===null?"null":Array.isArray(r)?"["+r.map(e=>bT(e)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function _T(r,e){let t=y.now(),o;return(...s)=>{let a=y.now();return a-txt(ye(O(r,r),e,!0)))}var lp=class extends J.Serializable{getConfig(){return{}}},uf=class extends lp{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return V(()=>{let t=ow(e,this.axis),o=nr(t,0,this.maxValue);return O(e,de(o,Q(Yt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};uf.className="MaxNorm";J.registerClass(uf);var cf=class extends lp{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return V(()=>de(e,Q(Yt(),ow(e,this.axis))))}getConfig(){return{axis:this.axis}}};cf.className="UnitNorm";J.registerClass(cf);var pf=class extends lp{apply(e){return Ir(e)}};pf.className="NonNeg";J.registerClass(pf);var mf=class extends lp{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return V(()=>{let t=ow(e,this.axis),o=Q(O(this.rate,nr(t,this.minValue,this.maxValue)),O(1-this.rate,t));return O(e,de(o,Q(Yt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};mf.className="MinMaxNorm";J.registerClass(mf);var wT={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Ot(r){return ap(r)}function kT(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"constraint")}function Pt(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in wT?wT[r]:r,config:{}};return kT(t)}else return r instanceof lp?r:kT(r)}function iH(r){return new uf(r)}function aH(r){return new cf(r)}function lH(){return new pf}function uH(r){return new mf(r)}var uw={};et(uw,{constant:()=>xH,glorotNormal:()=>CH,glorotUniform:()=>vH,heNormal:()=>IH,heUniform:()=>NH,identity:()=>wH,leCunNormal:()=>SH,leCunUniform:()=>TH,ones:()=>gH,orthogonal:()=>EH,randomNormal:()=>bH,randomUniform:()=>yH,truncatedNormal:()=>_H,varianceScaling:()=>kH,zeros:()=>hH});var vT=["channelsFirst","channelsLast"],CT=["nearest","bilinear"],IT=["valid","same","causal"],NT=["max","avg"],ST=["sum","mul","concat","ave"];var up=new Map;function $t(r){Gi(vT,"DataFormat",r)}function TT(r){Gi(CT,"InterpolationFormat",r)}function Xr(r){Gi(IT,"PaddingMode",r)}function sw(r){Gi(NT,"PoolMode",r)}var ff=[],ET="/";function $s(r,e){ff.push(r);try{let t=e();return ff.pop(),t}catch(t){throw ff.pop(),t}}function cH(){return ff.length===0?"":ff.join(ET)+ET}function kg(r){if(!AT(r))throw new Error("Not a valid tensor name: '"+r+"'");return cH()+r}function vg(r){if(!AT(r))throw new Error("Not a valid tensor name: '"+r+"'");up.has(r)||up.set(r,0);let e=up.get(r);if(up.set(r,up.get(r)+1),e>0){let t=`${r}_${e}`;return up.set(t,1),t}else return r}var pH=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function AT(r){return!!r.match(pH)}function DT(r){return r===parseInt(r.toString(),10)}function jn(r,e,t){e==null&&(e=0),t==null&&(t=r.length);let o=1;for(let n=e;n{if(r.shape.length!==2)throw new B(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let t=La(r,1);return Cg(t,[1,e,1])})}function FT(r){let e=[jn(r.shape)];return r.reshape(e)}function OT(r){if(r.rank<=1)throw new B(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let e=[r.shape[0],jn(r.shape,1)];return r.reshape(e)}function za(r,e,t){return V(()=>{switch(r.rank){case 1:return Ym(r,e,t);case 2:return cg(r,[e,0],[t,r.shape[1]]);case 3:return Zm(r,[e,0,0],[t,r.shape[1],r.shape[2]]);case 4:return Jc(r,[e,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Fe(r,[e,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Fe(r,[e,0,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new B(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function iw(r,e,t){return V(()=>{switch(r.rank){case 1:return Ym(r,e,t);case 2:return cg(r,[0,e],[r.shape[0],t]);case 3:return Zm(r,[0,0,e],[r.shape[0],r.shape[1],t]);case 4:return Jc(r,[0,0,0,e],[r.shape[0],r.shape[1],r.shape[2],t]);default:throw new B(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function df(r,e,t,o){return V(()=>{switch(r.rank){case 1:return Ym(r,e,t);case 2:switch(o){case 1:return za(r,e,t);case 2:return iw(r,e,t);default:throw new B(`The axis is not within the rank of the tensor ${o}`)}case 3:switch(o){case 1:return za(r,e,t);case 2:return Zm(r,[0,e,0],[r.shape[0],t,r.shape[2]]);case 3:return iw(r,e,t);default:throw new B(`The axis is not within the rank of the tensor ${o}`)}case 4:switch(o){case 1:return za(r,e,t);case 2:return Jc(r,[0,e,0,0],[r.shape[0],t,r.shape[2],r.shape[3]]);case 3:return Jc(r,[0,0,e,0],[r.shape[0],r.shape[1],t,r.shape[3]]);case 4:return iw(r,e,t);default:throw new B(`The axis is not within the rank of the tensor ${o}`)}default:throw new B(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function cp(r,e=-1){let t;return e<0&&(t=r[0].rank,t!==0?e=t:e=0),e===r[0].rank&&(e=-1),Je(r,e)}function aw(r,e){switch(r.rank){case 1:return u_([r,e]);case 2:return c_([r,e],0);case 3:return p_([r,e],0);case 4:return m_([r,e],0);default:throw new B(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Cg(r,e){if(Array.isArray(e)||(e=[e]),r.rank!==e.length)throw new B(`The length of input n (${e.length}) does not match the number of dimensions in input x (${r.rank})`);return Fo(r,e)}function pp(r,e=0,t=1,o,n){return ug(r,e,t,o,n)}function Hn(r,e,t,o){if(r.rank<2||e.rank<2)throw new Ne(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${e.shape}`);if(e.rank>=3){let n=r.shape.slice(-1)[0],s=e.shape.slice(-2)[0];if(n!==s)throw new Ne(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${e.shape}`)}if(r.rank===2&&e.rank===2){let n=!1,s=!1;return zn.matMul({a:r,b:e,transposeA:n,transposeB:s,bias:o?lw(r.rank,o,Kr()):null,activation:t})}else{let n=r.shape.slice(),s=n.pop();r=r.reshape([-1,s]);let a=e.shape.slice(),i=a.pop(),l=a.pop(),u=[...a,i],c=Array.from({length:e.rank},(d,h)=>h===0?e.rank-2:h<=e.rank-2?h-1:h);e=e.transpose(c).reshape([l,-1]);let p=[...n,...u],m=!1,f=!1;return zn.matMul({a:r,b:e,transposeA:m,transposeB:f,bias:o?lw(r.rank,o,Kr()):null,activation:t}).reshape(p)}}function Ig(r,e,t){return V(()=>(Array.isArray(e)?e=Vt(e,"int32"):e=e.toInt(),Pn(r,e,t)))}function Ku(r){return O(r,r)}function lw(r,e,t){let o=e.shape;if(e.rank!==1&&e.rank!==r)throw new B(`Unexpected bias dimensions: ${e.rank}; expected it to be 1 or ${r}`);if(r===5){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1,1]):e.reshape([1,o[3],o[0],o[1],o[2]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===4){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1]):e.reshape([1,o[2],o[0],o[1]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===3){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1]):e.reshape([1,o[1],o[0]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,o[0]]):e.reshape([1].concat(o))}else if(r<3)return e;throw new B(`Unsupported input rank by biasAdd: ${e.rank}`)}function ro(r,e,t){return V(()=>(t==null&&(t=Kr()),$t(t),r.add(lw(r.rank,e,t))))}function PT(r,e=1){if(e!==1)throw new Ne(`Support for alpha values other than 1 (${e}) is not implemented yet.`);return Is(r)}function MT(r){return V(()=>de(r,Tt(r).add(1)))}function Ng(r,e,t,o){return V(()=>B_(r,e,t,o))}function LT(r){return V(()=>{let e=Q(.5,O(.2,r));return nr(e,0,1)})}function cl(r,e,t=!1){return t?r():e()}var zT=["fanIn","fanOut","fanAvg"],BT=["normal","uniform","truncatedNormal"];function mH(r){Gi(zT,"FanMode",r)}function fH(r){Gi(BT,"Distribution",r)}var oo=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},hf=class extends oo{apply(e,t){return gt(e,t)}};hf.className="Zeros";J.registerClass(hf);var Xu=class extends oo{apply(e,t){return Cr(e,t)}};Xu.className="Ones";J.registerClass(Xu);var gf=class extends oo{constructor(e){super();if(typeof e!="object")throw new B(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new B(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return V(()=>O(le(this.value),Cr(e,t)))}getConfig(){return{value:this.value}}};gf.className="Constant";J.registerClass(gf);var xf=class extends oo{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Es(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};xf.className="RandomUniform";J.registerClass(xf);var yf=class extends oo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`randomNormal does not support dType ${t}.`);return pp(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};yf.className="RandomNormal";J.registerClass(yf);var bf=class extends oo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`truncatedNormal does not support dType ${t}.`);return Vu(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};bf.className="TruncatedNormal";J.registerClass(bf);var _f=class extends oo{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return V(()=>{if(e.length!==2||e[0]!==e[1])throw new B("Identity matrix initializer can only be used for 2D square matrices.");return O(this.gain,Kc(e[0]))})}getConfig(){return{gain:this.gain}}};_f.className="Identity";J.registerClass(_f);function dH(r,e="channelsLast"){let t,o;if($t(e),r.length===2)t=r[0],o=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(e==="channelsFirst"){let n=jn(r,2);t=r[1]*n,o=r[0]*n}else if(e==="channelsLast"){let n=jn(r,0,r.length-2);t=r[r.length-2]*n,o=r[r.length-1]*n}}else{let n=jn(r);t=Math.sqrt(n),o=Math.sqrt(n)}return[t,o]}var Mr=class extends oo{constructor(e){super();if(e.scale<0)throw new B(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,mH(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,fH(this.distribution),this.seed=e.seed}apply(e,t){let o=dH(e),n=o[0],s=o[1],a=this.scale;if(this.mode==="fanIn"?a/=Math.max(1,n):this.mode==="fanOut"?a/=Math.max(1,s):a/=Math.max(1,(n+s)/2),this.distribution==="normal"){let i=Math.sqrt(a);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`${this.getClassName()} does not support dType ${t}.`);return Vu(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*a);return Es(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Mr.className="VarianceScaling";J.registerClass(Mr);var mp=class extends Mr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};mp.className="GlorotUniform";J.registerClass(mp);var fp=class extends Mr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};fp.className="GlorotNormal";J.registerClass(fp);var dp=class extends Mr{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};dp.className="HeNormal";J.registerClass(dp);var hp=class extends Mr{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};hp.className="HeUniform";J.registerClass(hp);var gp=class extends Mr{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};gp.className="LeCunNormal";J.registerClass(gp);var xp=class extends Mr{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};xp.className="LeCunNormal";J.registerClass(xp);var wf=class extends oo{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Ne("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return V(()=>{if(e.length<2)throw new Ne("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let o=e[0]>e[1]?[e[1],e[0]]:e,n=pp(o,0,1,"float32"),s=H_.gramSchmidt(n);return e[0]>e[1]&&(s=s.transpose()),O(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};wf.className="Orthogonal";J.registerClass(wf);var VT={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function GT(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"initializer")}function It(r){return ap(r)}function dt(r){if(typeof r=="string"){let e=r in VT?VT[r]:r;if(e==="GlorotNormal")return new fp;if(e==="GlorotUniform")return new mp;if(e==="HeNormal")return new dp;if(e==="HeUniform")return new hp;if(e==="LeCunNormal")return new gp;if(e==="LeCunUniform")return new xp;{let t={};return t.className=e,t.config={},GT(t)}}else return r instanceof oo?r:GT(r)}function hH(){return new hf}function gH(){return new Xu}function xH(r){return new gf(r)}function yH(r){return new xf(r)}function bH(r){return new yf(r)}function _H(r){return new bf(r)}function wH(r){return new _f(r)}function kH(r){return new Mr(r)}function vH(r){return new mp(r)}function CH(r){return new fp(r)}function IH(r){return new dp(r)}function NH(r){return new hp(r)}function SH(r){return new gp(r)}function TH(r){return new xp(r)}function EH(r){return new wf(r)}var jw={};et(jw,{Layer:()=>Me,RNN:()=>ao,RNNCell:()=>bl,activation:()=>qq,add:()=>rK,alphaDropout:()=>zK,average:()=>oK,averagePooling1d:()=>Hw,averagePooling2d:()=>qw,averagePooling3d:()=>Kw,avgPool1d:()=>mK,avgPool2d:()=>dK,avgPool3d:()=>gK,avgPooling1d:()=>fK,avgPooling2d:()=>hK,avgPooling3d:()=>xK,batchNormalization:()=>uK,bidirectional:()=>DK,concatenate:()=>nK,conv1d:()=>zq,conv2d:()=>Bq,conv2dTranspose:()=>Vq,conv3d:()=>Gq,convLstm2d:()=>SK,convLstm2dCell:()=>TK,cropping2D:()=>Uq,dense:()=>Kq,depthwiseConv2d:()=>Hq,dot:()=>lK,dropout:()=>Xq,elu:()=>Rq,embedding:()=>tK,flatten:()=>Zq,gaussianDropout:()=>LK,gaussianNoise:()=>MK,globalAveragePooling1d:()=>yK,globalAveragePooling2d:()=>bK,globalMaxPool1d:()=>RK,globalMaxPool2d:()=>FK,globalMaxPooling1d:()=>v1,globalMaxPooling2d:()=>C1,gru:()=>wK,gruCell:()=>kK,input:()=>Kg,inputLayer:()=>$q,layerNormalization:()=>cK,leakyReLU:()=>Oq,lstm:()=>vK,lstmCell:()=>CK,masking:()=>BK,maxPool1d:()=>OK,maxPool2d:()=>PK,maxPooling1d:()=>I1,maxPooling2d:()=>N1,maxPooling3d:()=>_K,maximum:()=>sK,minimum:()=>iK,multiply:()=>aK,permute:()=>eK,prelu:()=>Pq,reLU:()=>Fq,repeatVector:()=>Jq,reshape:()=>Qq,rnn:()=>EK,separableConv2d:()=>Wq,simpleRNN:()=>IK,simpleRNNCell:()=>NK,softmax:()=>Mq,spatialDropout1d:()=>Yq,stackedRNNCells:()=>AK,thresholdedReLU:()=>Lq,timeDistributed:()=>$K,upSampling2d:()=>jq,zeroPadding2d:()=>pK});var AH=0;function Sg(){return AH++}var Tg={};function pl(r=""){return r in Tg||(Tg[r]=0),Tg[r]+=1,r+Tg[r].toString()}function Eg(r){return Array.isArray(r)&&Array.isArray(r[0])}function yp(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Oe(r){let e;if(Array.isArray(r)){if(r.length!==1)throw new B(`Expected Tensor length to be 1; got ${r.length}`);e=r[0]}else e=r;return e}function Qe(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new B(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function bp(r){let e=0;for(let t of r)t.shape.length===0?e+=1:e+=t.shape.reduce((o,n)=>o*n);return e}var WT="Variable",kf=class{constructor(e,t="float32",o=WT,n=!0,s=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=Sg(),o=o==null?WT:o,this.originalName=kg(o),this.name=vg(this.originalName),this.trainable_=n,this.constraint=s,this.val=P_(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),DH(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function DH(r,e){if(r.shape.toString()!==e.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(e.shape))}function vf(r){return r.map(e=>e.read())}function _p(r){r.forEach(e=>{e[0].write(e[1])})}var Et=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Lr=class{constructor(e,t,o,n,s,a,i){this.dtype=e,this.shape=t,this.sourceLayer=o,this.inputs=n,this.callArgs=s,this.outputTensorIndex=i,this.id=Sg(),a!=null&&(this.originalName=kg(a),this.name=vg(this.originalName)),this.rank=t.length}},$H=0,ml=class{constructor(e,t){this.callArgs=t,this.id=$H++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let o of e.inboundLayers)o!=null&&o.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},RH=0,Me=class extends J.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=RH++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let o=this.getClassName();t=Gn(o)+"_"+pl(o)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let o;if(e.batchInputShape!=null)o=e.batchInputShape;else if(e.inputShape!=null){let s=null;e.batchSize!=null&&(s=e.batchSize),o=[s].concat(e.inputShape)}this.batchInputShape=o;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Or(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new B(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return dr(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return dr(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new ko(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new ko(`Layer ${this.name} is not connected, no input to return.`);return dr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new ko(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new ko(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return dr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new B(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let o=0;os.maxNDim)throw new B(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${a}`);if(s.minNDim!=null&&a=0?i[u]:i[i.length+u];if(c!=null&&[c,null].indexOf(p)===-1)throw new B(`Input ${o} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${c} but got shape ${i}.`)}}if(s.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let a=[];for(let i of yt(e))a.push(i.shape);this.build(dr(a)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(e),s){let a=this.call(e,t),i=yt(a),l=[];for(let u of i)o.indexOf(u)!==-1&&(u=u.clone()),l.push(u);if(a=dr(l),this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}else{let a=FH(e),i=this.computeOutputShape(a),l,u=OH(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?a[0]:a),i!=null&&i.length>0&&Array.isArray(i[0])?l=i.map((c,p)=>new Lr(u,c,this,yt(e),t,this.name,p)):l=new Lr(u,i,this,yt(e),t,this.name),this.addInboundNode(e,l,null,null,a,i,t),this._refCount++,this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return l}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((o,n)=>{o!=null&&e[n]!=null&&e[n]!==o&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new ko(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let o=JSON.stringify(t.outputShapes);e.indexOf(o)===-1&&e.push(o)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new ko(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Or(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return bp(this.weights)}build(e){this.built=!0}getWeights(e=!1){return vf(e?this.trainableWeights:this.weights)}setWeights(e){V(()=>{let t=this.weights;if(t.length!==e.length)throw new B(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let o=[],n=vf(t);for(let s=0;ss.apply(u.read())),a==null&&(a=!0),a?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(o=>{if(o!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,o,n,s,a,i=null){let l=yt(e);t=yt(t),o=yt(o),n=yt(n),s=yp(s),a=yp(a);let u=[],c=[],p=[];for(let m of l)u.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ml({outboundLayer:this,inboundLayers:u,nodeIndices:c,tensorIndices:p,inputTensors:l,outputTensors:t,inputMasks:o,outputMasks:n,inputShapes:s,outputShapes:a},i);for(let m=0;me.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function FH(r){r=yt(r);let e=[];for(let t of r)e.push(t.shape);return dr(e)}function OH(r){return"float32"}function cw(r,e,t){if((e==null||t!=null&&t>0)&&(e=r.sourceLayer,t=r.nodeIndex),e.inboundNodes.length===0)return[r];{let o=e.inboundNodes[t];if(o.inboundLayers.length===0)return o.inputTensors;{let n=[];for(let s=0;s0){let n=await Promise.all(e);for(let s=0;sQ(this.totals[n],O(s,o)));this.totals[n]=i,a!=null&&a.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let o of this.params.metrics)this.totals[o]!=null&&(typeof this.totals[o]=="number"?t[o]=this.totals[o]/this.seen:V(()=>{let n=O(de(1,this.seen),this.totals[o]);t[o]=n,this.totals[o].dispose(),At(t[o])}))}},Rg=class extends fl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let o in t)this.history[o]==null&&(this.history[o]=[]),this.history[o].push(t[o])}async syncData(){let e=[],t=[],o=[];for(let s in this.history){let a=this.history[s];for(let i=0;inew Fg(o,e))}var no=class{constructor(){}static registerCallbackConstructor(e,t){y.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),no.checkForDuplicate(t),no.constructors[e]==null&&(no.constructors[e]=[]),no.constructors[e].push(t)}static checkForDuplicate(e){for(let t in no.constructors)no.constructors[+t].forEach(n=>{if(n===e)throw new B("Duplicate callback constructor.")})}static clear(){no.constructors={}}static createCallbacks(e){let t=[];for(let o in no.constructors){let n=+o;e>=n&&t.push(...no.constructors[n])}return t.map(o=>new o)}};no.constructors={};function Pg(r,e,t,o,n,s,a,i,l){let u=new Rg,c=[new jT,...no.createCallbacks(e)];r!=null&&c.push(...r),c.push(u);let p=new $g(c);return p.setParams({epochs:t,initialEpoch:o,samples:n,steps:s,batchSize:a,verbose:e,doValidation:i,metrics:l}),{callbackList:p,history:u}}function Yr(r,e={},t=!1){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"layer",t)}function Cf(r,e){return V(()=>{r.dtype!=="float32"&&(r=r.asType("float32"));let t=ye(Ku(r),e,!0),o=Na(t.shape,Yt()),n=xt(qr(t,o));return de(r,n)})}function ji(r,e){return V(()=>ht(Ku(ue(e,r)),-1))}function wp(r,e){return V(()=>ht(Tt(ue(e,r)),-1))}function dl(r,e){return V(()=>{let t=ue(r,e),o=nr(Tt(r),Yt(),Number.MAX_VALUE),n=Tt(de(t,o));return O(100,ht(n,-1))})}function MH(r,e){return V(()=>{let t=nr(e,Yt(),Number.MAX_VALUE),o=ir(Q(1,t)),n=nr(r,Yt(),Number.MAX_VALUE),s=ir(Q(1,n));return ht(Ku(ue(o,s)),-1)})}function LH(r,e){return V(()=>{let t=qr(0,ue(1,O(r,e)));return ht(Ku(t),-1)})}function zH(r,e){return V(()=>{let t=qr(0,ue(1,O(r,e)));return ht(t,-1)})}function BH(r,e){return V(()=>{let t=ye(O(r,e),-1),o=ar(O(ue(1,r),e),-1);return qr(0,Q(1,ue(o,t)))})}function VH(r,e){return V(()=>{let t=Math.log(2),o=ue(e,r),n=ue(Q(o,Ss(O(-2,o))),t);return ht(n,-1)})}function Yu(r,e,t=!1){return V(()=>{if(t)e=$a(e);else{let o=ye(e,e.shape.length-1,!0);e=de(e,o)}return e=nr(e,Yt(),1-Yt()),je(ye(O(r.toFloat(),ir(e)),e.shape.length-1))})}function kp(r,e,t=!1){return V(()=>{let o=Ns(FT(r)).toInt();e=nr(e,Yt(),1-Yt());let n=e.shape,s=ks(o,n[n.length-1]).reshape(n);return Yu(s,e,t)})}function GH(r,e){if(!y.arraysEqual(r.shape,e.shape))throw new B(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(e.shape)}`);return V(()=>{let t=e.relu(),o=e.abs().neg();return t.sub(e.mul(r)).add(o.exp().log1p())})}function vp(r,e){return V(()=>{let t;return t=nr(e,Yt(),1-Yt()),t=ir(de(t,ue(1,t))),ht(GH(r,t),-1)})}function WH(r,e){return V(()=>{let t=nr(r,Yt(),1),o=nr(e,Yt(),1);return ye(O(r,ir(de(t,o))),-1)})}function UH(r,e){return V(()=>{let t=ir(Q(Yt(),e));return ht(ue(e,O(r,t)),-1)})}function If(r,e){return V(()=>{let t=Cf(r,-1),o=Cf(e,-1),n=O(t,o);return je(ye(n,-1))})}var Nf={meanSquaredError:ji,meanAbsoluteError:wp,meanAbsolutePercentageError:dl,meanSquaredLogarithmicError:MH,squaredHinge:LH,hinge:zH,categoricalHinge:BH,logcosh:VH,categoricalCrossentropy:Yu,sparseCategoricalCrossentropy:kp,binaryCrossentropy:vp,kullbackLeiblerDivergence:WH,poisson:UH,cosineProximity:If};function Mg(r){if(typeof r=="string"){if(r in Nf)return Nf[r];let e=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(e=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new B(e)}else return r}function Sf(r,e){return V(()=>{let t=O(.5,er(e)),o=Ma(Qt(e,t),r.dtype);return ht(_o(r,o),-1)})}function Tf(r,e){return V(()=>Ma(_o(sl(r,-1),sl(e,-1)),"float32"))}function HT(r,e){return V(()=>fr(r.equal(1),e.equal(1)).sum().cast("float32"))}function jH(r,e){return V(()=>fr(r.equal(1),e.equal(0)).sum().cast("float32"))}function HH(r,e){return V(()=>fr(r.equal(0),e.equal(1)).sum().cast("float32"))}function pw(r,e){return V(()=>{let t=HT(r,e),o=HH(r,e),n=t.add(o);return Dt(Qt(n,0),t.div(n),0).cast("float32")})}function qT(r,e){return V(()=>{let t=HT(r,e),o=jH(r,e),n=t.add(o);return Dt(Qt(n,0),t.div(n),0).cast("float32")})}function Lg(r,e){return vp(r,e)}function zg(r,e){return r.rank===e.rank&&(r=r.squeeze([r.rank-1])),e=e.argMax(-1),e.dtype!==r.dtype&&(e=e.asType(r.dtype)),_o(r,e).asType("float32")}var qH=ji,KH=ji,XH=wp,YH=wp,ZH=dl,JH=dl,Ef=Yu,QH=If,mw=kp,Bg={binaryAccuracy:Sf,categoricalAccuracy:Tf,precision:pw,categoricalCrossentropy:Ef,sparseCategoricalCrossentropy:mw,mse:qH,MSE:KH,mae:XH,MAE:YH,mape:ZH,MAPE:JH,cosine:QH};function KT(r){if(typeof r=="string"&&r in Bg)return Bg[r];if(typeof r!="string"&&r!=null)return r;throw new B(`Unknown metric ${r}`)}function Af(r){if(Po(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let e;for(let t of Object.keys(Nf))if(Nf[t]===r){e=t;break}if(e!==void 0)return e;for(let t of Object.keys(Bg))if(Bg[t]===r){e=t;break}return e!==void 0?e:r.name}}function XT(r){let e={Adagrad:()=>ul.adagrad(.01),Adadelta:()=>ul.adadelta(1,.95,Yt()),Adam:()=>ul.adam(.001,.9,.999,Yt()),Adamax:()=>ul.adamax(.002,.9,.999,Yt(),0),RMSProp:()=>ul.rmsprop(.001,.9,0,Yt()),SGD:()=>ul.sgd(.01)};if(e.adagrad=e.Adagrad,e.adadelta=e.Adadelta,e.adam=e.Adam,e.adamax=e.Adamax,e.rmsprop=e.RMSProp,e.sgd=e.SGD,r in e)return e[r]();throw new B(`Unknown Optimizer ${r}`)}var YT=1*1024*1024;function dw(r,e,t=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!fw(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(t){let o=JSON.stringify(r);o.length>YT&&console.warn(`User-defined metadata of model "${e}" is too large in size (length=${o.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${YT}.`)}}function fw(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let e=Object.keys(r);for(let t of e)if(typeof t!="string"||!fw(r[t]))return!1;return!0}else if(Array.isArray(r)){for(let e of r)if(!fw(e))return!1;return!0}else return!1;else{let e=typeof r;return e==="string"||e==="number"||e==="boolean"}}function ZT(r,e,t,o=console.log){let n=tq(r),s=["Layer (type)","Output shape","Param #"];n?(e=e||65,t=t||[.45,.85,1]):(e=e||98,t=t||[.33,.55,.67,1]),t[t.length-1]<=1&&(t=t.map(c=>Math.floor(e*c)));let a;if(!n){s.push("Receives inputs"),a=[];for(let c in r.nodesByDepth)a.push(...r.nodesByDepth[c])}o("_".repeat(e)),Vg(s,t,o),o("=".repeat(e));let i=r.layers;for(let c=0;c1||n.length===1&&n[0].inboundLayers.length>1){e=!1;break}o.push(...n)}if(e)for(let n of r.layers){let s=!1;for(let a of n.inboundNodes)if(o.indexOf(a)!==-1)if(s){e=!1;break}else s=!0;if(!e)break}return e}function Vg(r,e,t=console.log){let o="";for(let n=0;n0&&(o=o.slice(0,o.length-1)+" "),o+=r[n],o=o.slice(0,e[n]),o+=" ".repeat(e[n]-o.length);t(o)}function rq(r,e,t){let o;try{o=JSON.stringify(r.outputShape)}catch(i){o="multiple"}let n=r.name,s=r.getClassName(),a=[`${n} (${s})`,o,r.countParams().toString()];Vg(a,e,t)}function oq(r,e,t,o){let n;try{n=JSON.stringify(r.outputShape)}catch(c){n="multiple"}let s=[];for(let c of r.inboundNodes)if(!(t!=null&&t.length>0&&t.indexOf(c)===-1))for(let p=0;pd.name),l=[],u=e.names();for(let d of i)u.indexOf(d)!==-1?l.push(e.getValue(d)):l.push(null);o!=null&&(o.maxNumTensors=-Infinity,o.minNumTensors=Infinity);let c=i.join(",")+"|"+e.names().join(","),p,m;if(hw[c]==null){let d=sq(a,e);p=d.sorted,m=d.recipientCounts,hw[c]=p,QT[c]=m}p=hw[c],m={},n||Object.assign(m,QT[c]);let f=new Fs(e);for(let d=0;do.maxNumTensors&&(o.maxNumTensors=M),M0,()=>"Expected at least one fetch, got none");let t=[],o={};if(r.length===1){let n=e1(r[0],e);t=n.sorted,o=n.recipientMap}else{let n=new Set;for(let s of r){let{sorted:a,recipientMap:i}=e1(s,e);for(let l of a)n.has(l.name)||(t.push(l),n.add(l.name));for(let l in i)o[l]==null&&(o[l]=new Set),i[l].forEach(u=>o[l].add(u))}}return{sorted:t,recipientCounts:aq(o)}}function aq(r){let e={};for(let t in r)e[t]=r[t].size;return e}function e1(r,e){let t=new Set,o=[],n={};for(let i of e.names())t.add(i);let s=[],a=[];for(s.push(r);s.length>0;){let i=s[s.length-1];if(t.has(i.name)){s.pop();continue}let l=a[a.length-1]===s.length-1;if(i.inputs.length===0||l)s.pop(),o.push(i),t.add(i.name),l&&a.pop();else{a.push(s.length-1);for(let u of i.inputs)n[u.name]==null&&(n[u.name]=new Set),n[u.name].add(i.name),!t.has(u.name)&&s.push(u)}}return{sorted:o,recipientMap:n}}function iq(r){let e;if(r.sourceLayer.inboundNodes.length===1)e=r.sourceLayer.output;else{let t=null;for(let o=0;ob.name)}`);Un(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let _=b.sourceLayer,w=b.nodeIndex,v=b.tensorIndex;this.outputLayers.push(_),this.outputLayersNodeIndices.push(w),this.outputLayersTensorIndices.push(v)}for(let b of this.inputs){let _=b.sourceLayer,w=b.nodeIndex,v=b.tensorIndex;Po(w===0,"input layer has >1 nodes"),Po(v===0,"input layer has >1 tensors"),this.inputLayers.push(_),this.inputLayersNodeIndices.push(w),this.inputLayersTensorIndices.push(v)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let t={},o={},n={},s={},a={},i=[],l=(b,_,w,v,$,A)=>{(v==null||$==null||A==null)&&(v=b.sourceLayer,$=b.nodeIndex,A=b.tensorIndex);let R=v.inboundNodes[$];if(w.indexOf(R)!==-1)throw new Or(`The tensor ${b.name} at layer "${v.name}" is part of a cycle.`);if(_.indexOf(R)!==-1)return;this.containerNodes.add(Mo.nodeKey(v,$)),v.id in a||(a[v.id]=Object.keys(a).length),w.indexOf(R)===-1&&w.push(R);let M=R.inboundLayers.length;for(let z=0;z=0;)w.splice(w.indexOf(R),1);i.push(R)},u=[],c=[];for(let b of this.outputs)l(b,u,c);let p=i.slice().reverse();for(let b of p){o[b.id]=b,b.id in t||(t[b.id]=0);let _=t[b.id],w=n[b.outboundLayer.id]==null?0:n[b.outboundLayer.id];_=Math.max(_,w),n[b.outboundLayer.id]=_,s[b.outboundLayer.id]=b.outboundLayer,t[b.id]=_;for(let v=0;vparseInt(b,10)).sort(lf);this.layers=[];for(let b of d){let _=f[b];_.sort((w,v)=>{let $=a[w.id],A=a[v.id];return $A?1:0});for(let w of _)w instanceof Mo&&this.internalContainerRefs.push(w),this.layers.push(w)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(lf);let h=this.inputs.slice(),g=[];for(let b of d)for(let _ of m[b]){let w=_.outboundLayer;if(w!=null){for(let v of _.inputTensors)if(h.indexOf(v)===-1)throw new Or(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${w.name}". The following previous layers were accessed without issue: ${g}`);for(let v of _.outputTensors)h.push(v);g.push(w.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let _=x.filter(w=>w===b).length;if(_!==1)throw new Or(`The name "${b}" is used ${_} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ml({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(o=>o.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new B("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.layers)t.push(...o.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let o={},n=0;for(let a of this.layers)for(let i of a.weights){if(o[i.originalName]!=null)throw new B(`Duplicate weight name: ${i.originalName}`);o[i.originalName]=i,n++}let s=[];for(let a in e){let i=a;if(o[a]==null){let l=a.split("/");i=l.slice(0,-2).concat([l[l.length-1]]).join("/")}if(o[i]!=null)s.push([o[i],e[a]]);else if(t)throw new B(`Provided weight data has no target variable: ${a}`);delete o[i]}if(t){let a=[];for(let i in o)a.push(i);if(a.length>0)throw new B(`${a.length} of ${n} weights are not set: ${a}`)}_p(s)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${hl}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let o=Gg(this.updatedConfig());return t?JSON.stringify(o):o}call(e,t){return V(()=>{e=yt(e);let o=new Fs;for(let n=0;n{e=yt(e);let o;return t==null?o=Vn(null,e.length):o=yt(t),this.runInternalGraph(e,o)[1]})}computeOutputShape(e){let t=yp(e);if(t.length!==this.inputLayers.length)throw new B(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let o={};for(let i=0;iparseInt(i,10)).sort(lf);if(n.length>1)for(let i of n){let l=this.nodesByDepth[i];for(let u of l){let c=u.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(l,10)).sort(lf);for(let l of n){let u=this.nodesByDepth[l];for(let c of u){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in o&&d.push(o[h.id]);if(d.length===m.length){let h={},g,x,b,_;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[w,v]=d[0];h.mask==null&&(h.mask=v),b=yt(p.call(w,h)),_=yt(p.computeMask(w,v)),g=[w],x=[v]}else g=d.map(w=>w[0]),x=d.map(w=>w[1]),h.mask==null&&(h.mask=x),b=yt(p.call(g,h)),_=yt(p.computeMask(g,x));if(p.activityRegularizer)throw new Ne("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let w=0;w{let e=[];for(let t of this.layers)for(let o=0;o0){let h=[];for(let g=0;g0&&g.apply(dr(b),_)}function u(g){let x=g.name,b=Yr(g,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(n),s[x]=b,g.inboundNodes.forEach(w=>{if(!(w instanceof Array))throw new B(`Corrupted configuration, expected array for nodeData: ${w}`);i(b,w)})}let c=t.name,p=t.layers;for(let g of p)u(g);for(;!yT(a);)for(let g of p){let x=s[g.name];if(x.name in a){let b=a[x.name];delete a[x.name];for(let _ of b)l(x,_)}}let m=[],f=[],d=t.inputLayers;for(let g of d){let x=g[0],b=g[1],_=g[2];Po(x in s);let v=s[x].inboundNodes[b].outputTensors;m.push(v[_])}let h=t.outputLayers;for(let g of h){let x=g[0],b=g[1],_=g[2];Po(x in s);let v=s[x].inboundNodes[b].outputTensors;f.push(v[_])}return new e({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new B("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){V(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function lq(r,e,t){let o=e.length;if(r==null||Array.isArray(r)&&r.length===0)return e.map(n=>null);if(o===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&e[0]in r?[r[e[0]]]:[r];if(Array.isArray(r)){if(r.length!==o)throw new Error(`Provided ${t} is an array of ${r.length} element(s), but the model has ${o} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let n=[];return e.forEach(s=>{s in r?n.push(r[s]):n.push(null)}),n}else throw new Error(`The model has multiple (${o}) outputs, so ${t} must be either an array with ${o} elements or an object with ${e} keys. Provided ${t} not understood: ${JSON.stringify(r)}`)}function Wg(r,e){return lq(r,e,"classWeight")}async function Ug(r,e,t,o){if(e!=null||o!=null)throw new Error("Support sampleWeight is not implemented yet");if(t!=null){let n=V(()=>{if(r.shape.length===1)return r.clone();if(r.shape.length===2)if(r.shape[1]>1){let i=1;return r.argMax(i)}else{if(r.shape[1]===1)return r.reshape([r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await n.data());Te(n);let a=[];return s.forEach(i=>{if(t[i]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${i} exists in the data but not in classWeight`);a.push(t[i])}),Vt(a,"float32")}else return null}function t1(r,e){return O(r,e)}var uq=32;function o1(r,e){let t,o,n=e;t=n.xs,o=n.ys,y.assert(t!=null&&o!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${e}`);let s=r1("input",r.inputNames,t),a=r1("output",r.outputNames,o),i=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(a.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${a.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${r.inputNames[l]} has ${s[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${r.outputNames[l]} has ${a[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);return{xs:s,ys:a}}function r1(r,e,t){if(t instanceof Ve)return[t];if(Array.isArray(t))return y.assert(t.length===e.length,()=>`Received an array of ${t.length} Tensors, but expected ${e.length} to match the ${r} keys ${e}.`),t;{let o=[];for(let n of e){if(t[n]==null)throw new B(`The feature data generated by the dataset lacks the required ${r} key '${n}'.`);o.push(t[n])}return o}}function cq(r){if(r.length===3)throw new Ne("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function s1(r,e,t){let o=t.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(t!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(t.epochs!=null&&t.epochs>0&&Number.isInteger(t.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${t.epochs}`),y.assert(!o||t.batchesPerEpoch>0&&Number.isInteger(t.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${t.batchesPerEpoch}`),y.assert(t.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let n=t.validationData!=null,s,a;if(n)if(n1(t.validationData))y.assert(t.validationBatches==null||t.validationBatches>0&&Number.isInteger(t.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${t.validationBatches}`);else{let g=cq(t.validationData);s=g.xs,a=g.ys}let i=r.makeTrainFunction(),l=r.getDedupedMetricsNames(),u;n?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let c=Og(t.callbacks,t.yieldEvery),p=t.verbose==null?1:t.verbose,{callbackList:m,history:f}=Pg(c,p,t.epochs,null,null,pq(e,t),null,n,u);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=t.initialEpoch==null?0:t.initialEpoch,h=await e.iterator();for(;d=t.batchesPerEpoch:_.done){if(n){let w;n1(t.validationData)?w=yt(await r.evaluateDataset(t.validationData,{batches:t.validationBatches})):w=yt(r.evaluate(s,a,{batchSize:t.validationBatchSize==null?uq:t.validationBatchSize,verbose:0}));for(let v=0;v0)throw new Ne("Verbose mode is not implemented yet.");y.assert(!o||t.batches>0&&Number.isInteger(t.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(t.batches)}`);let a=mq(e)?e:await e.iterator(),i=0,l=0;for(;o?l{if(u.value){let{xs:c,ys:p}=o1(r,u.value),m=c.concat(p),f=V(()=>n(m));if(Te(m),l===0)for(let h=0;hQ(s[h],O(d,g))),l>0&&Te(x)}Te(f),i+=d,++l}return s}),u.done){o&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${t.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Cp(r,e,t){return r==null?[null]:Array.isArray(r)?r.map(o=>za(o,e,t-e)):za(r,e,t-e)}function Hg(r,e){return V(()=>r==null?null:Array.isArray(r)?r.map(t=>Hg(t,e)):Ig(r,e.dtype==="int32"?e:e.toInt()))}function qg(r,e){let t=[],o=0,n=null;for(;o=r&&(n=r),t.push([o,n]),o=n;return t}async function fq(r,e,t,o,n,s,a,i,l,u,c,p,m,f,d){n==null&&(n=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(l!=null&&u!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new B("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(t,n,f,"steps_per_epoch"),x;g!=null&&(x=Pr(0,g)),a==null&&(a=1);let{callbackList:b,history:_}=Pg(i,a,s,m,g,f,n,h,p);b.setModel(r),r.history=_,await b.onTrainBegin(),r.stopTraining_=!1;for(let w=m;w{let z=A[R][0],W=A[R][1],U=za($,z,W-z);M.batch=R,M.size=W-z;let q=Hg(t,U),Z=e(q);for(let X=0;X0){if(d=!0,o.validationData.length===2)a=o.validationData[0],i=o.validationData[1];else throw o.validationData.length===3?new Ne("validationData including sample weights is not supported yet."):new B(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${o.validationData} is invalid.`);let A=!0,R=await r.standardizeUserData(a,i,null,null,A,p);l=R[0],u=R[1],h=l.concat(u)}else if(o.validationSplit!=null&&o.validationSplit>0&&o.validationSplit<1){d=!0;let A=Math.floor(n[0].shape[0]*(1-o.validationSplit)),R=n[0].shape[0];l=Cp(n,A,R),n=Cp(n,0,A),u=Cp(s,A,R),s=Cp(s,0,A),h=l.concat(u)}else o.validationSteps!=null&&(d=!0);let g=n.concat(s).concat(c);r.checkTrainableWeightsConsistency();let x=r.makeTrainFunction(),b=r.getDedupedMetricsNames(),_,w;d?(r.makeTestFunction(),_=r.testFunction,w=b.slice().concat(b.map(A=>"val_"+A))):(_=null,h=[],w=b.slice());let v=Og(o.callbacks,o.yieldEvery);return await fq(r,x,g,b,p,o.epochs,o.verbose,v,_,h,o.shuffle,w,o.initialEpoch,null,null)}finally{r.isTraining=!1,gl(n,e),gl(s,t),gl(l,a),gl(u,i),c!=null&&Te(c)}}function gw(r){let e=[];r instanceof Ve&&(r=[r]);for(let t=0;tt.push(n.id));else if(e!=null)for(let n in e){let s=e[n];t.push(s.id)}let o=[];if(r instanceof Ve)t.indexOf(r.id)===-1&&o.push(r);else if(Array.isArray(r))r.forEach(n=>{t.indexOf(n.id)===-1&&o.push(n)});else if(r!=null)for(let n in r){let s=r[n];t.indexOf(s.id)===-1&&o.push(s)}o.forEach(n=>{n.isDisposed||n.dispose()})}function dq(r){return r instanceof Ve}function xw(r){return Array.isArray(r)}function l1(r){return!dq(r)&&!xw(r)}function u1(r,e,t,o=!0,n=""){if(e==null||e.length===0){if(r!=null){let a=!1;if(xw(r)&&r.length>0)a=!0;else if(l1(r)){for(let i in r)if(r.hasOwnProperty(i)){a=!0;break}}else a=!0;if(a)throw new B(`Error when checking model ${n} expected no data, but got ${r}`)}return[]}if(r==null)return e.map(a=>null);let s;if(l1(r)){r=r,s=[];for(let a of e){if(r[a]==null)throw new B(`No data provided for "${a}". Need data for each key in: ${e}`);s.push(r[a])}}else if(xw(r)){if(r=r,r.length!==e.length)throw new B(`Error when checking model ${n}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${e.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,e.length>1)throw new B(`The model ${n} expects ${e.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=gw(s),t!=null)for(let a=0;a=0&&u!==c)throw new B(`Error when checking ${n}: expected ${e[a]} to have shape [${t[a]}], but got array with shape [${i.shape}].`)}}return s}function hq(r,e,t){let o=Un(r.map(s=>s.shape[0]));o.sort();let n=Un(e.map(s=>s.shape[0]));if(n.sort(),o.length>1)throw new B(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(n.length>1)throw new B(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(o.length>0&&n.length>0&&!y.arraysEqual(o,n))throw new B(`Input Tensors should have the same number of samples as target Tensors. Found ${o[0]} input sample(s) and ${n[0]} target sample(s).`)}function gq(r,e,t){let o=[ji,vp,Yu];for(let n=0;n1)throw new B(`The model expects ${e.length} ${n} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(t!=null)for(let a=0;a[]);let t;if(typeof r=="string"||typeof r=="function")t=[r];else if(Array.isArray(r)||typeof r=="object")t=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(t))return e.map(o=>t);{let o=[];for(let n of e){let s=t.hasOwnProperty(n)?t[n]:[];Array.isArray(s)||(s=[s]),o.push(s)}return o}}var yq="layers-model",vo=class extends Mo{constructor(e){super(e);this.isTraining=!1}summary(e,t,o=console.log){if(!this.built)throw new B("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");ZT(this,e,t,o)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=XT(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Fr))throw new B("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let a in e.loss)if(this.outputNames.indexOf(a)===-1)throw new B(`Unknown entry in loss dictionary: "${a}". Only expected the following keys: ${this.outputNames}`);for(let a of this.outputNames)e.loss[a]==null&&console.warn(`Output "${a}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${a} during training`),t.push(Mg(e.loss[a]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new B(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(i=>Mg(i))}else{let a=Mg(e.loss);this.outputs.forEach(i=>{t.push(a)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let a=0;a{for(let a=0;a1&&(this.metricsTensors.push([i,a]),this.metricsNames.push(this.outputNames[a]+"_loss"))}});let n=xq(e.metrics,this.outputNames),s=(a,i,l)=>{this.outputNames.length>1&&(i=this.outputNames[a]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([l,a])};$s("metric",()=>{for(let a=0;a{let c="",p,m,f;for(let d of u){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[a];g[g.length-1]===1||this.lossFunctions[a]===vp?["accuracy","acc"].indexOf(d)!==-1?m=Sf:["crossentropy","ce"].indexOf(d)!==-1&&(m=Lg):this.lossFunctions[a]===kp?["accuracy","acc"].indexOf(d)!==-1?m=zg:["crossentropy","ce"].indexOf(d)!==-1&&(m=mw):["accuracy","acc"].indexOf(d)!==-1?m=Tf:["crossentropy","ce"].indexOf(d)!==-1&&(m=Ef);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=KT(d),p=c+Af(d);let h;$s(p,()=>{h=f}),s(a,p,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,o={}){let n=o.batchSize==null?32:o.batchSize;jg(n);let s=!0,a=this.standardizeUserDataXY(e,t,s,n);try{let i=a[0].concat(a[1]);this.makeTestFunction();let l=this.testFunction,u=this.testLoop(l,i,n,o.verbose,o.steps);return dr(u)}finally{gl(a[0],e),gl(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),i1(this,e,t)}checkNumSamples(e,t,o,n="steps"){let s;if(o!=null){if(s=null,t!=null)throw new B(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?s=e[0].shape[0]:s=e.shape[0];else throw new B(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return s}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new B("`outputs` is an empty Array, which is not allowed.");let o=Array.isArray(t),n=o?t:[t],s=this.retrieveSymbolicTensors(n),a=new Fs;if(e instanceof Ve&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new B(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let l=0;li.name);for(let i=0;i0){let n=[];throw t.forEach((s,a)=>{s==null&&n.push(e[a])}),new B(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,o=!1){return V(()=>{let n=this.checkNumSamples(e);if(o)throw new Ne("Verbose predictLoop() is not implemented yet.");let s=qg(n,t),a=this.outputs.map(i=>[]);for(let i=0;i{let u=s[i][0],c=s[i][1],p=Cp(e,u,c),m=[];if(Array.isArray(p))for(let d=0;da[c].push(u));return dr(a.map(i=>Je(i,0)))})}predict(e,t={}){let o=gw(e);c1(o,this.inputNames,this.feedInputShapes,!1);try{let n=t.batchSize==null?32:t.batchSize;return jg(n),this.predictLoop(o,n)}finally{gl(o,e)}}predictOnBatch(e){c1(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,o=!0,n){if(this.optimizer_==null)throw new Or("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let a=0;a0&&e[0].shape[0]%n!=0)throw new B(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,o,n,s=!0,a){let[i,l]=this.standardizeUserDataXY(e,t,s,a);if(o!=null)throw new Error("sample weight is not supported yet.");let u=null;if(n!=null){let c=Wg(n,this.outputNames);u=[];for(let p=0;p{let a=this.checkNumSamples(t,o,s,"steps"),i=[];if(n>0)throw new Ne("Verbose mode is not implemented yet.");if(s!=null)throw new Ne("steps mode in testLoop() is not implemented yet");{let l=qg(a,o),u=Vt(Pr(0,a));for(let c=0;c1&&(s+=`_${tw(e.slice(0,o),n)}`),t.push(s)}return t}makeTrainFunction(){return e=>{let t=[],o=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),a=[],i=()=>{let p=[];for(let h=0;h1&&h{d=Q(d,h)}),d},l=this.collectedTrainableWeights.map(p=>p.read()),u=!0;return[this.optimizer_.minimize(i,u,l)].concat(a)}}makeTestFunction(){this.testFunction=e=>V(()=>{let t=[],o,n=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=[];for(let u=0;uGn(t))}else{let t=Object.keys(this.loss);e={};let o=this.loss;for(let n of t)if(typeof o[n]=="string")e[n]=Gn(o[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Gn(Af(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Gn(Af(e)));{let e={};for(let t in this.metrics)e[t]=Gn(Af(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Zu(e.optimizer_config),o=Yr(t),n;if(typeof e.loss=="string")n=Pa(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(a=>Pa(a));else if(e.loss!=null){n={};for(let a in e.loss)n[a]=Pa(e.loss[a])}let s;if(Array.isArray(e.metrics))s=e.metrics.map(a=>Pa(a));else if(e.metrics!=null){s={};for(let a in e.metrics)s[a]=Pa(e.metrics[a])}this.compile({loss:n,metrics:s,optimizer:o})}async save(e,t){if(typeof e=="string"){let u=vr.getSaveHandlers(e);if(u.length===0)throw new B(`Cannot find any save handlers for URL '${e}'`);if(u.length>1)throw new B(`Found more than one (${u.length}) save handlers for URL '${e}'`);e=u[0]}if(e.save==null)throw new B("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let o=await vr.encodeWeights(this.getNamedWeights(t)),n=!1,s=null,i={modelTopology:this.toJSON(s,n),format:yq,generatedBy:`TensorFlow.js tfjs-layers v${hl}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){i.trainingConfig=this.getTrainingConfig();let u="optimizer",{data:c,specs:p}=await vr.encodeWeights(await this.optimizer.getWeights(),u);o.specs.push(...p),o.data=vr.concatenateArrayBuffers([o.data,c])}if(this.userDefinedMetadata!=null){let u=!0;dw(this.userDefinedMetadata,this.name,u),i.userDefinedMetadata=this.userDefinedMetadata}return i.weightData=o.data,i.weightSpecs=o.specs,e.save(i)}setUserDefinedMetadata(e){dw(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};vo.className="Model";J.registerClass(vo);var yw=class extends vo{};yw.className="Functional";J.registerClass(yw);async function p1(r,e){"modelTopology"in r||(r={modelTopology:r}),r=r;let t=r.modelTopology;t.model_config!=null&&(t=t.model_config);let o=Zu(t),n=Yr(o,e);if(r.weightsManifest!=null){let s=await vr.loadWeights(r.weightsManifest,r.pathPrefix,n.weights.map(i=>i.originalName)),a={};for(let i of n.weights)a[i.originalName]=s[i.originalName];n.loadWeights(a),Te(s)}return n}async function m1(r,e){if(e==null&&(e={}),typeof r=="string"){let t=vr.getLoadHandlers(r,e);if(t.length===0)t.push(vr.browserHTTPRequest(r,e));else if(t.length>1)throw new B(`Found more than one (${t.length}) load handlers for URL '${r}'`);r=t[0]}return bq(r,void 0,e)}async function bq(r,e,t){if(t==null&&(t={}),r.load==null)throw new B("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let o=await r.load(),n=o.modelTopology;n.model_config!=null&&(n=n.model_config);let s=t.strict==null?!0:t.strict,a=o.weightData!=null&&o.weightSpecs!=null&&s,i=Yr(Zu(n),e,a),l=o.trainingConfig;if(l!=null&&i.loadTrainingConfig(l),o.userDefinedMetadata!=null&&i.setUserDefinedMetadata(o.userDefinedMetadata),o.weightData!=null){if(o.weightSpecs==null)throw new B("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:c}=_q(o.weightData,o.weightSpecs);i.loadWeights(u,s),i.optimizer!=null&&c.length>0&&await i.optimizer.setWeights(c),Te(u),Te(c.map(p=>p.tensor))}return i}function _q(r,e){let t=vr.decodeWeights(r,e),o={},n=[];return e.forEach(s=>{s.group==="optimizer"?n.push({name:s.name,tensor:t[s.name]}):o[s.name]=t[s.name]}),{modelWeights:o,optimizerWeights:n}}var Hi=class extends vo{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:pl("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(o=>o<0))throw new B(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Hi||e instanceof vo,o;if(t){if(o=e,o.outputs.length!==1)throw new B("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(o.inputs.length!==1)throw new B("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new B("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let n=Ag({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=o.outputs,this.inputs=o.inputs;else{if(e.inboundNodes.length!==1)throw new B(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new B("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=cw(this.outputs[0])}this.inboundNodes=[],new ml({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Vn(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{let n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Qe(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new vo({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,o=console.log){this.built||this.build(),super.summary(e,t,o)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,o={}){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.evaluate(e,t,o)}async evaluateDataset(e,t){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,o={}){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.fit(e,t,o)}async fitDataset(e,t){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,o={},n=!1){let s,a={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new B("Legacy serialization format not supported yet.");s=t}else y.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=t.layers,delete t.layers,a=t;let i=new e(a);if(!(i instanceof Hi))throw new Ne(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let l of s){let c=Yr(l,void 0,n);n&&c.setFastWeightInitDuringBuild(!0),i.add(c)}return i}set stopTraining(e){if(this.model==null)throw new B("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new B("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let o={};o.className=t.getClassName(),o.config=t.getConfig(),e.push(o)}return{name:this.name,layers:e}}};Hi.className="Sequential";J.registerClass(Hi);function f1(r){return new vo(r)}function d1(r){return new Hi(r)}function h1(r,e){return e==null&&(e={}),m1(r,e)}function Kg(r){return Ag(r)}function g1(r,e){no.registerCallbackConstructor(r,e)}var so=class extends J.Serializable{getConfig(){return{}}},bw=class extends so{apply(e,t=1){return PT(e,t)}};bw.className="elu";J.registerClass(bw);var _w=class extends so{apply(e){return Pu(e)}};_w.className="selu";J.registerClass(_w);var ww=class extends so{apply(e){return Ir(e)}};ww.className="relu";J.registerClass(ww);var kw=class extends so{apply(e){return V(()=>Ts(6,Ir(e)))}};kw.className="relu6";J.registerClass(kw);var vw=class extends so{apply(e){return e}};vw.className="linear";J.registerClass(vw);var Cw=class extends so{apply(e){return Ur(e)}};Cw.className="sigmoid";J.registerClass(Cw);var Iw=class extends so{apply(e){return LT(e)}};Iw.className="hardSigmoid";J.registerClass(Iw);var Nw=class extends so{apply(e){return Ss(e)}};Nw.className="softplus";J.registerClass(Nw);var Sw=class extends so{apply(e){return MT(e)}};Sw.className="softsign";J.registerClass(Sw);var Tw=class extends so{apply(e){return Mi(e)}};Tw.className="tanh";J.registerClass(Tw);var Df=class extends so{apply(e,t=-1){return $a(e,t)}};Df.className="softmax";J.registerClass(Df);var Ew=class extends so{apply(e,t=-1){return Au(e,t)}};Ew.className="logSoftmax";J.registerClass(Ew);var Aw=class extends so{apply(e,t=1){return V(()=>Ur(e.mul(t)).mul(e))}};Aw.className="swish";J.registerClass(Aw);function Os(r){return r.getClassName()}function Dw(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"activation")}function Ps(r){if(r==null){let e={};return e.className="linear",e.config={},Dw(e)}if(typeof r=="string"){let e={};return e.className=r,e.config={},Dw(e)}else return r instanceof so?r:Dw(r)}function $w(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var Rw=class extends J.Serializable{},Qu=class extends Rw{constructor(e){super();$w(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return V(()=>{let t=gt([1]);return this.hasL1&&(t=Q(t,ye(O(this.l1,Tt(e))))),this.hasL2&&(t=Q(t,ye(O(this.l2,Ku(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Qu.className="L1L2";J.registerClass(Qu);function x1(r){return $w(r),new Qu({l1:r!=null?r.l1:null,l2:0})}function y1(r){return $w(r),new Qu({l2:r!=null?r.l2:null,l1:0})}var b1={l1l2:"L1L2"};function lt(r){return ap(r)}function _1(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"regularizer")}function bt(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in b1?b1[r]:r,config:{}};return _1(t)}else return r instanceof Rw?r:_1(r)}var $f=class extends Me{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Oe(e);let o=Ir(e);return this.maxValue!=null&&(o=nr(o,0,this.maxValue)),o}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};$f.className="ReLU";J.registerClass($f);var Rf=class extends Me{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let o=Oe(e);return Sa(o,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Rf.className="LeakyReLU";J.registerClass(Rf);var Ff=class extends Me{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=dt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=bt(e.alphaRegularizer),this.alphaConstraint=Pt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new B(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Qe(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let o={};if(this.sharedAxes!=null)for(let n=1;n($t(e),e==="channelsFirst"?Ue(r,[0,2,3,1]):r))}function Fw(r,e){return V(()=>($t(e),e==="channelsFirst"?Ue(r,[0,2,3,4,1]):r))}function wq(r,e,t,o=1,n="valid",s,a=1){return V(()=>{if(s==null&&(s=Kr()),$t(s),r.shape.length!==3)throw new B(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(e.shape.length!==3)throw new B(`The kernel for a conv1dWithBias operation should be 3, but is ${e.shape.length} instead`);if(t!=null&&t.shape.length!==1)throw new B(`The bias for a conv1dWithBias operation should be 1, but is ${e.shape.length} instead`);if(s==="channelsFirst"&&(r=Ue(r,[0,2,1])),n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let i=vu(r,e,o,n==="same"?"same":"valid","NWC",a);return t!=null&&(i=ro(i,t)),i})}function w1(r,e,t,o=[1,1],n="valid",s,a,i=null){return V(()=>{if(s==null&&(s=Kr()),$t(s),r.rank!==3&&r.rank!==4)throw new B(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(e.rank!==3&&e.rank!==4)throw new B(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let l=zf(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=zn.conv2d({x:l,filter:e,strides:o,pad:n==="same"?"same":"valid",dilations:a,dataFormat:"NHWC",bias:t,activation:i}),s==="channelsFirst"&&(l=Ue(l,[0,3,1,2])),l})}function kq(r,e,t,o=[1,1,1],n="valid",s,a){return V(()=>{if(s==null&&(s=Kr()),$t(s),r.rank!==4&&r.rank!==5)throw new B(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(e.rank!==4&&e.rank!==5)throw new B(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let i=Fw(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return i=Rm(i,e,o,n==="same"?"same":"valid","NDHWC",a),t!=null&&(i=ro(i,t)),s==="channelsFirst"&&(i=Ue(i,[0,4,1,2,3])),i})}var Ip=class extends Me{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Ip.verifyArgs(t),this.rank=e,Wt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Ne(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=xl(t.kernelSize,e,"kernelSize"),this.strides=xl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Xr(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,$t(this.dataFormat),this.activation=Ps(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=dt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Pt(t.biasConstraint),this.biasRegularizer=bt(t.biasRegularizer),this.activityRegularizer=bt(t.activityRegularizer),this.dilationRate=xl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new B(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new B(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new B(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Po("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!_g(e.kernelSize,"number",1,3))throw new B(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Os(this.activation),useBias:this.useBias,biasInitializer:It(this.biasInitializer),biasRegularizer:lt(this.biasRegularizer),activityRegularizer:lt(this.activityRegularizer),biasConstraint:Ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},ec=class extends Ip{constructor(e,t){super(e,t);this.kernel=null,ec.verifyArgs(t),this.filters=t.filters,Wt(this.filters,"filters"),this.kernelInitializer=dt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Pt(t.kernelConstraint),this.kernelRegularizer=bt(t.kernelRegularizer)}build(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new B(`The channel dimension of the input should be defined. Found ${e[t]}`);let o=e[t],n=this.kernelSize.concat([o,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:o}}],this.built=!0}call(e,t){return V(()=>{e=Oe(e);let o,n=this.bias==null?null:this.bias.read(),s=wg(this.activation.getClassName());if(s!=null&&this.rank===2)o=w1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)o=wq(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)o=w1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)o=kq(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Ne("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(o=this.activation.apply(o))}return o})}computeOutputShape(e){e=Qe(e);let t=[],o=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let s=0;s 0 but got ${JSON.stringify(e.filters)}`)}},yl=class extends ec{constructor(e){super(2,e);yl.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!_g(e.kernelSize,"number",1,2))throw new B(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};yl.className="Conv2D";J.registerClass(yl);var tc=class extends ec{constructor(e){super(3,e);tc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new B(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};tc.className="Conv3D";J.registerClass(tc);var Bf=class extends yl{constructor(e){super(e);if(this.inputSpec=[new Et({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new B(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==4)throw new B("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new B("The channel dimension of the inputs should be defined. Found `None`.");let o=e[t],n=this.kernelSize.concat([this.filters,o]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Et({ndim:4,axes:{[t]:o}})],this.built=!0}call(e,t){return V(()=>{let o=Oe(e);if(o.shape.length!==4)throw new B(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${o.shape.length}`);let n=o.shape,s=n[0],a,i;this.dataFormat==="channelsFirst"?(a=2,i=3):(a=1,i=2);let l=n[a],u=n[i],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Lf(l,m,c,this.padding),h=Lf(u,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(o=Ue(o,[0,2,3,1]));let x=Cu(o,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ue(x,[0,3,1,2])),this.bias!=null&&(x=ro(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(e){e=Qe(e);let t=e.slice(),o,n,s;this.dataFormat==="channelsFirst"?(o=1,n=2,s=3):(o=3,n=1,s=2);let a=this.kernelSize[0],i=this.kernelSize[1],l=this.strides[0],u=this.strides[1];return t[o]=this.filters,t[n]=Lf(t[n],l,a,this.padding),t[s]=Lf(t[s],u,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Bf.className="Conv2DTranspose";J.registerClass(Bf);var Ow=class extends ec{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new B("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new B("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new B(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=dt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=bt(t.depthwiseRegularizer),this.depthwiseConstraint=Pt(t.depthwiseConstraint),this.pointwiseInitializer=dt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=bt(t.pointwiseRegularizer),this.pointwiseConstraint=Pt(t.pointwiseConstraint)}build(e){if(e=Qe(e),e.length{e=Oe(e);let o;if(this.rank===1)throw new Ne("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ue(e,[0,2,3,1])),o=Km(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(o=ro(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),this.dataFormat==="channelsFirst"&&(o=Ue(o,[0,3,1,2])),o})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=It(this.depthwiseInitializer),e.pointwiseInitializer=It(this.pointwiseInitializer),e.depthwiseRegularizer=lt(this.depthwiseRegularizer),e.pointwiseRegularizer=lt(this.pointwiseRegularizer),e.depthwiseConstraint=Ot(this.depthwiseConstraint),e.pointwiseConstraint=Ot(this.pointwiseConstraint),e}};Ow.className="SeparableConv";var Vf=class extends Ow{constructor(e){super(2,e)}};Vf.className="SeparableConv2D";J.registerClass(Vf);var rc=class extends ec{constructor(e){super(1,e);rc.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!_g(e.kernelSize,"number",1,1))throw new B(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};rc.className="Conv1D";J.registerClass(rc);var Gf=class extends Me{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return V(()=>{if(e=Oe(e),this.dataFormat==="channelsLast"){let o=df(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return df(o,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let o=df(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return df(o,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Gf.className="Cropping2D";J.registerClass(Gf);var Wf=class extends Me{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,TT(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],o=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,o]}else{let t=e[1]==null?null:this.size[0]*e[1],o=e[2]==null?null:this.size[1]*e[2];return[e[0],t,o,e[3]]}}call(e,t){return V(()=>{let o=Oe(e),n=o.shape;if(this.dataFormat==="channelsFirst"){o=Ue(o,[0,2,3,1]);let s=this.size[0]*n[2],a=this.size[1]*n[3],i=this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a]);return Ue(i,[0,3,1,2])}else{let s=this.size[0]*n[1],a=this.size[1]*n[2];return this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Wf.className="UpSampling2D";J.registerClass(Wf);function vq(r,e,t=[1,1],o="valid",n,s){return V(()=>{n==null&&(n=Kr()),$t(n);let a=zf(r,n);if(r.rank!==4)throw new B(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(e.rank!==4)throw new B(`depthwiseKernel is required to be 4-D, but is instead ${e.rank}-D`);return a=Cs(a,e,t,o==="same"?"same":"valid","NHWC",s),n==="channelsFirst"&&(a=Ue(a,[0,3,1,2])),a})}var Uf=class extends Ip{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=dt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Pt(e.depthwiseConstraint),this.depthwiseRegularizer=bt(e.depthwiseRegularizer)}build(e){if(e=Qe(e),e.length<4)throw new B(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new B(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let o=e[t],n=[this.kernelSize[0],this.kernelSize[1],o,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[o*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return V(()=>{e=Oe(e);let o=vq(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(o=ro(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),o})}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,s=io(t,this.kernelSize[0],this.padding,this.strides[0]),a=io(o,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,s,a]:[e[0],s,a,n]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=It(this.depthwiseInitializer),e.depthwiseRegularizer=lt(this.depthwiseRegularizer),e.depthwiseConstraint=Ot(this.depthwiseRegularizer),e}};Uf.className="DepthwiseConv2D";J.registerClass(Uf);function Pw(r,e,t,o){if(Array.isArray(r)){if(e!=null||t!=null)throw new B("When inputs is an array, neither initialState or constants should be provided");o!=null&&(t=r.slice(r.length-o,r.length),r=r.slice(0,r.length-o)),r.length>1&&(e=r.slice(1,r.length)),r=r[0]}function n(s){return s==null||Array.isArray(s)?s:[s]}return e=n(e),t=n(t),{inputs:r,initialState:e,constants:t}}function Mw(r,e,t,o=!1,n,s,a=!1,i=!1){return V(()=>{let l=e.shape.length;if(l<3)throw new B(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Pr(2,l));if(e=Ue(e,u),s!=null)throw new Ne("The rnn() functoin of the deeplearn.js backend does not support constants yet.");a&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),n!=null&&(n=n.asType("bool").asType("float32"),n.rank===l-1&&(n=sr(n,-1)),n=Ue(n,u)),o&&(e=qt(e,0),n!=null&&(n=qt(n,0)));let c=[],p,m=t,f=e.shape[0],d=ur(e),h;n!=null&&(h=ur(n));for(let x=0;xr(b,m));if(n==null)p=_[0],m=_[1];else{let w=V(()=>{let v=h[x],$=er(v).sub(v),A=_[0].mul(v).add(m[0].mul($)),R=m.map((M,z)=>_[1][z].mul(v).add(M.mul($)));return{output:A,newStates:R}});p=w.output,m=w.newStates}i&&c.push(p)}let g;return i&&(g=Bt(c,1)),[p,g,m]})}var ao=class extends Me{constructor(e){super(e);let t;if(e.cell==null)throw new B("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Np({cells:e.cell}):t=e.cell,t.stateSize==null)throw new B("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Et({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Pr(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Eg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let o=t[0],n;if(this.returnSequences?n=[e[0],e[1],o]:n=[e[0],o],this.returnState){let s=[];for(let a of t)s.push([e[0],a]);return[n].concat(s)}else return n}computeMask(e,t){return V(()=>{Array.isArray(t)&&(t=t[0]);let o=this.returnSequences?t:null;if(this.returnState){let n=this.states.map(s=>null);return[o].concat(n)}else return o})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let o=0;oi.shape[i.shape.length-1]),a))throw new B(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map(i=>new Et({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){V(()=>{if(!this.stateful)throw new ko("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape[0];if(o==null)throw new B("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>gt([o,n])):this.states_=[gt([o,this.cell.stateSize])];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>gt([o,n])):this.states_[0]=gt([o,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new B(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let n=0;nAt(n.clone()))})}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=Pw(e,o,n,this.numConstants);e=s.inputs,o=s.initialState,n=s.constants;let a=[],i=[];if(o!=null){t.initialState=o,a=a.concat(o),this.stateSpec=[];for(let u of o)this.stateSpec.push(new Et({shape:u.shape}));i=i.concat(this.stateSpec)}if(n!=null&&(t.constants=n,a=a.concat(n),this.numConstants=n.length),a[0]instanceof Lr){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return V(()=>{let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;e=Oe(e),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(e));let a=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==a)throw new B(`RNN Layer has ${a} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:n},u=Mw((d,h)=>{let g=this.cell.call([d].concat(h),i);return[g[0],g.slice(1)]},e,s,this.goBackwards,o,null,this.unroll,this.returnSequences),c=u[0],p=u[1],m=u[2];this.stateful&&this.resetStates(m,n);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(e){return V(()=>{let t=gt(e.shape);return t=ye(t,[1,2]),t=La(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(o=>o>1?Cg(t,[1,o]):t):this.cell.stateSize>1?[Cg(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let o=this.cell.getConfig();return this.getClassName()===ao.className&&(t.cell={className:this.cell.getClassName(),config:o}),Object.assign({},o,e,t)}static fromConfig(e,t,o={}){let n=t.cell,s=Yr(n,o);return new e(Object.assign(t,{cell:s}))}};ao.className="RNN";J.registerClass(ao);var bl=class extends Me{},Sp=class extends bl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=dt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Pt(e.kernelConstraint),this.recurrentConstraint=Pt(e.recurrentConstraint),this.biasConstraint=Pt(e.biasConstraint),this.dropout=qu([1,Rs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=qu([1,Rs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return V(()=>{if(e=e,e.length!==2)throw new B(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let o=e[1];e=e[0];let n=t.training==null?!1:t.training;0er(e),rate:this.dropout,training:n})),0er(o),rate:this.recurrentDropout,training:n}));let s,a=this.dropoutMask,i=this.recurrentDropoutMask;a!=null?s=Hn(O(e,a),this.kernel.read()):s=Hn(e,this.kernel.read()),this.bias!=null&&(s=ro(s,this.bias.read())),i!=null&&(o=O(o,i));let l=Q(s,Hn(o,this.recurrentKernel.read()));return this.activation!=null&&(l=this.activation.apply(l)),[l,l]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:Os(this.activation),useBias:this.useBias,kernelInitializer:It(this.kernelInitializer),recurrentInitializer:It(this.recurrentInitializer),biasInitializer:It(this.biasInitializer),kernelRegularizer:lt(this.kernelRegularizer),recurrentRegularizer:lt(this.recurrentRegularizer),biasRegularizer:lt(this.biasRegularizer),activityRegularizer:lt(this.activityRegularizer),kernelConstraint:Ot(this.kernelConstraint),recurrentConstraint:Ot(this.recurrentConstraint),biasConstraint:Ot(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Sp.className="SimpleRNNCell";J.registerClass(Sp);var jf=class extends ao{constructor(e){e.cell=new Sp(e),super(e)}call(e,t){return V(()=>{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return new e(t)}};jf.className="SimpleRNN";J.registerClass(jf);var Tp=class extends bl{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new B("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=dt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Pt(e.kernelConstraint),this.recurrentConstraint=Pt(e.recurrentConstraint),this.biasConstraint=Pt(e.biasConstraint),this.dropout=qu([1,Rs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=qu([1,Rs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return V(()=>{if(e=e,e.length!==2)throw new B(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training==null?!1:t.training,n=e[1];e=e[0],0er(e),rate:this.dropout,training:o,count:3})),0er(n),rate:this.recurrentDropout,training:o,count:3}));let s=this.dropoutMask,a=this.recurrentDropoutMask,i,l,u;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Hf.className="GRU";J.registerClass(Hf);var _l=class extends bl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=dt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Pt(e.kernelConstraint),this.recurrentConstraint=Pt(e.recurrentConstraint),this.biasConstraint=Pt(e.biasConstraint),this.dropout=qu([1,Rs([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=qu([1,Rs([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Qe(e);let o=e[e.length-1];this.kernel=this.addWeight("kernel",[o,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,a=this.units;n=new(t=class extends oo{apply(l,u){let c=s.apply([a]),p=new Xu().apply([a]),m=s.apply([a*2]);return aw(aw(c,p),m)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return V(()=>{let o=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new B(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1],s=e[2];e=e[0],0er(e),rate:this.dropout,training:o,count:4})),0er(n),rate:this.recurrentDropout,training:o,count:4}));let a=this.dropoutMask,i=this.recurrentDropoutMask,l,u,c,p;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};qf.className="LSTM";J.registerClass(qf);var Np=class extends bl{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return V(()=>{e=e;let o=e.slice(1),n=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?n.push(o.splice(0,i.stateSize.length)):n.push(o.splice(0,1));n.reverse();let s=[],a;for(let i=0;i{$s(`RNNCell_${n}`,()=>{o.build(e),Array.isArray(o.stateSize)?t=o.stateSize[0]:t=o.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=s=>({className:s.getClassName(),config:s.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,o={}){let n=[];for(let s of t.cells)n.push(Yr(s,o));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.cells)t.push(...o.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return vf(e)}setWeights(e){let t=[];for(let o of this.cells){let n=o.weights.length,s=e.splice(n);for(let a=0;aNg(e(),t),a=()=>cl(s,e,o);return!n||n<=1?At(a().clone()):Array(n).fill(void 0).map(a).map(l=>At(l.clone()))}var Cq=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(r);n{if(this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new B("ConvRNN2D cell does not support constants");let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return V(()=>{let{stateSize:t}=this.cell,o=e.shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)],a=gt(s);return Array.isArray(t)?Array(t.length).fill(a):[a]})}resetStates(e,t=!1){V(()=>{if(!this.stateful)throw new ko("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)];if(o[0]==null)throw new B("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gt(s)):this.states_=[gt(s)];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gt(s)):this.states_[0]=gt(s);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new B(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let i=0;iAt(i.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:o,kernelSize:n,padding:s,strides:a,dilationRate:i}=this.cell,l=t==="channelsFirst",u=e[l?3:2],c=e[l?4:3],p=io(u,n[0],s,a[0],i[0]),m=io(c,n[1],s,a[1],i[1]);return[...e.slice(0,2),...l?[o,p,m]:[p,m,o]]}};Lw.className="ConvRNN2D";var Ep=class extends _l{constructor(e){let{filters:t,kernelSize:o,strides:n,padding:s,dataFormat:a,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Wt(this.filters,"filters"),this.kernelSize=xl(o,2,"kernelSize"),this.kernelSize.forEach(l=>Wt(l,"kernelSize")),this.strides=xl(n||1,2,"strides"),this.strides.forEach(l=>Wt(l,"strides")),this.padding=s||"valid",Xr(this.padding),this.dataFormat=a||"channelsLast",$t(this.dataFormat),this.dilationRate=xl(i||1,2,"dilationRate"),this.dilationRate.forEach(l=>Wt(l,"dilationRate"))}build(e){var t;e=Qe(e);let o=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[o]==null)throw new B(`The channel dimension of the input should be defined. Found ${e[o]}`);let n=e[o],s=4,a=this.kernelSize.concat([n,this.filters*s]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let l;if(this.unitForgetBias){let u=this.biasInitializer,c=this.filters;l=new(t=class extends oo{apply(m,f){let d=u.apply([c]),h=Cr([c]),g=u.apply([c*2]);return cp([d,h,g])}},t.className="CustomInit",t)}else l=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,l,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return V(()=>{if(e.length!==3)throw new B(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training||!1,n=e[0],s=e[1],a=e[2],i=4;0er(n),rate:this.dropout,training:o,count:i}));let l=this.dropoutMask,u=(ie,se,pe)=>!se||!se[pe]?ie:O(se[pe],ie),c=u(n,l,0),p=u(n,l,1),m=u(n,l,2),f=u(n,l,3);0er(s),rate:this.recurrentDropout,training:o,count:i}));let d=this.recurrentDropoutMask,h=u(s,d,0),g=u(s,d,1),x=u(s,d,2),b=u(s,d,3),_=3,[w,v,$,A]=lr(this.kernel.read(),i,_),[R,M,z,W]=this.useBias?lr(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,w,R,this.padding),p=this.inputConv(p,v,M,this.padding),m=this.inputConv(m,$,z,this.padding),f=this.inputConv(f,A,W,this.padding);let[U,q,Z,X]=lr(this.recurrentKernel.read(),i,_);h=this.recurrentConv(h,U),g=this.recurrentConv(g,q),x=this.recurrentConv(x,Z),b=this.recurrentConv(b,X);let Y=this.recurrentActivation.apply(Q(c,h)),te=this.recurrentActivation.apply(Q(p,g)),K=Q(O(te,a),O(Y,this.activation.apply(Q(m,x)))),re=O(this.recurrentActivation.apply(Q(f,b)),this.activation.apply(K));return[re,re,K]})}getConfig(){let e=super.getConfig(),{units:t}=e,o=Cq(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},o,n)}inputConv(e,t,o,n){let s=jr(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return o?ro(s,o,this.dataFormat):s}recurrentConv(e,t){return jr(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ep.className="ConvLSTM2DCell";J.registerClass(Ep);var Kf=class extends Lw{constructor(e){let t=new Ep(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Kf.className="ConvLSTM2D";J.registerClass(Kf);var Ap=class extends Me{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,o=[];for(let n=0;n{this.invokeCallHook(e,t);let o=Oe(e);if(0Ng(o,this.rate,s,this.seed),()=>o,n)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Ap.className="Dropout";J.registerClass(Ap);var Xf=class extends Ap{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Xf.className="SpatialDropout1D";J.registerClass(Xf);var Yf=class extends Me{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Wt(this.units,"units"),this.activation=Ps(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Pt(e.kernelConstraint),this.biasConstraint=Pt(e.biasConstraint),this.kernelRegularizer=bt(e.kernelRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.activityRegularizer=bt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Qe(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Qe(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Oe(e),n=wg(this.activation.getClassName()),s;return n!=null?s=Hn(o,this.kernel.read(),n,this.bias?this.bias.read():null):(s=Hn(o,this.kernel.read()),this.bias!=null&&(s=ro(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let e={units:this.units,activation:Os(this.activation),useBias:this.useBias,kernelInitializer:It(this.kernelInitializer),biasInitializer:It(this.biasInitializer),kernelRegularizer:lt(this.kernelRegularizer),biasRegularizer:lt(this.biasRegularizer),activityRegularizer:lt(this.activityRegularizer),kernelConstraint:Ot(this.kernelConstraint),biasConstraint:Ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Yf.className="Dense";J.registerClass(Yf);var Zf=class extends Me{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Qe(e);for(let t of e.slice(1))if(t==null)throw new B(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],jn(e,1)]}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Oe(e);if(this.dataFormat==="channelsFirst"&&o.rank>1){let n=[0];for(let s=2;s{this.invokeCallHook(e,t);let o=Oe(e);return this.activation.apply(o)})}getConfig(){let e={activation:Os(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Jf.className="Activation";J.registerClass(Jf);var Qf=class extends Me{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return V(()=>(e=Oe(e),RT(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Qf.className="RepeatVector";J.registerClass(Qf);var ed=class extends Me{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let o=Oe(e),n=o.shape,s=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return o.reshape(s)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};ed.className="Reshape";J.registerClass(ed);var td=class extends Me{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Pr(1,e.dims.length+1);if(!y.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Et({ndim:this.dims.length+1})]}computeOutputShape(e){e=Qe(e);let t=e.slice();return this.dims.forEach((o,n)=>{t[n+1]=e[o]}),t}call(e,t){return Ue(Oe(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};td.className="Permute";J.registerClass(td);var rd=class extends Me{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let o=Oe(e),n=-1;return nl(Ln(o,this.maskValue),n)}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Oe(e),n=-1,s=!0,a=nl(Ln(o,this.maskValue),n,s);return o.mul(a.asType(o.dtype))})}};rd.className="Masking";J.registerClass(rd);var od=class extends Me{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Wt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Wt(this.outputDim,"outputDim"),this.embeddingsInitializer=dt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=bt(e.embeddingsRegularizer),this.activityRegularizer=bt(e.activityRegularizer),this.embeddingsConstraint=Pt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return V(()=>this.maskZero?(e=Oe(e),Ln(e,Ie(e))):null)}computeOutputShape(e){if(e=Qe(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new B(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let o=0;for(let n=0;n{this.invokeCallHook(e,t);let o=Oe(e);return o.dtype!=="int32"&&(o=Ma(o,"int32")),Ig(this.embeddings.read(),o.as1D()).reshape(Qe(this.computeOutputShape(o.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:It(this.embeddingsInitializer),embeddingsRegularizer:lt(this.embeddingsRegularizer),activityRegularizer:lt(this.activityRegularizer),embeddingsConstraint:Ot(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};od.className="Embedding";J.registerClass(od);var wl=class extends Me{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new Ne}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new B(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let o=e[0]==null?null:e[0].slice(1);for(let s=1;ss.length);e.indexOf(null)===-1&&Un(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return V(()=>{if(e=e,this.reshapeRequired){let o=[],n=e.map(s=>s.rank);if(n.indexOf(null)===-1){let s=Rs(n);for(let a of e){let i=a.rank;for(let l=0;l1){let c=Pr(1,u).concat([0]);o.push(Ue(l,c)),s=!0}else o.push(l)}let a=this.mergeFunction(o),i=a.rank;if(s){if(i==null){let l=a.shape,u=l.length,c=l[u-1],p=[c].concat(l.slice(0,l.length-1));a=Ue(a.reshape([-1,c]),[1,0]).reshape(p)}else if(i>1){let l=[i-1].concat(Pr(0,i-1));a=Ue(a,l)}}return a}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new B("`mask` should be an Array");if(!Array.isArray(e))throw new B("`inputs` should be an Array");if(t.length!==e.length)throw new B(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:sr(n,0));let o=t[0];for(let n=1;n{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0];for(let o=1;o{let t=e[0];for(let o=1;o1)throw new B("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return V(()=>cp(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new B("A `Concatenate` layer should be called on a list of inputs.");let t=e,o=t[0].slice(),n=this.axis<0?o.length+this.axis:this.axis;for(let s of t.slice(1)){if(o[n]==null||s[n]==null){o[n]=null;break}o[n]+=s[n]}return o}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new B("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new B("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new B(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return V(()=>{let o=!0;if(t.forEach(a=>{if(a!=null){o=!1;return}}),o)return null;let n=[];for(let a=0;a3||e.shape.length>3)throw new Ne("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${e.shape.length}`),typeof t=="number"&&(t=[t,t]),r.dtype==="complex64"||e.dtype==="complex64")throw new Ne("batchDot is not implemented for complex64-type Tensors yet.");let o=r.shape.length,n=e.shape.length;t==null&&(t=[o-1,n-2]);let s=t;return V(()=>{let a;if(o>n){a=o-n;let l=[];for(let u=0;uo){a=n-o;let l=[];for(let u=0;u0){let l;o>n?l=o+n-3:l=o-1;let u=[];for(let c=l;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],o=e[1];if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);if(t[n[0]]!==o[n[1]])throw new B(`Dimension incompatibility: ${t[n[0]]} !== ${o[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new B(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],o=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((s,a)=>cd(s,e[a].shape.length)):n=[cd(this.axes,t.shape.length),cd(this.axes,o.shape.length)],this.normalize&&(t=Cf(t,n[0]),o=Cf(o,n[1])),Iq(t,o,n)}interpretAxes(e,t){let o;return Array.isArray(this.axes)?o=this.axes:o=[cd(this.axes,e.length),cd(this.axes,t.length)],o}computeOutputShape(e){y.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),o=e[1].slice();if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);t.splice(n[0],1),o.splice(n[1],1),o.splice(0,1);let s=t.concat(o);return s.length===1&&s.push(1),s}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};pd.className="Dot";J.registerClass(pd);var md=class extends Me{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Oe(e);return cl(()=>pp(o.shape,0,this.stddev).add(o),()=>o,t.training||!1)})}};md.className="GaussianNoise";J.registerClass(md);var fd=class extends Me{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return V(()=>{this.invokeCallHook(e,t);let o=Oe(e);return this.rate>0&&this.rate<1?cl(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return o.mul(pp(o.shape,1,s))},()=>o,t.training||!1):o})}};fd.className="GaussianDropout";J.registerClass(fd);var dd=class extends Me{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Oe(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return V(()=>{if(this.rate<1&&this.rate>0){let o=this._getNoiseShape(e);return cl(()=>{let s=Oe(e),a=1.6732632423543772,i=1.0507009873554805,l=-a*i,u=to(Es(o),this.rate);u=Ma(u,"float32");let c=((1-this.rate)*(1+this.rate*l**2))**-.5,p=-c*l*this.rate;return s.mul(u).add(u.add(-1).mul(l)).mul(c).add(p)},()=>Oe(e),t.training||!1)}return e})}};dd.className="AlphaDropout";J.registerClass(dd);function hd(r,e,t,o,n,s=.001){let a;if(r.rank===2)a=s_(r,e,t,o,n,s);else if(r.rank===3)a=i_(r,e,t,o,n,s);else if(r.rank===4)a=a_(r,e,t,o,n,s);else throw new Ne(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return a}function Nq(r,e,t,o,n=.001){return V(()=>{let s=Xc(r,o),a=s.mean,i=s.variance;return[hd(r,a,i,t,e,n),a,i]})}function Sq(r,e,t,o,n=.001){return V(()=>{let s=Xc(r,o),a=s.mean,i=s.variance,l=[];for(let d of Pr(0,r.rank))o.indexOf(d)!==-1?l.push(1):l.push(r.shape[d]);let u=a.reshape(l),c=i.reshape(l),p=e==null?null:e.reshape(l),m=t==null?null:t.reshape(l);return[hd(r,u,c,m,p,n),a,i]})}function Tq(r,e,t,o,n=.001){return y.arraysEqual(o.slice().sort(),Pr(0,r.rank-1))?Nq(r,e,t,o,n):Sq(r,e,t,o,n)}var gd=class extends Me{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=dt(e.betaInitializer||"zeros"),this.gammaInitializer=dt(e.gammaInitializer||"ones"),this.movingMeanInitializer=dt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=dt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Pt(e.betaConstraint),this.gammaConstraint=Pt(e.gammaConstraint),this.betaRegularizer=bt(e.betaRegularizer),this.gammaRegularizer=bt(e.gammaRegularizer)}build(e){e=Qe(e);let t=this.axis>=0?this.axis:this.axis+e.length,o=e[t];if(o==null)throw new B(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Et({ndim:e.length,axes:{[t]:o}})];let n=[o];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return V(()=>{let o=t.training==null?!1:t.training,n=Oe(e),s=n.shape,a=s.length,i=Pr(0,a),l=this.axis>=0?this.axis:this.axis+a;i.splice(l,1);let u=Vn(1,a);u[l]=s[l];let c=i.slice();c.sort();let p=!y.arraysEqual(c,Pr(0,a).slice(0,a-1)),m=()=>{if(p){let b=this.movingMean.read().reshape(u),_=this.movingVariance.read().reshape(u),w=this.center?this.beta.read().reshape(u):null,v=this.scale?this.gamma.read().reshape(u):null;return hd(n,b,_,w,v,this.epsilon)}else return hd(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!o)return m();let[f,d,h]=Tq(n,this.gamma.read(),this.beta.read(),i,this.epsilon),g=(b,_,w)=>{V(()=>{let v=1-w,$=b.read(),A=$.sub(_).mul(v);b.write($.sub(A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:It(this.betaInitializer),gammaInitializer:It(this.gammaInitializer),movingMeanInitializer:It(this.movingMeanInitializer),movingVarianceInitializer:It(this.movingVarianceInitializer),betaRegularizer:lt(this.betaRegularizer),gammaRegularizer:lt(this.gammaRegularizer),betaConstraint:Ot(this.betaConstraint),gammaConstraint:Ot(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};gd.className="BatchNormalization";J.registerClass(gd);var xd=class extends Me{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=dt(e.betaInitializer||"zeros"),this.gammaInitializer=dt(e.gammaInitializer||"ones"),this.betaRegularizer=bt(e.betaRegularizer),this.gammaRegularizer=bt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Qe(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=t)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==Un(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let o=this.axis.map(s=>e[s]),n=!0;this.scale?this.gamma=this.addWeight("gamma",o,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",o,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){let o=Oe(e),n=o.shape,s=n.length;return V(()=>{let a=!0,{mean:i,variance:l}=Xc(o,this.axis,a),u=Vn(1,s);for(let h of this.axis)u[h]=n[h];let c=h=>h!=null&&h.shape.length!==s&&this.axis!==[s-1]?h.reshape(u):h,p=c(this.gamma.read()),m=c(this.beta.read()),f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new B(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(e==null&&(e=[[1,1],[1,1]]),e.length!==2||e[0].length!==2||e[1].length!==2)throw new B("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(t==null&&(t=Kr()),t!=="channelsLast"&&t!=="channelsFirst")throw new B(`Unknown data format: ${t}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let o;return t==="channelsFirst"?o=[[0,0],[0,0],e[0],e[1]]:o=[[0,0],e[0],e[1],[0,0]],$r(r,o)})}var yd=class extends Me{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Kr():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new B(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,o;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],o=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new B(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new B(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);o=e.padding[1]}this.padding=[t,o]}this.inputSpec=[new Et({ndim:4})]}computeOutputShape(e){e=Qe(e);let t,o;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?o=e[3]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],e[1],t,o]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?o=e[2]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],t,o,e[3]])}call(e,t){return V(()=>Eq(Oe(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};yd.className="ZeroPadding2D";J.registerClass(yd);function Xg(r,e,t,o,n,s){return V(()=>{$t(n),sw(s),Xr(o),t==null&&(t=[1,1]),o==null&&(o="valid"),n==null&&(n=Kr()),s==null&&(s="max"),r=zf(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=Ea(r,e,t,i):a=va(r,e,t,i),n==="channelsFirst"&&(a=Ue(a,[0,3,1,2])),a})}function k1(r,e,t,o,n,s){return V(()=>{$t(n),sw(s),Xr(o),t==null&&(t=[1,1,1]),o==null&&(o="valid"),n==null&&(n=Kr()),s==null&&(s="max"),r=Fw(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=Gm(r,e,t,i):a=Dm(r,e,t,i),n==="channelsFirst"&&(a=Ue(a,[0,4,1,2,3])),a})}var zw=class extends Me{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new B(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Wt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new B(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Xr(this.padding),this.inputSpec=[new Et({ndim:3})]}computeOutputShape(e){e=Qe(e);let t=io(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return V(()=>{this.invokeCallHook(e,t),e=La(Oe(e),2);let o=this.poolingFunction(Oe(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return wo(o,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},bd=class extends zw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Xr(n),Xg(e,t,o,n,s,"max")}};bd.className="MaxPooling1D";J.registerClass(bd);var _d=class extends zw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Xr(n),Xg(e,t,o,n,s,"avg")}};_d.className="AveragePooling1D";J.registerClass(_d);var Bw=class extends Me{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new B(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Wt(this.poolSize,"poolSize"),Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),Xr(this.padding),this.inputSpec=[new Et({ndim:4})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=io(t,this.poolSize[0],this.padding,this.strides[0]),o=io(o,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o]:[e[0],t,o,e[3]]}call(e,t){return V(()=>(this.invokeCallHook(e,t),this.poolingFunction(Oe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},wd=class extends Bw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Xr(n),Xg(e,t,o,n,s,"max")}};wd.className="MaxPooling2D";J.registerClass(wd);var kd=class extends Bw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Xr(n),Xg(e,t,o,n,s,"avg")}};kd.className="AveragePooling2D";J.registerClass(kd);var Vw=class extends Me{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new B(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Wt(this.poolSize,"poolSize"),Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),Xr(this.padding),this.inputSpec=[new Et({ndim:5})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=io(t,this.poolSize[0],this.padding,this.strides[0]),o=io(o,this.poolSize[1],this.padding,this.strides[1]),n=io(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o,n]:[e[0],t,o,n,e[4]]}call(e,t){return V(()=>(this.invokeCallHook(e,t),this.poolingFunction(Oe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},vd=class extends Vw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Xr(n),k1(e,t,o,n,s,"max")}};vd.className="MaxPooling3D";J.registerClass(vd);var Cd=class extends Vw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return $t(s),Xr(n),k1(e,t,o,n,s,"avg")}};Cd.className="AveragePooling3D";J.registerClass(Cd);var Gw=class extends Me{constructor(e){super(e);this.inputSpec=[new Et({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Ne}},Id=class extends Gw{constructor(e){super(e||{})}call(e,t){return V(()=>{let o=Oe(e);return ht(o,1)})}};Id.className="GlobalAveragePooling1D";J.registerClass(Id);var Nd=class extends Gw{constructor(e){super(e||{})}call(e,t){return V(()=>{let o=Oe(e);return ar(o,1)})}};Nd.className="GlobalMaxPooling1D";J.registerClass(Nd);var Ww=class extends Me{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,$t(this.dataFormat),this.inputSpec=[new Et({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Ne}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Sd=class extends Ww{call(e,t){return V(()=>{let o=Oe(e);return this.dataFormat==="channelsLast"?ht(o,[1,2]):ht(o,[2,3])})}};Sd.className="GlobalAveragePooling2D";J.registerClass(Sd);var Td=class extends Ww{call(e,t){return V(()=>{let o=Oe(e);return this.dataFormat==="channelsLast"?ar(o,[1,2]):ar(o,[2,3])})}};Td.className="GlobalMaxPooling2D";J.registerClass(Td);var Uw=class extends Me{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,o={}){let n=t.layer,s=Yr(n,o);delete t.layer;let a={layer:s};return Object.assign(a,t),new e(a)}},Ed=class extends Uw{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Qe(e),e.length<3)throw new B(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Qe(e);let t=[e[0]].concat(e.slice(2)),o=this.layer.computeOutputShape(t),n=e[1];return[o[0],n].concat(o.slice(1))}call(e,t){return V(()=>(e=Oe(e),Mw((a,i)=>[Oe(this.layer.call(a,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};Ed.className="TimeDistributed";J.registerClass(Ed);function Aq(r){Gi(ST,"BidirectionalMergeMode",r)}var Dq="concat",Ad=class extends Uw{constructor(e){super(e);let t=e.layer.getConfig(),o={};o.className=e.layer.getClassName(),o.config=t,this.forwardLayer=Yr(o),t.goBackwards=t.goBackwards!==!0;let n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=Yr(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?Dq:e.mergeMode,Aq(this.mergeMode),e.weights)throw new Ne("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,o=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,o)),this.backwardLayer.setWeights(e.slice(o))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let o,n,s;return this.returnState&&(s=t.slice(1)),o=t[0],o=o,this.mergeMode==="concat"?(o[o.length-1]*=2,n=[o]):this.mergeMode==null?n=[o,o.slice()]:n=[o],this.returnState?this.mergeMode==null?n.concat(s).concat(s.slice()):[o].concat(s).concat(s.slice()):dr(n)}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=Pw(e,o,n,this.numConstants);if(e=s.inputs,o=s.initialState,n=s.constants,Array.isArray(e)&&(o=e.slice(1),e=e[0]),(o==null||o.length===0)&&n==null)return super.apply(e,t);let a=[],i=[];if(o!=null){let u=o.length;if(u%2>0)throw new B("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=o,a.push(...o);let c=o.map(p=>new Et({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,u/2),this.backwardLayer.stateSpec=c.slice(u/2),i.push(...c)}if(n!=null)throw new Ne("Support for constants in Bidirectional layers is not implemented yet.");let l=a[0]instanceof Lr;for(let u of a)if(u instanceof Lr!==l)throw new B("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(l){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return V(()=>{let o=t.initialState,n,s;if(o==null)n=this.forwardLayer.call(e,t),s=this.backwardLayer.call(e,t);else{let l=o.slice(0,o.length/2),u=o.slice(o.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:l})),s=this.backwardLayer.call(e,Object.assign(t,{initialState:u}))}let a;this.returnState&&(Array.isArray(n)&&(a=n.slice(1).concat(s.slice(1))),n=n[0],s=s[0]),this.returnSequences&&(s=qt(s,1));let i;return this.mergeMode==="concat"?i=cp([n,s]):this.mergeMode==="sum"?i=Q(n,s):this.mergeMode==="ave"?i=O(.5,Q(n,s)):this.mergeMode==="mul"?i=O(n,s):this.mergeMode==null&&(i=[n,s]),this.returnState?this.mergeMode==null?i.concat(a):[i].concat(a):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){$s(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),$s(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let o;if(this.returnSequences?this.mergeMode==null?o=[t,t]:o=t:this.mergeMode==null?o=[null,null]:o=null,this.returnState){let s=this.forwardLayer.states.map(a=>null);return Array.isArray(o)?o.concat(s).concat(s):[o].concat(s).concat(s)}else return o}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let o=Yr(t.layer);if(delete t.layer,t.numConstants!=null)throw new Ne("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let n=t;return n.layer=o,new e(n)}};Ad.className="Bidirectional";J.registerClass(Ad);function $q(r){return new Wi(r)}function Rq(r){return new Of(r)}function Fq(r){return new $f(r)}function Oq(r){return new Rf(r)}function Pq(r){return new Ff(r)}function Mq(r){return new Mf(r)}function Lq(r){return new Pf(r)}function zq(r){return new rc(r)}function Bq(r){return new yl(r)}function Vq(r){return new Bf(r)}function Gq(r){return new tc(r)}function Wq(r){return new Vf(r)}function Uq(r){return new Gf(r)}function jq(r){return new Wf(r)}function Hq(r){return new Uf(r)}function qq(r){return new Jf(r)}function Kq(r){return new Yf(r)}function Xq(r){return new Ap(r)}function Yq(r){return new Xf(r)}function Zq(r){return new Zf(r)}function Jq(r){return new Qf(r)}function Qq(r){return new ed(r)}function eK(r){return new td(r)}function tK(r){return new od(r)}function rK(r){return new nd(r)}function oK(r){return new id(r)}function nK(r){return new ud(r)}function sK(r){return new ad(r)}function iK(r){return new ld(r)}function aK(r){return new sd(r)}function lK(r){return new pd(r)}function uK(r){return new gd(r)}function cK(r){return new xd(r)}function pK(r){return new yd(r)}function Hw(r){return new _d(r)}function mK(r){return Hw(r)}function fK(r){return Hw(r)}function qw(r){return new kd(r)}function dK(r){return qw(r)}function hK(r){return qw(r)}function Kw(r){return new Cd(r)}function gK(r){return Kw(r)}function xK(r){return Kw(r)}function yK(r){return new Id(r)}function bK(r){return new Sd(r)}function v1(r){return new Nd(r)}function C1(r){return new Td(r)}function I1(r){return new bd(r)}function N1(r){return new wd(r)}function _K(r){return new vd(r)}function wK(r){return new Hf(r)}function kK(r){return new Tp(r)}function vK(r){return new qf(r)}function CK(r){return new _l(r)}function IK(r){return new jf(r)}function NK(r){return new Sp(r)}function SK(r){return new Kf(r)}function TK(r){return new Ep(r)}function EK(r){return new ao(r)}function AK(r){return new Np(r)}function DK(r){return new Ad(r)}function $K(r){return new Ed(r)}var RK=v1,FK=C1,OK=I1,PK=N1;function MK(r){return new md(r)}function LK(r){return new fd(r)}function zK(r){return new dd(r)}function BK(r){return new rd(r)}var Xw={};et(Xw,{MAPE:()=>ZK,MSE:()=>e6,binaryAccuracy:()=>VK,binaryCrossentropy:()=>GK,categoricalAccuracy:()=>UK,categoricalCrossentropy:()=>jK,cosineProximity:()=>KK,mape:()=>JK,meanAbsoluteError:()=>XK,meanAbsolutePercentageError:()=>YK,meanSquaredError:()=>QK,mse:()=>t6,precision:()=>HK,recall:()=>qK,sparseCategoricalAccuracy:()=>WK});function VK(r,e){return Sf(r,e)}function GK(r,e){return Lg(r,e)}function WK(r,e){return zg(r,e)}function UK(r,e){return Tf(r,e)}function jK(r,e){return Ef(r,e)}function HK(r,e){return pw(r,e)}function qK(r,e){return qT(r,e)}function KK(r,e){return If(r,e)}function XK(r,e){return wp(r,e)}function YK(r,e){return dl(r,e)}function ZK(r,e){return dl(r,e)}function JK(r,e){return dl(r,e)}function QK(r,e){return ji(r,e)}function e6(r,e){return ji(r,e)}function t6(r,e){return ji(r,e)}var Yw={};et(Yw,{modelFromJSON:()=>p1});var Zw={};et(Zw,{l1:()=>o6,l1l2:()=>r6,l2:()=>n6});function r6(r){return new Qu(r)}function o6(r){return x1(r)}function n6(r){return y1(r)}var Yg=class extends fl{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof vo))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Zg(r,e){return re}var Jg=class extends Yg{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new Ne("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Zg:this.mode==="max"?this.monitorFunc=S1:this.monitor.indexOf("acc")!==-1?this.monitorFunc=S1:this.monitorFunc=Zg,this.monitorFunc===Zg&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Zg?Infinity:-Infinity}async onEpochEnd(e,t){await Ui(t);let o=this.getMonitorValue(t);o!=null&&(this.monitorFunc(o-this.minDelta,this.best)?(this.best=o,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function s6(r){return new Jg(r)}var T1={earlyStopping:s6};var qn;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(qn||(qn={}));var E1;(function(r){let e;(function(t){t[t.LEGACY=0]="LEGACY",t[t.V1=1]="V1",t[t.V2=2]="V2"})(e=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(E1||(E1={}));var Jw={};function A1(r,e){let t={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:e};Jw[r]=t}function Qg(r){return Jw[r]}function D1(r){delete Jw[r]}function C(r,e,t,o,n){let s=e.inputParams[r];if(s&&s.inputIndexStart!==void 0){let i=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?i+1:s.inputIndexEnd;if(s.type==="tensor")return hr(e.inputNames[s.inputIndexStart],t,o,n);if(s.type==="tensors")return e.inputNames.slice(i,l).map(m=>hr(m,t,o,n));let u=hr(e.inputNames.slice(i)[0],t,o,n),c=u.dataSync();return s.type==="number"?c[0]:y.toNestedArray(u.shape,c)}let a=e.attrParams[r];return a&&a.value}function hr(r,e,t,o){let[n,s]=Zr(r);if(o!=null){let i=o.getHashTableHandleByName(n);if(i!=null)return i}let a=t.currentContextIds.find(i=>!!e[ex(n,i)]);return a!==void 0?e[ex(n,a)][s]:void 0}function $1(r,e,t){return e[ex(r,t.currentContextId)]}function Ms(r,e){let[t,o]=Zr(r);return[ex(t,e&&e.currentContextId),o]}function ex(r,e){return e?`${r}-${e}`:r}function Zr(r){let e=r.split(":");return e.length===1?[r,0]:[e[0],Number(e[e.length-1])]}function Dd(r,e,t){let o=C("pad",r,e,t);if(o==="explicit"){o=C("explicitPaddings",r,e,t);let n=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)n[s][0]=o[s*2],n[s][1]=o[s*2+1];return n}return o}function Ls(r){return r.kept?r:$o(r)}var Qw={};et(Qw,{json:()=>i6});var i6=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var ek={};et(ek,{json:()=>a6});var a6=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var tk={};et(tk,{json:()=>l6});var l6=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];var rk={};et(rk,{json:()=>u6});var u6=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];var ok={};et(ok,{json:()=>c6});var c6=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];var nk={};et(nk,{json:()=>p6});var p6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var sk={};et(sk,{json:()=>m6});var m6=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];var ik={};et(ik,{json:()=>f6});var f6=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];var ak={};et(ak,{json:()=>d6});var d6=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}];var lk={};et(lk,{json:()=>h6});var h6=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];var uk={};et(uk,{json:()=>g6});var g6=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var ck={};et(ck,{json:()=>x6});var x6=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var pk={};et(pk,{json:()=>y6});var y6=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];var mk={};et(mk,{json:()=>b6});var b6=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];var fk={};et(fk,{json:()=>_6});var _6=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];var dk={};et(dk,{json:()=>w6});var w6=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];var hk={};et(hk,{json:()=>k6});var k6=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];var tx=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[Qw,ek,tk,rk,ok,nk,sk,uk,lk,ik,ck,pk,mk,fk,dk,hk,ak],t=[].concat(...e.map(o=>o.json));this.opMappers=t.reduce((o,n)=>(o[n.tfOpName]=n,o),{})}transformGraph(e,t={}){let o=e.node,n=[],s=[],a=[],i=o.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?n.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&a.push(h[g.name]),h),{}),l=[],u=[],c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let m=Object.keys(i);m.forEach(h=>{let g=i[h];g.inputNames.forEach(x=>{let[b]=Ms(x);g.inputs.push(i[b]),i[b].children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=i[h];g.children.length===0&&u.push(g)}):Object.keys(p).forEach(h=>{let[g]=Ms(h),x=i[g];x!=null&&(x.signatureKey=p[h],u.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=Ms(h),x=i[g];x&&(x.signatureKey=c[h],l.push(x))}):l=n;let f={};e.library!=null&&e.library.function!=null&&(f=e.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:i,inputs:l,outputs:u,weights:s,placeholders:n,signature:t,functions:f};return a.length>0&&(d.initNodes=a),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,o)=>(t[e[o].name]=o,t),{})}mapNode(e){let t=Qg(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let o={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(o.inputParams=t.inputs.reduce((n,s)=>(n[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},n),{})),t.attrs!=null&&(o.attrParams=t.attrs.reduce((n,s)=>{let a=s.type,i;switch(s.type){case"string":i=rx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=rx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":i=ux(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ux(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":i=nx(e.attr,s.tfName,s.defaultValue||0),i===void 0&&!!s.tfDeprecatedName&&(i=nx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":i=lx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=lx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":i=ox(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ox(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":i=px(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=px(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":i=ax(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ax(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":i=cx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=cx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":i=sx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=sx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":i=ix(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ix(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":i=R1(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=R1(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${e.op}`)}return n[s.name]={value:i,type:a},n},{})),o}mapFunction(e){let t=e.nodeDef,o=[],n=[],s={};t!=null&&(s=t.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&n.push(p[m.name]),p),{}));let a=[],i=[];e.signature.inputArg.forEach(p=>{let[m]=Ms(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:gk(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,a.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach(f=>{let[d]=Ms(f);m.inputs.push(s[d]),s[d].children.push(m)})});let u=e.ret;e.signature.outputArg.forEach(p=>{let[m,f]=Ms(u[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,i.push(d))});let c=this.mapArgsToSignature(e);return{nodes:s,inputs:a,outputs:i,weights:n,placeholders:o,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o),t),{}),outputs:e.signature.outputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o,e.ret),t),{})}}mapArgToTensorInfo(e,t){let o=e.name;return t!=null&&(o=t[o]),{name:o,dtype:e.type}}};function v6(r){let e=G().global;if(typeof e.atob!="undefined")return e.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function F1(r,e){let t=Array.isArray(r)?String.fromCharCode.apply(null,r):v6(r);return e?t:t.toLowerCase()}function rx(r,e,t,o=!1){let n=r[e];return n!=null?F1(n.s,o):t}function ox(r,e,t){let o=r[e];return o?o.b:t}function nx(r,e,t){let o=r[e]||{},n=o.i!=null?o.i:o.f!=null?o.f:t;return typeof n=="number"?n:parseInt(n,10)}function gk(r){switch(typeof r=="string"&&(r=qn[r]),r){case qn.DT_FLOAT:return"float32";case qn.DT_INT32:case qn.DT_INT64:case qn.DT_INT8:case qn.DT_UINT8:return"int32";case qn.DT_BOOL:return"bool";case qn.DT_DOUBLE:return"float32";case qn.DT_STRING:return"string";default:return null}}function R1(r,e,t){let o=r[e];return o&&o.func?o.func.name:t}function sx(r,e,t){let o=r[e];return o&&o.type?gk(o.type):t}function ix(r,e,t){let o=r[e];return o&&o.list&&o.list.type?o.list.type.map(n=>gk(n)):t}function O1(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(e=>typeof e.size=="number"?e.size:parseInt(e.size,10)):[]}function ax(r,e,t){let o=r[e];return o&&o.shape?O1(o.shape):t}function lx(r,e,t){let o=r[e];return o?((o.list.f&&o.list.f.length?o.list.f:o.list.i)||[]).map(n=>typeof n=="number"?n:parseInt(n,10)):t}function ux(r,e,t,o=!1){let n=r[e];return n&&n.list&&n.list.s?n.list.s.map(s=>F1(s,o)):t}function cx(r,e,t){let o=r[e];return o&&o.list&&o.list.shape?o.list.shape.map(n=>O1(n)):t}function px(r,e,t){let o=r[e];return o&&o.list&&o.list.b?o.list.b:t}var xk=class{constructor(e,t,o){this.node=e,this.tensorMap=t,this.context=o,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,s)=>(n[s]=this.getAttr(s),n),{}))}getInput(e){return hr(e,this.tensorMap,this.context)}getAttr(e,t){let o=this.node.rawAttrs[e];if(o.tensor!=null)return hr(e,this.tensorMap,this.context);if(o.i!=null||o.f!=null)return nx(this.node.rawAttrs,e,t);if(o.s!=null)return rx(this.node.rawAttrs,e,t);if(o.b!=null)return ox(this.node.rawAttrs,e,t);if(o.shape!=null)return ax(this.node.rawAttrs,e,t);if(o.type!=null)return sx(this.node.rawAttrs,e,t);if(o.list!=null){if(o.list.i!=null||o.list.f!=null)return lx(this.node.rawAttrs,e,t);if(o.list.s!=null)return ux(this.node.rawAttrs,e,t);if(o.list.shape!=null)return cx(this.node.rawAttrs,e,t);if(o.list.b!=null)return px(this.node.rawAttrs,e,t);if(o.list.type!=null)return ix(this.node.rawAttrs,e,t)}return t}};var P1=(r,e,t)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[Q(C("a",r,e,t),C("b",r,e,t))];case"AddN":return[t_(C("tensors",r,e,t))];case"FloorMod":case"Mod":return[Um(C("a",r,e,t),C("b",r,e,t))];case"Mul":return[O(C("a",r,e,t),C("b",r,e,t))];case"RealDiv":case"Div":return[de(C("a",r,e,t),C("b",r,e,t))];case"DivNoNan":return[Pm(C("a",r,e,t),C("b",r,e,t))];case"FloorDiv":return[bu(C("a",r,e,t),C("b",r,e,t))];case"Sub":return[ue(C("a",r,e,t),C("b",r,e,t))];case"Minimum":return[Ts(C("a",r,e,t),C("b",r,e,t))];case"Maximum":return[qr(C("a",r,e,t),C("b",r,e,t))];case"Pow":return[Rr(C("a",r,e,t),C("b",r,e,t))];case"SquaredDifference":return[Bu(C("a",r,e,t),C("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var M1=(r,e,t)=>{switch(r.op){case"Abs":case"ComplexAbs":return[Tt(C("x",r,e,t))];case"Acos":return[vm(C("x",r,e,t))];case"Acosh":return[Cm(C("x",r,e,t))];case"Asin":return[Nm(C("x",r,e,t))];case"Asinh":return[Sm(C("x",r,e,t))];case"Atan":return[Tm(C("x",r,e,t))];case"Atan2":return[Em(C("x",r,e,t),C("y",r,e,t))];case"Atanh":return[Am(C("x",r,e,t))];case"Ceil":return[$m(C("x",r,e,t))];case"Complex":return[bo(C("real",r,e,t),C("imag",r,e,t))];case"Cos":return[Ia(C("x",r,e,t))];case"Cosh":return[Iu(C("x",r,e,t))];case"Elu":return[Is(C("x",r,e,t))];case"Erf":return[Mm(C("x",r,e,t))];case"Exp":return[Xt(C("x",r,e,t))];case"Expm1":return[Lm(C("x",r,e,t))];case"Floor":return[Ns(C("x",r,e,t))];case"Log":return[ir(C("x",r,e,t))];case"Log1p":return[Eu(C("x",r,e,t))];case"Imag":return[Su(C("x",r,e,t))];case"Neg":return[je(C("x",r,e,t))];case"Reciprocal":return[Hm(C("x",r,e,t))];case"Real":return[al(C("x",r,e,t))];case"Relu":return[Ir(C("x",r,e,t))];case"Round":return[qm(C("x",r,e,t))];case"Selu":return[Pu(C("x",r,e,t))];case"Sigmoid":return[Ur(C("x",r,e,t))];case"Sin":return[Mu(C("x",r,e,t))];case"Sign":return[Xm(C("x",r,e,t))];case"Sinh":return[Lu(C("x",r,e,t))];case"Softplus":return[Ss(C("x",r,e,t))];case"Sqrt":return[xt(C("x",r,e,t))];case"Square":return[Pe(C("x",r,e,t))];case"Tanh":return[Mi(C("x",r,e,t))];case"Tan":return[Qm(C("x",r,e,t))];case"ClipByValue":return[nr(C("x",r,e,t),C("clipValueMin",r,e,t),C("clipValueMax",r,e,t))];case"Relu6":return[Fu(C("x",r,e,t))];case"Rsqrt":return[Ou(hr(r.inputNames[0],e,t))];case"Prod":return[$u(C("x",r,e,t),C("axes",r,e,t))];case"LeakyRelu":return[Sa(C("x",r,e,t),C("alpha",r,e,t))];case"Prelu":return[Da(C("x",r,e,t),C("alpha",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Co(r,e,t=""){y.assert(C6(r,e),()=>t+` Shapes ${r} and ${e} must match`)}function C6(r,e){if(r.length!==e.length)return!1;for(let t=0;t{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let o=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Co(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),o.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(o.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);o.tensor=t,At(t),o.written=!0,this.tensors[e]=o}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((o,n)=>this.write(o,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${o} vs. ${this.maxSize})`);this.writeMany(e,ur(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let o=0,n=e.map(l=>(o+=l,o));if(o!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${o} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let f of Object.keys(qn))u[f]=qn[f];for(let f of Object.keys(t))u[f]=t[f];let c=s.config;c.customObjects=u;let p=Object.assign({},qn);for(let f of Object.keys(t))qn[f]=t[f];aw(s.config);let m=l(i,s.config,t,n);return qn=Object.assign({},p),m}else{let u=Object.assign({},qn);for(let p of Object.keys(t))qn[p]=t[p];let c=new i(s.config);return qn=Object.assign({},u),c}}}function cH(r,e){return re?1:0}function pf(r,e){return-1*cH(r,e)}function Kn(r){if(r==null)return r;let e=[];for(let t of r)e.indexOf(t)===-1&&e.push(t);return e}function wT(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let e in r)if(r.hasOwnProperty(e))return!1;return!0}function Gi(r,e,t){if(t!=null&&r.indexOf(t)<0)throw new z(`${t} is not a valid ${e}. Valid values are ${r} or null/undefined.`)}function Ig(r,e,t=0,o=Infinity){return Lo(t>=0),Lo(o>=t),Array.isArray(r)&&r.length>=t&&r.length<=o&&r.every(n=>typeof n===e)}function Wt(r,e){Array.isArray(r)?(y.assert(r.length>0,()=>`${e} is unexpectedly an empty array.`),r.forEach((t,o)=>Wt(t,`element ${o+1} of ${e}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${e} to be a positive integer, but got ${kT(r)}.`)}function kT(r){return r===null?"null":Array.isArray(r)?"["+r.map(e=>kT(e)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function vT(r,e){let t=y.now(),o;return(...s)=>{let a=y.now();return a-txt(ye(O(r,r),e,!0)))}var up=class extends J.Serializable{getConfig(){return{}}},mf=class extends up{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return B(()=>{let t=lw(e,this.axis),o=nr(t,0,this.maxValue);return O(e,de(o,Q(Yt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};mf.className="MaxNorm";J.registerClass(mf);var ff=class extends up{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return B(()=>de(e,Q(Yt(),lw(e,this.axis))))}getConfig(){return{axis:this.axis}}};ff.className="UnitNorm";J.registerClass(ff);var df=class extends up{apply(e){return Ir(e)}};df.className="NonNeg";J.registerClass(df);var hf=class extends up{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return B(()=>{let t=lw(e,this.axis),o=Q(O(this.rate,nr(t,this.minValue,this.maxValue)),O(1-this.rate,t));return O(e,de(o,Q(Yt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};hf.className="MinMaxNorm";J.registerClass(hf);var CT={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Ot(r){return lp(r)}function IT(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"constraint")}function Pt(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in CT?CT[r]:r,config:{}};return IT(t)}else return r instanceof up?r:IT(r)}function pH(r){return new mf(r)}function mH(r){return new ff(r)}function fH(){return new df}function dH(r){return new hf(r)}var dw={};et(dw,{constant:()=>kH,glorotNormal:()=>EH,glorotUniform:()=>TH,heNormal:()=>AH,heUniform:()=>DH,identity:()=>NH,leCunNormal:()=>$H,leCunUniform:()=>RH,ones:()=>wH,orthogonal:()=>FH,randomNormal:()=>CH,randomUniform:()=>vH,truncatedNormal:()=>IH,varianceScaling:()=>SH,zeros:()=>_H});var NT=["channelsFirst","channelsLast"],ST=["nearest","bilinear"],TT=["valid","same","causal"],ET=["max","avg"],AT=["sum","mul","concat","ave"];var cp=new Map;function Rt(r){Gi(NT,"DataFormat",r)}function DT(r){Gi(ST,"InterpolationFormat",r)}function Xr(r){Gi(TT,"PaddingMode",r)}function cw(r){Gi(ET,"PoolMode",r)}var gf=[],$T="/";function Fs(r,e){gf.push(r);try{let t=e();return gf.pop(),t}catch(t){throw gf.pop(),t}}function hH(){return gf.length===0?"":gf.join($T)+$T}function Sg(r){if(!RT(r))throw new Error("Not a valid tensor name: '"+r+"'");return hH()+r}function Tg(r){if(!RT(r))throw new Error("Not a valid tensor name: '"+r+"'");cp.has(r)||cp.set(r,0);let e=cp.get(r);if(cp.set(r,cp.get(r)+1),e>0){let t=`${r}_${e}`;return cp.set(t,1),t}else return r}var gH=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function RT(r){return!!r.match(gH)}function FT(r){return r===parseInt(r.toString(),10)}function Xn(r,e,t){e==null&&(e=0),t==null&&(t=r.length);let o=1;for(let n=e;n{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let t=La(r,1);return Eg(t,[1,e,1])})}function MT(r){let e=[Xn(r.shape)];return r.reshape(e)}function LT(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let e=[r.shape[0],Xn(r.shape,1)];return r.reshape(e)}function za(r,e,t){return B(()=>{switch(r.rank){case 1:return Qm(r,e,t);case 2:return hg(r,[e,0],[t,r.shape[1]]);case 3:return ef(r,[e,0,0],[t,r.shape[1],r.shape[2]]);case 4:return Qc(r,[e,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Fe(r,[e,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Fe(r,[e,0,0,0,0,0],[t,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function pw(r,e,t){return B(()=>{switch(r.rank){case 1:return Qm(r,e,t);case 2:return hg(r,[0,e],[r.shape[0],t]);case 3:return ef(r,[0,0,e],[r.shape[0],r.shape[1],t]);case 4:return Qc(r,[0,0,0,e],[r.shape[0],r.shape[1],r.shape[2],t]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function xf(r,e,t,o){return B(()=>{switch(r.rank){case 1:return Qm(r,e,t);case 2:switch(o){case 1:return za(r,e,t);case 2:return pw(r,e,t);default:throw new z(`The axis is not within the rank of the tensor ${o}`)}case 3:switch(o){case 1:return za(r,e,t);case 2:return ef(r,[0,e,0],[r.shape[0],t,r.shape[2]]);case 3:return pw(r,e,t);default:throw new z(`The axis is not within the rank of the tensor ${o}`)}case 4:switch(o){case 1:return za(r,e,t);case 2:return Qc(r,[0,e,0,0],[r.shape[0],t,r.shape[2],r.shape[3]]);case 3:return Qc(r,[0,0,e,0],[r.shape[0],r.shape[1],t,r.shape[3]]);case 4:return pw(r,e,t);default:throw new z(`The axis is not within the rank of the tensor ${o}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function pp(r,e=-1){let t;return e<0&&(t=r[0].rank,t!==0?e=t:e=0),e===r[0].rank&&(e=-1),Je(r,e)}function mw(r,e){switch(r.rank){case 1:return d_([r,e]);case 2:return h_([r,e],0);case 3:return g_([r,e],0);case 4:return x_([r,e],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Eg(r,e){if(Array.isArray(e)||(e=[e]),r.rank!==e.length)throw new z(`The length of input n (${e.length}) does not match the number of dimensions in input x (${r.rank})`);return Po(r,e)}function mp(r,e=0,t=1,o,n){return dg(r,e,t,o,n)}function Yn(r,e,t,o){if(r.rank<2||e.rank<2)throw new Ne(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${e.shape}`);if(e.rank>=3){let n=r.shape.slice(-1)[0],s=e.shape.slice(-2)[0];if(n!==s)throw new Ne(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${e.shape}`)}if(r.rank===2&&e.rank===2){let n=!1,s=!1;return Wn.matMul({a:r,b:e,transposeA:n,transposeB:s,bias:o?fw(r.rank,o,Kr()):null,activation:t})}else{let n=r.shape.slice(),s=n.pop();r=r.reshape([-1,s]);let a=e.shape.slice(),i=a.pop(),l=a.pop(),u=[...a,i],c=Array.from({length:e.rank},(d,h)=>h===0?e.rank-2:h<=e.rank-2?h-1:h);e=e.transpose(c).reshape([l,-1]);let p=[...n,...u],m=!1,f=!1;return Wn.matMul({a:r,b:e,transposeA:m,transposeB:f,bias:o?fw(r.rank,o,Kr()):null,activation:t}).reshape(p)}}function Ag(r,e,t){return B(()=>(Array.isArray(e)?e=Vt(e,"int32"):e=e.toInt(),Bn(r,e,t)))}function Xu(r){return O(r,r)}function fw(r,e,t){let o=e.shape;if(e.rank!==1&&e.rank!==r)throw new z(`Unexpected bias dimensions: ${e.rank}; expected it to be 1 or ${r}`);if(r===5){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1,1]):e.reshape([1,o[3],o[0],o[1],o[2]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===4){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1,1]):e.reshape([1,o[2],o[0],o[1]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,1,o[0]]):e.reshape([1].concat(o))}else if(r===3){if(t==="channelsFirst")return o.length===1?e.reshape([1,o[0],1]):e.reshape([1,o[1],o[0]]);if(t==="channelsLast")return o.length===1?e.reshape([1,1,o[0]]):e.reshape([1].concat(o))}else if(r<3)return e;throw new z(`Unsupported input rank by biasAdd: ${e.rank}`)}function ro(r,e,t){return B(()=>(t==null&&(t=Kr()),Rt(t),r.add(fw(r.rank,e,t))))}function zT(r,e=1){if(e!==1)throw new Ne(`Support for alpha values other than 1 (${e}) is not implemented yet.`);return Ss(r)}function BT(r){return B(()=>de(r,Tt(r).add(1)))}function Dg(r,e,t,o){return B(()=>j_(r,e,t,o))}function VT(r){return B(()=>{let e=Q(.5,O(.2,r));return nr(e,0,1)})}function cl(r,e,t=!1){return t?r():e()}var GT=["fanIn","fanOut","fanAvg"],WT=["normal","uniform","truncatedNormal"];function xH(r){Gi(GT,"FanMode",r)}function yH(r){Gi(WT,"Distribution",r)}var oo=class extends J.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},yf=class extends oo{apply(e,t){return gt(e,t)}};yf.className="Zeros";J.registerClass(yf);var Yu=class extends oo{apply(e,t){return Cr(e,t)}};Yu.className="Ones";J.registerClass(Yu);var bf=class extends oo{constructor(e){super();if(typeof e!="object")throw new z(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new z(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return B(()=>O(le(this.value),Cr(e,t)))}getConfig(){return{value:this.value}}};bf.className="Constant";J.registerClass(bf);var _f=class extends oo{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Ds(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_f.className="RandomUniform";J.registerClass(_f);var wf=class extends oo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`randomNormal does not support dType ${t}.`);return mp(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};wf.className="RandomNormal";J.registerClass(wf);var kf=class extends oo{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`truncatedNormal does not support dType ${t}.`);return Gu(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};kf.className="TruncatedNormal";J.registerClass(kf);var vf=class extends oo{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return B(()=>{if(e.length!==2||e[0]!==e[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return O(this.gain,Xc(e[0]))})}getConfig(){return{gain:this.gain}}};vf.className="Identity";J.registerClass(vf);function bH(r,e="channelsLast"){let t,o;if(Rt(e),r.length===2)t=r[0],o=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(e==="channelsFirst"){let n=Xn(r,2);t=r[1]*n,o=r[0]*n}else if(e==="channelsLast"){let n=Xn(r,0,r.length-2);t=r[r.length-2]*n,o=r[r.length-1]*n}}else{let n=Xn(r);t=Math.sqrt(n),o=Math.sqrt(n)}return[t,o]}var Mr=class extends oo{constructor(e){super();if(e.scale<0)throw new z(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,xH(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,yH(this.distribution),this.seed=e.seed}apply(e,t){let o=bH(e),n=o[0],s=o[1],a=this.scale;if(this.mode==="fanIn"?a/=Math.max(1,n):this.mode==="fanOut"?a/=Math.max(1,s):a/=Math.max(1,(n+s)/2),this.distribution==="normal"){let i=Math.sqrt(a);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Ne(`${this.getClassName()} does not support dType ${t}.`);return Gu(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*a);return Ds(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Mr.className="VarianceScaling";J.registerClass(Mr);var fp=class extends Mr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};fp.className="GlorotUniform";J.registerClass(fp);var dp=class extends Mr{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};dp.className="GlorotNormal";J.registerClass(dp);var hp=class extends Mr{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};hp.className="HeNormal";J.registerClass(hp);var gp=class extends Mr{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};gp.className="HeUniform";J.registerClass(gp);var xp=class extends Mr{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};xp.className="LeCunNormal";J.registerClass(xp);var yp=class extends Mr{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Mr.className}};yp.className="LeCunNormal";J.registerClass(yp);var Cf=class extends oo{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Ne("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return B(()=>{if(e.length<2)throw new Ne("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let o=e[0]>e[1]?[e[1],e[0]]:e,n=mp(o,0,1,"float32"),s=Z_.gramSchmidt(n);return e[0]>e[1]&&(s=s.transpose()),O(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Cf.className="Orthogonal";J.registerClass(Cf);var UT={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function jT(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"initializer")}function It(r){return lp(r)}function dt(r){if(typeof r=="string"){let e=r in UT?UT[r]:r;if(e==="GlorotNormal")return new dp;if(e==="GlorotUniform")return new fp;if(e==="HeNormal")return new hp;if(e==="HeUniform")return new gp;if(e==="LeCunNormal")return new xp;if(e==="LeCunUniform")return new yp;{let t={};return t.className=e,t.config={},jT(t)}}else return r instanceof oo?r:jT(r)}function _H(){return new yf}function wH(){return new Yu}function kH(r){return new bf(r)}function vH(r){return new _f(r)}function CH(r){return new wf(r)}function IH(r){return new kf(r)}function NH(r){return new vf(r)}function SH(r){return new Mr(r)}function TH(r){return new fp(r)}function EH(r){return new dp(r)}function AH(r){return new hp(r)}function DH(r){return new gp(r)}function $H(r){return new xp(r)}function RH(r){return new yp(r)}function FH(r){return new Cf(r)}var Yw={};et(Yw,{Layer:()=>Me,RNN:()=>ao,RNNCell:()=>bl,activation:()=>Jq,add:()=>aK,alphaDropout:()=>UK,average:()=>lK,averagePooling1d:()=>Zw,averagePooling2d:()=>Jw,averagePooling3d:()=>Qw,avgPool1d:()=>xK,avgPool2d:()=>bK,avgPool3d:()=>wK,avgPooling1d:()=>yK,avgPooling2d:()=>_K,avgPooling3d:()=>kK,batchNormalization:()=>dK,bidirectional:()=>PK,concatenate:()=>uK,conv1d:()=>Uq,conv2d:()=>jq,conv2dTranspose:()=>Hq,conv3d:()=>qq,convLstm2d:()=>$K,convLstm2dCell:()=>RK,cropping2D:()=>Xq,dense:()=>Qq,depthwiseConv2d:()=>Zq,dot:()=>fK,dropout:()=>eK,elu:()=>Lq,embedding:()=>iK,flatten:()=>rK,gaussianDropout:()=>WK,gaussianNoise:()=>GK,globalAveragePooling1d:()=>vK,globalAveragePooling2d:()=>CK,globalMaxPool1d:()=>LK,globalMaxPool2d:()=>zK,globalMaxPooling1d:()=>N1,globalMaxPooling2d:()=>S1,gru:()=>NK,gruCell:()=>SK,input:()=>Qg,inputLayer:()=>Mq,layerNormalization:()=>hK,leakyReLU:()=>Bq,lstm:()=>TK,lstmCell:()=>EK,masking:()=>jK,maxPool1d:()=>BK,maxPool2d:()=>VK,maxPooling1d:()=>T1,maxPooling2d:()=>E1,maxPooling3d:()=>IK,maximum:()=>cK,minimum:()=>pK,multiply:()=>mK,permute:()=>sK,prelu:()=>Vq,reLU:()=>zq,repeatVector:()=>oK,reshape:()=>nK,rnn:()=>FK,separableConv2d:()=>Kq,simpleRNN:()=>AK,simpleRNNCell:()=>DK,softmax:()=>Gq,spatialDropout1d:()=>tK,stackedRNNCells:()=>OK,thresholdedReLU:()=>Wq,timeDistributed:()=>MK,upSampling2d:()=>Yq,zeroPadding2d:()=>gK});var OH=0;function $g(){return OH++}var Rg={};function pl(r=""){return r in Rg||(Rg[r]=0),Rg[r]+=1,r+Rg[r].toString()}function Fg(r){return Array.isArray(r)&&Array.isArray(r[0])}function bp(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Oe(r){let e;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);e=r[0]}else e=r;return e}function Qe(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function _p(r){let e=0;for(let t of r)t.shape.length===0?e+=1:e+=t.shape.reduce((o,n)=>o*n);return e}var HT="Variable",If=class{constructor(e,t="float32",o=HT,n=!0,s=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=$g(),o=o==null?HT:o,this.originalName=Sg(o),this.name=Tg(this.originalName),this.trainable_=n,this.constraint=s,this.val=V_(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),PH(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function PH(r,e){if(r.shape.toString()!==e.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(e.shape))}function Nf(r){return r.map(e=>e.read())}function wp(r){r.forEach(e=>{e[0].write(e[1])})}var Et=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Lr=class{constructor(e,t,o,n,s,a,i){this.dtype=e,this.shape=t,this.sourceLayer=o,this.inputs=n,this.callArgs=s,this.outputTensorIndex=i,this.id=$g(),a!=null&&(this.originalName=Sg(a),this.name=Tg(this.originalName)),this.rank=t.length}},MH=0,ml=class{constructor(e,t){this.callArgs=t,this.id=MH++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let o of e.inboundLayers)o!=null&&o.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},LH=0,Me=class extends J.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=LH++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let o=this.getClassName();t=Hn(o)+"_"+pl(o)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let o;if(e.batchInputShape!=null)o=e.batchInputShape;else if(e.inputShape!=null){let s=null;e.batchSize!=null&&(s=e.batchSize),o=[s].concat(e.inputShape)}this.batchInputShape=o;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Or(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new z(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return dr(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return dr(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new ko(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new ko(`Layer ${this.name} is not connected, no input to return.`);return dr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new ko(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new ko(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return dr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new z(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let o=0;os.maxNDim)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${a}`);if(s.minNDim!=null&&a=0?i[u]:i[i.length+u];if(c!=null&&[c,null].indexOf(p)===-1)throw new z(`Input ${o} is incompatible with layer ${this.name}: expected axis ${u} of input shape to have value ${c} but got shape ${i}.`)}}if(s.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let a=[];for(let i of yt(e))a.push(i.shape);this.build(dr(a)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(e),s){let a=this.call(e,t),i=yt(a),l=[];for(let u of i)o.indexOf(u)!==-1&&(u=u.clone()),l.push(u);if(a=dr(l),this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}else{let a=zH(e),i=this.computeOutputShape(a),l,u=BH(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?a[0]:a),i!=null&&i.length>0&&Array.isArray(i[0])?l=i.map((c,p)=>new Lr(u,c,this,yt(e),t,this.name,p)):l=new Lr(u,i,this,yt(e),t,this.name),this.addInboundNode(e,l,null,null,a,i,t),this._refCount++,this.activityRegularizer!=null)throw new Ne("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return l}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((o,n)=>{o!=null&&e[n]!=null&&e[n]!==o&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new ko(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let o=JSON.stringify(t.outputShapes);e.indexOf(o)===-1&&e.push(o)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new ko(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Or(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return _p(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Nf(e?this.trainableWeights:this.weights)}setWeights(e){B(()=>{let t=this.weights;if(t.length!==e.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let o=[],n=Nf(t);for(let s=0;ss.apply(u.read())),a==null&&(a=!0),a?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(o=>{if(o!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,o,n,s,a,i=null){let l=yt(e);t=yt(t),o=yt(o),n=yt(n),s=bp(s),a=bp(a);let u=[],c=[],p=[];for(let m of l)u.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ml({outboundLayer:this,inboundLayers:u,nodeIndices:c,tensorIndices:p,inputTensors:l,outputTensors:t,inputMasks:o,outputMasks:n,inputShapes:s,outputShapes:a},i);for(let m=0;me.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount==0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function zH(r){r=yt(r);let e=[];for(let t of r)e.push(t.shape);return dr(e)}function BH(r){return"float32"}function hw(r,e,t){if((e==null||t!=null&&t>0)&&(e=r.sourceLayer,t=r.nodeIndex),e.inboundNodes.length===0)return[r];{let o=e.inboundNodes[t];if(o.inboundLayers.length===0)return o.inputTensors;{let n=[];for(let s=0;s0){let n=await Promise.all(e);for(let s=0;sQ(this.totals[n],O(s,o)));this.totals[n]=i,a!=null&&a.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let o of this.params.metrics)this.totals[o]!=null&&(typeof this.totals[o]=="number"?t[o]=this.totals[o]/this.seen:B(()=>{let n=O(de(1,this.seen),this.totals[o]);t[o]=n,this.totals[o].dispose(),Dt(t[o])}))}},Lg=class extends fl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let o in t)this.history[o]==null&&(this.history[o]=[]),this.history[o].push(t[o])}async syncData(){let e=[],t=[],o=[];for(let s in this.history){let a=this.history[s];for(let i=0;inew zg(o,e))}var no=class{constructor(){}static registerCallbackConstructor(e,t){y.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),no.checkForDuplicate(t),no.constructors[e]==null&&(no.constructors[e]=[]),no.constructors[e].push(t)}static checkForDuplicate(e){for(let t in no.constructors)no.constructors[+t].forEach(n=>{if(n===e)throw new z("Duplicate callback constructor.")})}static clear(){no.constructors={}}static createCallbacks(e){let t=[];for(let o in no.constructors){let n=+o;e>=n&&t.push(...no.constructors[n])}return t.map(o=>new o)}};no.constructors={};function Vg(r,e,t,o,n,s,a,i,l){let u=new Lg,c=[new KT,...no.createCallbacks(e)];r!=null&&c.push(...r),c.push(u);let p=new Mg(c);return p.setParams({epochs:t,initialEpoch:o,samples:n,steps:s,batchSize:a,verbose:e,doValidation:i,metrics:l}),{callbackList:p,history:u}}function Yr(r,e={},t=!1){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"layer",t)}function Sf(r,e){return B(()=>{r.dtype!=="float32"&&(r=r.asType("float32"));let t=ye(Xu(r),e,!0),o=Na(t.shape,Yt()),n=xt(qr(t,o));return de(r,n)})}function ji(r,e){return B(()=>ht(Xu(ue(e,r)),-1))}function kp(r,e){return B(()=>ht(Tt(ue(e,r)),-1))}function dl(r,e){return B(()=>{let t=ue(r,e),o=nr(Tt(r),Yt(),Number.MAX_VALUE),n=Tt(de(t,o));return O(100,ht(n,-1))})}function GH(r,e){return B(()=>{let t=nr(e,Yt(),Number.MAX_VALUE),o=ir(Q(1,t)),n=nr(r,Yt(),Number.MAX_VALUE),s=ir(Q(1,n));return ht(Xu(ue(o,s)),-1)})}function WH(r,e){return B(()=>{let t=qr(0,ue(1,O(r,e)));return ht(Xu(t),-1)})}function UH(r,e){return B(()=>{let t=qr(0,ue(1,O(r,e)));return ht(t,-1)})}function jH(r,e){return B(()=>{let t=ye(O(r,e),-1),o=ar(O(ue(1,r),e),-1);return qr(0,Q(1,ue(o,t)))})}function HH(r,e){return B(()=>{let t=Math.log(2),o=ue(e,r),n=ue(Q(o,Es(O(-2,o))),t);return ht(n,-1)})}function Zu(r,e,t=!1){return B(()=>{if(t)e=$a(e);else{let o=ye(e,e.shape.length-1,!0);e=de(e,o)}return e=nr(e,Yt(),1-Yt()),je(ye(O(r.toFloat(),ir(e)),e.shape.length-1))})}function vp(r,e,t=!1){return B(()=>{let o=Ts(MT(r)).toInt();e=nr(e,Yt(),1-Yt());let n=e.shape,s=Is(o,n[n.length-1]).reshape(n);return Zu(s,e,t)})}function qH(r,e){if(!y.arraysEqual(r.shape,e.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(e.shape)}`);return B(()=>{let t=e.relu(),o=e.abs().neg();return t.sub(e.mul(r)).add(o.exp().log1p())})}function Cp(r,e){return B(()=>{let t;return t=nr(e,Yt(),1-Yt()),t=ir(de(t,ue(1,t))),ht(qH(r,t),-1)})}function KH(r,e){return B(()=>{let t=nr(r,Yt(),1),o=nr(e,Yt(),1);return ye(O(r,ir(de(t,o))),-1)})}function XH(r,e){return B(()=>{let t=ir(Q(Yt(),e));return ht(ue(e,O(r,t)),-1)})}function Tf(r,e){return B(()=>{let t=Sf(r,-1),o=Sf(e,-1),n=O(t,o);return je(ye(n,-1))})}var Ef={meanSquaredError:ji,meanAbsoluteError:kp,meanAbsolutePercentageError:dl,meanSquaredLogarithmicError:GH,squaredHinge:WH,hinge:UH,categoricalHinge:jH,logcosh:HH,categoricalCrossentropy:Zu,sparseCategoricalCrossentropy:vp,binaryCrossentropy:Cp,kullbackLeiblerDivergence:KH,poisson:XH,cosineProximity:Tf};function Gg(r){if(typeof r=="string"){if(r in Ef)return Ef[r];let e=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(e=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(e)}else return r}function Af(r,e){return B(()=>{let t=O(.5,er(e)),o=Ma(Qt(e,t),r.dtype);return ht(_o(r,o),-1)})}function Df(r,e){return B(()=>Ma(_o(sl(r,-1),sl(e,-1)),"float32"))}function XT(r,e){return B(()=>fr(r.equal(1),e.equal(1)).sum().cast("float32"))}function YH(r,e){return B(()=>fr(r.equal(1),e.equal(0)).sum().cast("float32"))}function ZH(r,e){return B(()=>fr(r.equal(0),e.equal(1)).sum().cast("float32"))}function gw(r,e){return B(()=>{let t=XT(r,e),o=ZH(r,e),n=t.add(o);return $t(Qt(n,0),t.div(n),0).cast("float32")})}function YT(r,e){return B(()=>{let t=XT(r,e),o=YH(r,e),n=t.add(o);return $t(Qt(n,0),t.div(n),0).cast("float32")})}function Wg(r,e){return Cp(r,e)}function Ug(r,e){return r.rank===e.rank&&(r=r.squeeze([r.rank-1])),e=e.argMax(-1),e.dtype!==r.dtype&&(e=e.asType(r.dtype)),_o(r,e).asType("float32")}var JH=ji,QH=ji,eq=kp,tq=kp,rq=dl,oq=dl,$f=Zu,nq=Tf,xw=vp,jg={binaryAccuracy:Af,categoricalAccuracy:Df,precision:gw,categoricalCrossentropy:$f,sparseCategoricalCrossentropy:xw,mse:JH,MSE:QH,mae:eq,MAE:tq,mape:rq,MAPE:oq,cosine:nq};function ZT(r){if(typeof r=="string"&&r in jg)return jg[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Rf(r){if(Lo(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let e;for(let t of Object.keys(Ef))if(Ef[t]===r){e=t;break}if(e!==void 0)return e;for(let t of Object.keys(jg))if(jg[t]===r){e=t;break}return e!==void 0?e:r.name}}function JT(r){let e={Adagrad:()=>ul.adagrad(.01),Adadelta:()=>ul.adadelta(1,.95,Yt()),Adam:()=>ul.adam(.001,.9,.999,Yt()),Adamax:()=>ul.adamax(.002,.9,.999,Yt(),0),RMSProp:()=>ul.rmsprop(.001,.9,0,Yt()),SGD:()=>ul.sgd(.01)};if(e.adagrad=e.Adagrad,e.adadelta=e.Adadelta,e.adam=e.Adam,e.adamax=e.Adamax,e.rmsprop=e.RMSProp,e.sgd=e.SGD,r in e)return e[r]();throw new z(`Unknown Optimizer ${r}`)}var QT=1*1024*1024;function bw(r,e,t=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!yw(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(t){let o=JSON.stringify(r);o.length>QT&&console.warn(`User-defined metadata of model "${e}" is too large in size (length=${o.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${QT}.`)}}function yw(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let e=Object.keys(r);for(let t of e)if(typeof t!="string"||!yw(r[t]))return!1;return!0}else if(Array.isArray(r)){for(let e of r)if(!yw(e))return!1;return!0}else return!1;else{let e=typeof r;return e==="string"||e==="number"||e==="boolean"}}function e1(r,e,t,o=console.log){let n=iq(r),s=["Layer (type)","Output shape","Param #"];n?(e=e||65,t=t||[.45,.85,1]):(e=e||98,t=t||[.33,.55,.67,1]),t[t.length-1]<=1&&(t=t.map(c=>Math.floor(e*c)));let a;if(!n){s.push("Receives inputs"),a=[];for(let c in r.nodesByDepth)a.push(...r.nodesByDepth[c])}o("_".repeat(e)),Hg(s,t,o),o("=".repeat(e));let i=r.layers;for(let c=0;c1||n.length===1&&n[0].inboundLayers.length>1){e=!1;break}o.push(...n)}if(e)for(let n of r.layers){let s=!1;for(let a of n.inboundNodes)if(o.indexOf(a)!==-1)if(s){e=!1;break}else s=!0;if(!e)break}return e}function Hg(r,e,t=console.log){let o="";for(let n=0;n0&&(o=o.slice(0,o.length-1)+" "),o+=r[n],o=o.slice(0,e[n]),o+=" ".repeat(e[n]-o.length);t(o)}function aq(r,e,t){let o;try{o=JSON.stringify(r.outputShape)}catch(i){o="multiple"}let n=r.name,s=r.getClassName(),a=[`${n} (${s})`,o,r.countParams().toString()];Hg(a,e,t)}function lq(r,e,t,o){let n;try{n=JSON.stringify(r.outputShape)}catch(c){n="multiple"}let s=[];for(let c of r.inboundNodes)if(!(t!=null&&t.length>0&&t.indexOf(c)===-1))for(let p=0;pd.name),l=[],u=e.names();for(let d of i)u.indexOf(d)!==-1?l.push(e.getValue(d)):l.push(null);o!=null&&(o.maxNumTensors=-Infinity,o.minNumTensors=Infinity);let c=i.join(",")+"|"+e.names().join(","),p,m;if(_w[c]==null){let d=cq(a,e);p=d.sorted,m=d.recipientCounts,_w[c]=p,r1[c]=m}p=_w[c],m={},n||Object.assign(m,r1[c]);let f=new Ps(e);for(let d=0;do.maxNumTensors&&(o.maxNumTensors=M),M0,()=>"Expected at least one fetch, got none");let t=[],o={};if(r.length===1){let n=o1(r[0],e);t=n.sorted,o=n.recipientMap}else{let n=new Set;for(let s of r){let{sorted:a,recipientMap:i}=o1(s,e);for(let l of a)n.has(l.name)||(t.push(l),n.add(l.name));for(let l in i)o[l]==null&&(o[l]=new Set),i[l].forEach(u=>o[l].add(u))}}return{sorted:t,recipientCounts:mq(o)}}function mq(r){let e={};for(let t in r)e[t]=r[t].size;return e}function o1(r,e){let t=new Set,o=[],n={};for(let i of e.names())t.add(i);let s=[],a=[];for(s.push(r);s.length>0;){let i=s[s.length-1];if(t.has(i.name)){s.pop();continue}let l=a[a.length-1]===s.length-1;if(i.inputs.length===0||l)s.pop(),o.push(i),t.add(i.name),l&&a.pop();else{a.push(s.length-1);for(let u of i.inputs)n[u.name]==null&&(n[u.name]=new Set),n[u.name].add(i.name),!t.has(u.name)&&s.push(u)}}return{sorted:o,recipientMap:n}}function pq(r){let e;if(r.sourceLayer.inboundNodes.length===1)e=r.sourceLayer.output;else{let t=null;for(let o=0;ob.name)}`);Kn(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let _=b.sourceLayer,w=b.nodeIndex,v=b.tensorIndex;this.outputLayers.push(_),this.outputLayersNodeIndices.push(w),this.outputLayersTensorIndices.push(v)}for(let b of this.inputs){let _=b.sourceLayer,w=b.nodeIndex,v=b.tensorIndex;Lo(w===0,"input layer has >1 nodes"),Lo(v===0,"input layer has >1 tensors"),this.inputLayers.push(_),this.inputLayersNodeIndices.push(w),this.inputLayersTensorIndices.push(v)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let t={},o={},n={},s={},a={},i=[],l=(b,_,w,v,$,A)=>{(v==null||$==null||A==null)&&(v=b.sourceLayer,$=b.nodeIndex,A=b.tensorIndex);let R=v.inboundNodes[$];if(w.indexOf(R)!==-1)throw new Or(`The tensor ${b.name} at layer "${v.name}" is part of a cycle.`);if(_.indexOf(R)!==-1)return;this.containerNodes.add(zo.nodeKey(v,$)),v.id in a||(a[v.id]=Object.keys(a).length),w.indexOf(R)===-1&&w.push(R);let M=R.inboundLayers.length;for(let V=0;V=0;)w.splice(w.indexOf(R),1);i.push(R)},u=[],c=[];for(let b of this.outputs)l(b,u,c);let p=i.slice().reverse();for(let b of p){o[b.id]=b,b.id in t||(t[b.id]=0);let _=t[b.id],w=n[b.outboundLayer.id]==null?0:n[b.outboundLayer.id];_=Math.max(_,w),n[b.outboundLayer.id]=_,s[b.outboundLayer.id]=b.outboundLayer,t[b.id]=_;for(let v=0;vparseInt(b,10)).sort(pf);this.layers=[];for(let b of d){let _=f[b];_.sort((w,v)=>{let $=a[w.id],A=a[v.id];return $A?1:0});for(let w of _)w instanceof zo&&this.internalContainerRefs.push(w),this.layers.push(w)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(pf);let h=this.inputs.slice(),g=[];for(let b of d)for(let _ of m[b]){let w=_.outboundLayer;if(w!=null){for(let v of _.inputTensors)if(h.indexOf(v)===-1)throw new Or(`Graph disconnected: cannot obtain value for tensor ${v} at layer "${w.name}". The following previous layers were accessed without issue: ${g}`);for(let v of _.outputTensors)h.push(v);g.push(w.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let _=x.filter(w=>w===b).length;if(_!==1)throw new Or(`The name "${b}" is used ${_} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ml({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount==0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(o=>o.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.layers)t.push(...o.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let o={},n=0;for(let a of this.layers)for(let i of a.weights){if(o[i.originalName]!=null)throw new z(`Duplicate weight name: ${i.originalName}`);o[i.originalName]=i,n++}let s=[];for(let a in e){let i=a;if(o[a]==null){let l=a.split("/");i=l.slice(0,-2).concat([l[l.length-1]]).join("/")}if(o[i]!=null)s.push([o[i],e[a]]);else if(t)throw new z(`Provided weight data has no target variable: ${a}`);delete o[i]}if(t){let a=[];for(let i in o)a.push(i);if(a.length>0)throw new z(`${a.length} of ${n} weights are not set: ${a}`)}wp(s)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${hl}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let o=qg(this.updatedConfig());return t?JSON.stringify(o):o}call(e,t){return B(()=>{e=yt(e);let o=new Ps;for(let n=0;n{e=yt(e);let o;return t==null?o=jn(null,e.length):o=yt(t),this.runInternalGraph(e,o)[1]})}computeOutputShape(e){let t=bp(e);if(t.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let o={};for(let i=0;iparseInt(i,10)).sort(pf);if(n.length>1)for(let i of n){let l=this.nodesByDepth[i];for(let u of l){let c=u.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(l,10)).sort(pf);for(let l of n){let u=this.nodesByDepth[l];for(let c of u){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in o&&d.push(o[h.id]);if(d.length===m.length){let h={},g,x,b,_;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[w,v]=d[0];h.mask==null&&(h.mask=v),b=yt(p.call(w,h)),_=yt(p.computeMask(w,v)),g=[w],x=[v]}else g=d.map(w=>w[0]),x=d.map(w=>w[1]),h.mask==null&&(h.mask=x),b=yt(p.call(g,h)),_=yt(p.computeMask(g,x));if(p.activityRegularizer)throw new Ne("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let w=0;w{let e=[];for(let t of this.layers)for(let o=0;o0){let h=[];for(let g=0;g0&&g.apply(dr(b),_)}function u(g){let x=g.name,b=Yr(g,t.customObjects!=null?t.customObjects:{});b.setFastWeightInitDuringBuild(n),s[x]=b,g.inboundNodes.forEach(w=>{if(!(w instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${w}`);i(b,w)})}let c=t.name,p=t.layers;for(let g of p)u(g);for(;!wT(a);)for(let g of p){let x=s[g.name];if(x.name in a){let b=a[x.name];delete a[x.name];for(let _ of b)l(x,_)}}let m=[],f=[],d=t.inputLayers;for(let g of d){let x=g[0],b=g[1],_=g[2];Lo(x in s);let v=s[x].inboundNodes[b].outputTensors;m.push(v[_])}let h=t.outputLayers;for(let g of h){let x=g[0],b=g[1],_=g[2];Lo(x in s);let v=s[x].inboundNodes[b].outputTensors;f.push(v[_])}return new e({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function fq(r,e,t){let o=e.length;if(r==null||Array.isArray(r)&&r.length===0)return e.map(n=>null);if(o===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&e[0]in r?[r[e[0]]]:[r];if(Array.isArray(r)){if(r.length!==o)throw new Error(`Provided ${t} is an array of ${r.length} element(s), but the model has ${o} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let n=[];return e.forEach(s=>{s in r?n.push(r[s]):n.push(null)}),n}else throw new Error(`The model has multiple (${o}) outputs, so ${t} must be either an array with ${o} elements or an object with ${e} keys. Provided ${t} not understood: ${JSON.stringify(r)}`)}function Kg(r,e){return fq(r,e,"classWeight")}async function Xg(r,e,t,o){if(e!=null||o!=null)throw new Error("Support sampleWeight is not implemented yet");if(t!=null){let n=B(()=>{if(r.shape.length===1)return r.clone();if(r.shape.length===2)if(r.shape[1]>1){let i=1;return r.argMax(i)}else{if(r.shape[1]===1)return r.reshape([r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await n.data());Te(n);let a=[];return s.forEach(i=>{if(t[i]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${i} exists in the data but not in classWeight`);a.push(t[i])}),Vt(a,"float32")}else return null}function n1(r,e){return O(r,e)}var dq=32;function i1(r,e){let t,o,n=e;t=n.xs,o=n.ys,y.assert(t!=null&&o!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${e}`);let s=s1("input",r.inputNames,t),a=s1("output",r.outputNames,o),i=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(a.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${a.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${r.inputNames[l]} has ${s[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${r.outputNames[l]} has ${a[l].shape[0]}; expected ${i} based on input ${r.inputNames[0]}.`);return{xs:s,ys:a}}function s1(r,e,t){if(t instanceof Ve)return[t];if(Array.isArray(t))return y.assert(t.length===e.length,()=>`Received an array of ${t.length} Tensors, but expected ${e.length} to match the ${r} keys ${e}.`),t;{let o=[];for(let n of e){if(t[n]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${n}'.`);o.push(t[n])}return o}}function hq(r){if(r.length===3)throw new Ne("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function l1(r,e,t){let o=t.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(t!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(t.epochs!=null&&t.epochs>0&&Number.isInteger(t.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${t.epochs}`),y.assert(!o||t.batchesPerEpoch>0&&Number.isInteger(t.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${t.batchesPerEpoch}`),y.assert(t.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let n=t.validationData!=null,s,a;if(n)if(a1(t.validationData))y.assert(t.validationBatches==null||t.validationBatches>0&&Number.isInteger(t.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${t.validationBatches}`);else{let g=hq(t.validationData);s=g.xs,a=g.ys}let i=r.makeTrainFunction(),l=r.getDedupedMetricsNames(),u;n?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let c=Bg(t.callbacks,t.yieldEvery),p=t.verbose==null?1:t.verbose,{callbackList:m,history:f}=Vg(c,p,t.epochs,null,null,gq(e,t),null,n,u);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=t.initialEpoch==null?0:t.initialEpoch,h=await e.iterator();for(;d=t.batchesPerEpoch:_.done){if(n){let w;a1(t.validationData)?w=yt(await r.evaluateDataset(t.validationData,{batches:t.validationBatches})):w=yt(r.evaluate(s,a,{batchSize:t.validationBatchSize==null?dq:t.validationBatchSize,verbose:0}));for(let v=0;v0)throw new Ne("Verbose mode is not implemented yet.");y.assert(!o||t.batches>0&&Number.isInteger(t.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(t.batches)}`);let a=xq(e)?e:await e.iterator(),i=0,l=0;for(;o?l{if(u.value){let{xs:c,ys:p}=i1(r,u.value),m=c.concat(p),f=B(()=>n(m));if(Te(m),l===0)for(let h=0;hQ(s[h],O(d,g))),l>0&&Te(x)}Te(f),i+=d,++l}return s}),u.done){o&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${t.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Ip(r,e,t){return r==null?[null]:Array.isArray(r)?r.map(o=>za(o,e,t-e)):za(r,e,t-e)}function Zg(r,e){return B(()=>r==null?null:Array.isArray(r)?r.map(t=>Zg(t,e)):Ag(r,e.dtype==="int32"?e:e.toInt()))}function Jg(r,e){let t=[],o=0,n=null;for(;o=r&&(n=r),t.push([o,n]),o=n;return t}async function yq(r,e,t,o,n,s,a,i,l,u,c,p,m,f,d){n==null&&(n=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(l!=null&&u!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(t,n,f,"steps_per_epoch"),x;g!=null&&(x=Pr(0,g)),a==null&&(a=1);let{callbackList:b,history:_}=Vg(i,a,s,m,g,f,n,h,p);b.setModel(r),r.history=_,await b.onTrainBegin(),r.stopTraining_=!1;for(let w=m;w{let V=A[R][0],G=A[R][1],W=za($,V,G-V);M.batch=R,M.size=G-V;let q=Zg(t,W),Z=e(q);for(let X=0;X0){if(d=!0,o.validationData.length===2)a=o.validationData[0],i=o.validationData[1];else throw o.validationData.length===3?new Ne("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${o.validationData} is invalid.`);let A=!0,R=await r.standardizeUserData(a,i,null,null,A,p);l=R[0],u=R[1],h=l.concat(u)}else if(o.validationSplit!=null&&o.validationSplit>0&&o.validationSplit<1){d=!0;let A=Math.floor(n[0].shape[0]*(1-o.validationSplit)),R=n[0].shape[0];l=Ip(n,A,R),n=Ip(n,0,A),u=Ip(s,A,R),s=Ip(s,0,A),h=l.concat(u)}else o.validationSteps!=null&&(d=!0);let g=n.concat(s).concat(c);r.checkTrainableWeightsConsistency();let x=r.makeTrainFunction(),b=r.getDedupedMetricsNames(),_,w;d?(r.makeTestFunction(),_=r.testFunction,w=b.slice().concat(b.map(A=>"val_"+A))):(_=null,h=[],w=b.slice());let v=Bg(o.callbacks,o.yieldEvery);return await yq(r,x,g,b,p,o.epochs,o.verbose,v,_,h,o.shuffle,w,o.initialEpoch,null,null)}finally{r.isTraining=!1,gl(n,e),gl(s,t),gl(l,a),gl(u,i),c!=null&&Te(c)}}function ww(r){let e=[];r instanceof Ve&&(r=[r]);for(let t=0;tt.push(n.id));else if(e!=null)for(let n in e){let s=e[n];t.push(s.id)}let o=[];if(r instanceof Ve)t.indexOf(r.id)===-1&&o.push(r);else if(Array.isArray(r))r.forEach(n=>{t.indexOf(n.id)===-1&&o.push(n)});else if(r!=null)for(let n in r){let s=r[n];t.indexOf(s.id)===-1&&o.push(s)}o.forEach(n=>{n.isDisposed||n.dispose()})}function bq(r){return r instanceof Ve}function kw(r){return Array.isArray(r)}function p1(r){return!bq(r)&&!kw(r)}function m1(r,e,t,o=!0,n=""){if(e==null||e.length===0){if(r!=null){let a=!1;if(kw(r)&&r.length>0)a=!0;else if(p1(r)){for(let i in r)if(r.hasOwnProperty(i)){a=!0;break}}else a=!0;if(a)throw new z(`Error when checking model ${n} expected no data, but got ${r}`)}return[]}if(r==null)return e.map(a=>null);let s;if(p1(r)){r=r,s=[];for(let a of e){if(r[a]==null)throw new z(`No data provided for "${a}". Need data for each key in: ${e}`);s.push(r[a])}}else if(kw(r)){if(r=r,r.length!==e.length)throw new z(`Error when checking model ${n}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${e.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,e.length>1)throw new z(`The model ${n} expects ${e.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=ww(s),t!=null)for(let a=0;a=0&&u!==c)throw new z(`Error when checking ${n}: expected ${e[a]} to have shape [${t[a]}], but got array with shape [${i.shape}].`)}}return s}function _q(r,e,t){let o=Kn(r.map(s=>s.shape[0]));o.sort();let n=Kn(e.map(s=>s.shape[0]));if(n.sort(),o.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(n.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(o.length>0&&n.length>0&&!y.arraysEqual(o,n))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${o[0]} input sample(s) and ${n[0]} target sample(s).`)}function wq(r,e,t){let o=[ji,Cp,Zu];for(let n=0;n1)throw new z(`The model expects ${e.length} ${n} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(t!=null)for(let a=0;a[]);let t;if(typeof r=="string"||typeof r=="function")t=[r];else if(Array.isArray(r)||typeof r=="object")t=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(t))return e.map(o=>t);{let o=[];for(let n of e){let s=t.hasOwnProperty(n)?t[n]:[];Array.isArray(s)||(s=[s]),o.push(s)}return o}}var vq="layers-model",vo=class extends zo{constructor(e){super(e);this.isTraining=!1}summary(e,t,o=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");e1(this,e,t,o)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=JT(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Fr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let a in e.loss)if(this.outputNames.indexOf(a)===-1)throw new z(`Unknown entry in loss dictionary: "${a}". Only expected the following keys: ${this.outputNames}`);for(let a of this.outputNames)e.loss[a]==null&&console.warn(`Output "${a}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${a} during training`),t.push(Gg(e.loss[a]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(i=>Gg(i))}else{let a=Gg(e.loss);this.outputs.forEach(i=>{t.push(a)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let a=0;a{for(let a=0;a1&&(this.metricsTensors.push([i,a]),this.metricsNames.push(this.outputNames[a]+"_loss"))}});let n=kq(e.metrics,this.outputNames),s=(a,i,l)=>{this.outputNames.length>1&&(i=this.outputNames[a]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([l,a])};Fs("metric",()=>{for(let a=0;a{let c="",p,m,f;for(let d of u){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[a];g[g.length-1]===1||this.lossFunctions[a]===Cp?["accuracy","acc"].indexOf(d)!==-1?m=Af:["crossentropy","ce"].indexOf(d)!==-1&&(m=Wg):this.lossFunctions[a]===vp?["accuracy","acc"].indexOf(d)!==-1?m=Ug:["crossentropy","ce"].indexOf(d)!==-1&&(m=xw):["accuracy","acc"].indexOf(d)!==-1?m=Df:["crossentropy","ce"].indexOf(d)!==-1&&(m=$f);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=ZT(d),p=c+Rf(d);let h;Fs(p,()=>{h=f}),s(a,p,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,o={}){let n=o.batchSize==null?32:o.batchSize;Yg(n);let s=!0,a=this.standardizeUserDataXY(e,t,s,n);try{let i=a[0].concat(a[1]);this.makeTestFunction();let l=this.testFunction,u=this.testLoop(l,i,n,o.verbose,o.steps);return dr(u)}finally{gl(a[0],e),gl(a[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),u1(this,e,t)}checkNumSamples(e,t,o,n="steps"){let s;if(o!=null){if(s=null,t!=null)throw new z(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?s=e[0].shape[0]:s=e.shape[0];else throw new z(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return s}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let o=Array.isArray(t),n=o?t:[t],s=this.retrieveSymbolicTensors(n),a=new Ps;if(e instanceof Ve&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new z(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let l=0;li.name);for(let i=0;i0){let n=[];throw t.forEach((s,a)=>{s==null&&n.push(e[a])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,o=!1){return B(()=>{let n=this.checkNumSamples(e);if(o)throw new Ne("Verbose predictLoop() is not implemented yet.");let s=Jg(n,t),a=this.outputs.map(i=>[]);for(let i=0;i{let u=s[i][0],c=s[i][1],p=Ip(e,u,c),m=[];if(Array.isArray(p))for(let d=0;da[c].push(u));return dr(a.map(i=>Je(i,0)))})}predict(e,t={}){let o=ww(e);f1(o,this.inputNames,this.feedInputShapes,!1);try{let n=t.batchSize==null?32:t.batchSize;return Yg(n),this.predictLoop(o,n)}finally{gl(o,e)}}predictOnBatch(e){f1(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,o=!0,n){if(this.optimizer_==null)throw new Or("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let a=0;a0&&e[0].shape[0]%n!=0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,o,n,s=!0,a){let[i,l]=this.standardizeUserDataXY(e,t,s,a);if(o!=null)throw new Error("sample weight is not supported yet.");let u=null;if(n!=null){let c=Kg(n,this.outputNames);u=[];for(let p=0;p{let a=this.checkNumSamples(t,o,s,"steps"),i=[];if(n>0)throw new Ne("Verbose mode is not implemented yet.");if(s!=null)throw new Ne("steps mode in testLoop() is not implemented yet");{let l=Jg(a,o),u=Vt(Pr(0,a));for(let c=0;c1&&(s+=`_${iw(e.slice(0,o),n)}`),t.push(s)}return t}makeTrainFunction(){return e=>{let t=[],o=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),a=[],i=()=>{let p=[];for(let h=0;h1&&h{d=Q(d,h)}),d},l=this.collectedTrainableWeights.map(p=>p.read()),u=!0;return[this.optimizer_.minimize(i,u,l)].concat(a)}}makeTestFunction(){this.testFunction=e=>B(()=>{let t=[],o,n=e.slice(0,this.inputs.length),s=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),a=[];for(let u=0;uHn(t))}else{let t=Object.keys(this.loss);e={};let o=this.loss;for(let n of t)if(typeof o[n]=="string")e[n]=Hn(o[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Hn(Rf(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Hn(Rf(e)));{let e={};for(let t in this.metrics)e[t]=Hn(Rf(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Ju(e.optimizer_config),o=Yr(t),n;if(typeof e.loss=="string")n=Pa(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(a=>Pa(a));else if(e.loss!=null){n={};for(let a in e.loss)n[a]=Pa(e.loss[a])}let s;if(Array.isArray(e.metrics))s=e.metrics.map(a=>Pa(a));else if(e.metrics!=null){s={};for(let a in e.metrics)s[a]=Pa(e.metrics[a])}this.compile({loss:n,metrics:s,optimizer:o})}async save(e,t){if(typeof e=="string"){let u=vr.getSaveHandlers(e);if(u.length===0)throw new z(`Cannot find any save handlers for URL '${e}'`);if(u.length>1)throw new z(`Found more than one (${u.length}) save handlers for URL '${e}'`);e=u[0]}if(e.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let o=await vr.encodeWeights(this.getNamedWeights(t)),n=!1,s=null,i={modelTopology:this.toJSON(s,n),format:vq,generatedBy:`TensorFlow.js tfjs-layers v${hl}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){i.trainingConfig=this.getTrainingConfig();let u="optimizer",{data:c,specs:p}=await vr.encodeWeights(await this.optimizer.getWeights(),u);o.specs.push(...p),o.data=vr.concatenateArrayBuffers([o.data,c])}if(this.userDefinedMetadata!=null){let u=!0;bw(this.userDefinedMetadata,this.name,u),i.userDefinedMetadata=this.userDefinedMetadata}return i.weightData=o.data,i.weightSpecs=o.specs,e.save(i)}setUserDefinedMetadata(e){bw(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};vo.className="Model";J.registerClass(vo);var vw=class extends vo{};vw.className="Functional";J.registerClass(vw);async function d1(r,e){"modelTopology"in r||(r={modelTopology:r}),r=r;let t=r.modelTopology;t.model_config!=null&&(t=t.model_config);let o=Ju(t),n=Yr(o,e);if(r.weightsManifest!=null){let s=await vr.loadWeights(r.weightsManifest,r.pathPrefix,n.weights.map(i=>i.originalName)),a={};for(let i of n.weights)a[i.originalName]=s[i.originalName];n.loadWeights(a),Te(s)}return n}async function h1(r,e){if(e==null&&(e={}),typeof r=="string"){let t=vr.getLoadHandlers(r,e);if(t.length===0)t.push(vr.browserHTTPRequest(r,e));else if(t.length>1)throw new z(`Found more than one (${t.length}) load handlers for URL '${r}'`);r=t[0]}return Cq(r,void 0,e)}async function Cq(r,e,t){if(t==null&&(t={}),r.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let o=await r.load(),n=o.modelTopology;n.model_config!=null&&(n=n.model_config);let s=t.strict==null?!0:t.strict,a=o.weightData!=null&&o.weightSpecs!=null&&s,i=Yr(Ju(n),e,a),l=o.trainingConfig;if(l!=null&&i.loadTrainingConfig(l),o.userDefinedMetadata!=null&&i.setUserDefinedMetadata(o.userDefinedMetadata),o.weightData!=null){if(o.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:c}=Iq(o.weightData,o.weightSpecs);i.loadWeights(u,s),i.optimizer!=null&&c.length>0&&await i.optimizer.setWeights(c),Te(u),Te(c.map(p=>p.tensor))}return i}function Iq(r,e){let t=vr.decodeWeights(r,e),o={},n=[];return e.forEach(s=>{s.group==="optimizer"?n.push({name:s.name,tensor:t[s.name]}):o[s.name]=t[s.name]}),{modelWeights:o,optimizerWeights:n}}var Hi=class extends vo{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:pl("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(o=>o<0))throw new z(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Hi||e instanceof vo,o;if(t){if(o=e,o.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(o.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let n=Og({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=o.outputs,this.inputs=o.inputs;else{if(e.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=hw(this.outputs[0])}this.inboundNodes=[],new ml({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:jn(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{let n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Qe(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new vo({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,o=console.log){this.built||this.build(),super.summary(e,t,o)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,o={}){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.evaluate(e,t,o)}async evaluateDataset(e,t){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,o={}){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.fit(e,t,o)}async fitDataset(e,t){if(!this.built)throw new Or("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,o={},n=!1){let s,a={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");s=t}else y.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=t.layers,delete t.layers,a=t;let i=new e(a);if(!(i instanceof Hi))throw new Ne(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let l of s){let c=Yr(l,void 0,n);n&&c.setFastWeightInitDuringBuild(!0),i.add(c)}return i}set stopTraining(e){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let o={};o.className=t.getClassName(),o.config=t.getConfig(),e.push(o)}return{name:this.name,layers:e}}};Hi.className="Sequential";J.registerClass(Hi);function g1(r){return new vo(r)}function x1(r){return new Hi(r)}function y1(r,e){return e==null&&(e={}),h1(r,e)}function Qg(r){return Og(r)}function b1(r,e){no.registerCallbackConstructor(r,e)}var so=class extends J.Serializable{getConfig(){return{}}},Cw=class extends so{apply(e,t=1){return zT(e,t)}};Cw.className="elu";J.registerClass(Cw);var Iw=class extends so{apply(e){return Mu(e)}};Iw.className="selu";J.registerClass(Iw);var Nw=class extends so{apply(e){return Ir(e)}};Nw.className="relu";J.registerClass(Nw);var Sw=class extends so{apply(e){return B(()=>As(6,Ir(e)))}};Sw.className="relu6";J.registerClass(Sw);var Tw=class extends so{apply(e){return e}};Tw.className="linear";J.registerClass(Tw);var Ew=class extends so{apply(e){return Ur(e)}};Ew.className="sigmoid";J.registerClass(Ew);var Aw=class extends so{apply(e){return VT(e)}};Aw.className="hardSigmoid";J.registerClass(Aw);var Dw=class extends so{apply(e){return Es(e)}};Dw.className="softplus";J.registerClass(Dw);var $w=class extends so{apply(e){return BT(e)}};$w.className="softsign";J.registerClass($w);var Rw=class extends so{apply(e){return Mi(e)}};Rw.className="tanh";J.registerClass(Rw);var Ff=class extends so{apply(e,t=-1){return $a(e,t)}};Ff.className="softmax";J.registerClass(Ff);var Fw=class extends so{apply(e,t=-1){return Du(e,t)}};Fw.className="logSoftmax";J.registerClass(Fw);var Ow=class extends so{apply(e,t=1){return B(()=>Ur(e.mul(t)).mul(e))}};Ow.className="swish";J.registerClass(Ow);function Ms(r){return r.getClassName()}function Pw(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"activation")}function Ls(r){if(r==null){let e={};return e.className="linear",e.config={},Pw(e)}if(typeof r=="string"){let e={};return e.className=r,e.config={},Pw(e)}else return r instanceof so?r:Pw(r)}function Mw(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var Lw=class extends J.Serializable{},ec=class extends Lw{constructor(e){super();Mw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return B(()=>{let t=gt([1]);return this.hasL1&&(t=Q(t,ye(O(this.l1,Tt(e))))),this.hasL2&&(t=Q(t,ye(O(this.l2,Xu(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};ec.className="L1L2";J.registerClass(ec);function _1(r){return Mw(r),new ec({l1:r!=null?r.l1:null,l2:0})}function w1(r){return Mw(r),new ec({l2:r!=null?r.l2:null,l1:0})}var k1={l1l2:"L1L2"};function lt(r){return lp(r)}function v1(r,e={}){return Vi(r,J.SerializationMap.getMap().classNameMap,e,"regularizer")}function bt(r){if(r==null)return null;if(typeof r=="string"){let t={className:r in k1?k1[r]:r,config:{}};return v1(t)}else return r instanceof Lw?r:v1(r)}var Of=class extends Me{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Oe(e);let o=Ir(e);return this.maxValue!=null&&(o=nr(o,0,this.maxValue)),o}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Of.className="ReLU";J.registerClass(Of);var Pf=class extends Me{constructor(e){super(e==null?{}:e);this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let o=Oe(e);return Sa(o,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Pf.className="LeakyReLU";J.registerClass(Pf);var Mf=class extends Me{constructor(e){super(e==null?{}:e);if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=dt(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=bt(e.alphaRegularizer),this.alphaConstraint=Pt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Qe(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let o={};if(this.sharedAxes!=null)for(let n=1;n(Rt(e),e==="channelsFirst"?Ue(r,[0,2,3,1]):r))}function zw(r,e){return B(()=>(Rt(e),e==="channelsFirst"?Ue(r,[0,2,3,4,1]):r))}function Nq(r,e,t,o=1,n="valid",s,a=1){return B(()=>{if(s==null&&(s=Kr()),Rt(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(e.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${e.shape.length} instead`);if(t!=null&&t.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${e.shape.length} instead`);if(s==="channelsFirst"&&(r=Ue(r,[0,2,1])),n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let i=Cu(r,e,o,n==="same"?"same":"valid","NWC",a);return t!=null&&(i=ro(i,t)),i})}function C1(r,e,t,o=[1,1],n="valid",s,a,i=null){return B(()=>{if(s==null&&(s=Kr()),Rt(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(e.rank!==3&&e.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let l=Gf(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Wn.conv2d({x:l,filter:e,strides:o,pad:n==="same"?"same":"valid",dilations:a,dataFormat:"NHWC",bias:t,activation:i}),s==="channelsFirst"&&(l=Ue(l,[0,3,1,2])),l})}function Sq(r,e,t,o=[1,1,1],n="valid",s,a){return B(()=>{if(s==null&&(s=Kr()),Rt(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(e.rank!==4&&e.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let i=zw(r,s);if(n==="causal")throw new Ne("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return i=Pm(i,e,o,n==="same"?"same":"valid","NDHWC",a),t!=null&&(i=ro(i,t)),s==="channelsFirst"&&(i=Ue(i,[0,4,1,2,3])),i})}var Np=class extends Me{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Np.verifyArgs(t),this.rank=e,Wt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Ne(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=xl(t.kernelSize,e,"kernelSize"),this.strides=xl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,Xr(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=Ls(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=dt(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Pt(t.biasConstraint),this.biasRegularizer=bt(t.biasRegularizer),this.activityRegularizer=bt(t.activityRegularizer),this.dilationRate=xl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Lo("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Ig(e.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Ms(this.activation),useBias:this.useBias,biasInitializer:It(this.biasInitializer),biasRegularizer:lt(this.biasRegularizer),activityRegularizer:lt(this.activityRegularizer),biasConstraint:Ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},tc=class extends Np{constructor(e,t){super(e,t);this.kernel=null,tc.verifyArgs(t),this.filters=t.filters,Wt(this.filters,"filters"),this.kernelInitializer=dt(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Pt(t.kernelConstraint),this.kernelRegularizer=bt(t.kernelRegularizer)}build(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[t]}`);let o=e[t],n=this.kernelSize.concat([o,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:o}}],this.built=!0}call(e,t){return B(()=>{e=Oe(e);let o,n=this.bias==null?null:this.bias.read(),s=Ng(this.activation.getClassName());if(s!=null&&this.rank===2)o=C1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)o=Nq(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)o=C1(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)o=Sq(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Ne("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(o=this.activation.apply(o))}return o})}computeOutputShape(e){e=Qe(e);let t=[],o=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let s=0;s 0 but got ${JSON.stringify(e.filters)}`)}},yl=class extends tc{constructor(e){super(2,e);yl.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Ig(e.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};yl.className="Conv2D";J.registerClass(yl);var rc=class extends tc{constructor(e){super(3,e);rc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};rc.className="Conv3D";J.registerClass(rc);var Wf=class extends yl{constructor(e){super(e);if(this.inputSpec=[new Et({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let o=e[t],n=this.kernelSize.concat([this.filters,o]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new Et({ndim:4,axes:{[t]:o}})],this.built=!0}call(e,t){return B(()=>{let o=Oe(e);if(o.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${o.shape.length}`);let n=o.shape,s=n[0],a,i;this.dataFormat==="channelsFirst"?(a=2,i=3):(a=1,i=2);let l=n[a],u=n[i],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Vf(l,m,c,this.padding),h=Vf(u,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(o=Ue(o,[0,2,3,1]));let x=Iu(o,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ue(x,[0,3,1,2])),this.bias!=null&&(x=ro(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(e){e=Qe(e);let t=e.slice(),o,n,s;this.dataFormat==="channelsFirst"?(o=1,n=2,s=3):(o=3,n=1,s=2);let a=this.kernelSize[0],i=this.kernelSize[1],l=this.strides[0],u=this.strides[1];return t[o]=this.filters,t[n]=Vf(t[n],l,a,this.padding),t[s]=Vf(t[s],u,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Wf.className="Conv2DTranspose";J.registerClass(Wf);var Bw=class extends tc{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=dt(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=bt(t.depthwiseRegularizer),this.depthwiseConstraint=Pt(t.depthwiseConstraint),this.pointwiseInitializer=dt(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=bt(t.pointwiseRegularizer),this.pointwiseConstraint=Pt(t.pointwiseConstraint)}build(e){if(e=Qe(e),e.length{e=Oe(e);let o;if(this.rank===1)throw new Ne("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ue(e,[0,2,3,1])),o=Zm(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(o=ro(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),this.dataFormat==="channelsFirst"&&(o=Ue(o,[0,3,1,2])),o})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=It(this.depthwiseInitializer),e.pointwiseInitializer=It(this.pointwiseInitializer),e.depthwiseRegularizer=lt(this.depthwiseRegularizer),e.pointwiseRegularizer=lt(this.pointwiseRegularizer),e.depthwiseConstraint=Ot(this.depthwiseConstraint),e.pointwiseConstraint=Ot(this.pointwiseConstraint),e}};Bw.className="SeparableConv";var Uf=class extends Bw{constructor(e){super(2,e)}};Uf.className="SeparableConv2D";J.registerClass(Uf);var oc=class extends tc{constructor(e){super(1,e);oc.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Ig(e.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};oc.className="Conv1D";J.registerClass(oc);var jf=class extends Me{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return B(()=>{if(e=Oe(e),this.dataFormat==="channelsLast"){let o=xf(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return xf(o,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let o=xf(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return xf(o,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};jf.className="Cropping2D";J.registerClass(jf);var Hf=class extends Me{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,DT(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],o=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,o]}else{let t=e[1]==null?null:this.size[0]*e[1],o=e[2]==null?null:this.size[1]*e[2];return[e[0],t,o,e[3]]}}call(e,t){return B(()=>{let o=Oe(e),n=o.shape;if(this.dataFormat==="channelsFirst"){o=Ue(o,[0,2,3,1]);let s=this.size[0]*n[2],a=this.size[1]*n[3],i=this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a]);return Ue(i,[0,3,1,2])}else{let s=this.size[0]*n[1],a=this.size[1]*n[2];return this.interpolation==="nearest"?o.resizeNearestNeighbor([s,a]):o.resizeBilinear([s,a])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Hf.className="UpSampling2D";J.registerClass(Hf);function Tq(r,e,t=[1,1],o="valid",n,s){return B(()=>{n==null&&(n=Kr()),Rt(n);let a=Gf(r,n);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(e.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${e.rank}-D`);return a=Ns(a,e,t,o==="same"?"same":"valid","NHWC",s),n==="channelsFirst"&&(a=Ue(a,[0,3,1,2])),a})}var qf=class extends Np{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=dt(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Pt(e.depthwiseConstraint),this.depthwiseRegularizer=bt(e.depthwiseRegularizer)}build(e){if(e=Qe(e),e.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let o=e[t],n=[this.kernelSize[0],this.kernelSize[1],o,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[o*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return B(()=>{e=Oe(e);let o=Tq(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(o=ro(o,this.bias.read(),this.dataFormat)),this.activation!=null&&(o=this.activation.apply(o)),o})}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,s=io(t,this.kernelSize[0],this.padding,this.strides[0]),a=io(o,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,s,a]:[e[0],s,a,n]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=It(this.depthwiseInitializer),e.depthwiseRegularizer=lt(this.depthwiseRegularizer),e.depthwiseConstraint=Ot(this.depthwiseRegularizer),e}};qf.className="DepthwiseConv2D";J.registerClass(qf);function Vw(r,e,t,o){if(Array.isArray(r)){if(e!=null||t!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");o!=null&&(t=r.slice(r.length-o,r.length),r=r.slice(0,r.length-o)),r.length>1&&(e=r.slice(1,r.length)),r=r[0]}function n(s){return s==null||Array.isArray(s)?s:[s]}return e=n(e),t=n(t),{inputs:r,initialState:e,constants:t}}function Gw(r,e,t,o=!1,n,s,a=!1,i=!1){return B(()=>{let l=e.shape.length;if(l<3)throw new z(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Pr(2,l));if(e=Ue(e,u),s!=null)throw new Ne("The rnn() functoin of the deeplearn.js backend does not support constants yet.");a&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),n!=null&&(n=n.asType("bool").asType("float32"),n.rank===l-1&&(n=sr(n,-1)),n=Ue(n,u)),o&&(e=qt(e,0),n!=null&&(n=qt(n,0)));let c=[],p,m=t,f=e.shape[0],d=ur(e),h;n!=null&&(h=ur(n));for(let x=0;xr(b,m));if(n==null)p=_[0],m=_[1];else{let w=B(()=>{let v=h[x],$=er(v).sub(v),A=_[0].mul(v).add(m[0].mul($)),R=m.map((M,V)=>_[1][V].mul(v).add(M.mul($)));return{output:A,newStates:R}});p=w.output,m=w.newStates}i&&c.push(p)}let g;return i&&(g=Bt(c,1)),[p,g,m]})}var ao=class extends Me{constructor(e){super(e);let t;if(e.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Sp({cells:e.cell}):t=e.cell,t.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new Et({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Pr(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Fg(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let o=t[0],n;if(this.returnSequences?n=[e[0],e[1],o]:n=[e[0],o],this.returnState){let s=[];for(let a of t)s.push([e[0],a]);return[n].concat(s)}else return n}computeMask(e,t){return B(()=>{Array.isArray(t)&&(t=t[0]);let o=this.returnSequences?t:null;if(this.returnState){let n=this.states.map(s=>null);return[o].concat(n)}else return o})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let o=0;oi.shape[i.shape.length-1]),a))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=a.map(i=>new Et({shape:[null,i]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){B(()=>{if(!this.stateful)throw new ko("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape[0];if(o==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>gt([o,n])):this.states_=[gt([o,this.cell.stateSize])];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>gt([o,n])):this.states_[0]=gt([o,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let n=0;nDt(n.clone()))})}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=Vw(e,o,n,this.numConstants);e=s.inputs,o=s.initialState,n=s.constants;let a=[],i=[];if(o!=null){t.initialState=o,a=a.concat(o),this.stateSpec=[];for(let u of o)this.stateSpec.push(new Et({shape:u.shape}));i=i.concat(this.stateSpec)}if(n!=null&&(t.constants=n,a=a.concat(n),this.numConstants=n.length),a[0]instanceof Lr){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return B(()=>{let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;e=Oe(e),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(e));let a=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==a)throw new z(`RNN Layer has ${a} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:n},u=Gw((d,h)=>{let g=this.cell.call([d].concat(h),i);return[g[0],g.slice(1)]},e,s,this.goBackwards,o,null,this.unroll,this.returnSequences),c=u[0],p=u[1],m=u[2];this.stateful&&this.resetStates(m,n);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(e){return B(()=>{let t=gt(e.shape);return t=ye(t,[1,2]),t=La(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(o=>o>1?Eg(t,[1,o]):t):this.cell.stateSize>1?[Eg(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let o=this.cell.getConfig();return this.getClassName()===ao.className&&(t.cell={className:this.cell.getClassName(),config:o}),Object.assign({},o,e,t)}static fromConfig(e,t,o={}){let n=t.cell,s=Yr(n,o);return new e(Object.assign(t,{cell:s}))}};ao.className="RNN";J.registerClass(ao);var bl=class extends Me{},Tp=class extends bl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Wt(this.units,"units"),this.activation=Ls(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=dt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Pt(e.kernelConstraint),this.recurrentConstraint=Pt(e.recurrentConstraint),this.biasConstraint=Pt(e.biasConstraint),this.dropout=Ku([1,Os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ku([1,Os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return B(()=>{if(e=e,e.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let o=e[1];e=e[0];let n=t.training==null?!1:t.training;0er(e),rate:this.dropout,training:n})),0er(o),rate:this.recurrentDropout,training:n}));let s,a=this.dropoutMask,i=this.recurrentDropoutMask;a!=null?s=Yn(O(e,a),this.kernel.read()):s=Yn(e,this.kernel.read()),this.bias!=null&&(s=ro(s,this.bias.read())),i!=null&&(o=O(o,i));let l=Q(s,Yn(o,this.recurrentKernel.read()));return this.activation!=null&&(l=this.activation.apply(l)),[l,l]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:Ms(this.activation),useBias:this.useBias,kernelInitializer:It(this.kernelInitializer),recurrentInitializer:It(this.recurrentInitializer),biasInitializer:It(this.biasInitializer),kernelRegularizer:lt(this.kernelRegularizer),recurrentRegularizer:lt(this.recurrentRegularizer),biasRegularizer:lt(this.biasRegularizer),activityRegularizer:lt(this.activityRegularizer),kernelConstraint:Ot(this.kernelConstraint),recurrentConstraint:Ot(this.recurrentConstraint),biasConstraint:Ot(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}};Tp.className="SimpleRNNCell";J.registerClass(Tp);var Kf=class extends ao{constructor(e){e.cell=new Tp(e),super(e)}call(e,t){return B(()=>{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return new e(t)}};Kf.className="SimpleRNN";J.registerClass(Kf);var Ep=class extends bl{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Wt(this.units,"units"),this.activation=Ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=dt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Pt(e.kernelConstraint),this.recurrentConstraint=Pt(e.recurrentConstraint),this.biasConstraint=Pt(e.biasConstraint),this.dropout=Ku([1,Os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ku([1,Os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return B(()=>{if(e=e,e.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training==null?!1:t.training,n=e[1];e=e[0],0er(e),rate:this.dropout,training:o,count:3})),0er(n),rate:this.recurrentDropout,training:o,count:3}));let s=this.dropoutMask,a=this.recurrentDropoutMask,i,l,u;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Xf.className="GRU";J.registerClass(Xf);var _l=class extends bl{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Wt(this.units,"units"),this.activation=Ls(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Ls(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=dt(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=bt(e.kernelRegularizer),this.recurrentRegularizer=bt(e.recurrentRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.kernelConstraint=Pt(e.kernelConstraint),this.recurrentConstraint=Pt(e.recurrentConstraint),this.biasConstraint=Pt(e.biasConstraint),this.dropout=Ku([1,Os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Ku([1,Os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Qe(e);let o=e[e.length-1];this.kernel=this.addWeight("kernel",[o,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,a=this.units;n=new(t=class extends oo{apply(l,u){let c=s.apply([a]),p=new Yu().apply([a]),m=s.apply([a*2]);return mw(mw(c,p),m)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return B(()=>{let o=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1],s=e[2];e=e[0],0er(e),rate:this.dropout,training:o,count:4})),0er(n),rate:this.recurrentDropout,training:o,count:4}));let a=this.dropoutMask,i=this.recurrentDropoutMask,l,u,c,p;0{this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Yf.className="LSTM";J.registerClass(Yf);var Sp=class extends bl{constructor(e){super(e);this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return B(()=>{e=e;let o=e.slice(1),n=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?n.push(o.splice(0,i.stateSize.length)):n.push(o.splice(0,1));n.reverse();let s=[],a;for(let i=0;i{Fs(`RNNCell_${n}`,()=>{o.build(e),Array.isArray(o.stateSize)?t=o.stateSize[0]:t=o.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=s=>({className:s.getClassName(),config:s.getConfig()}),n={cells:this.cells.map(t)};return Object.assign({},e,n)}static fromConfig(e,t,o={}){let n=[];for(let s of t.cells)n.push(Yr(s,o));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let o of this.cells)t.push(...o.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Nf(e)}setWeights(e){let t=[];for(let o of this.cells){let n=o.weights.length,s=e.splice(n);for(let a=0;aDg(e(),t),a=()=>cl(s,e,o);return!n||n<=1?Dt(a().clone()):Array(n).fill(void 0).map(a).map(l=>Dt(l.clone()))}var Eq=function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,o=Object.getOwnPropertySymbols(r);n{if(this.cell.dropoutMask!=null&&(Te(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Te(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new z("ConvRNN2D cell does not support constants");let o=t==null?null:t.mask,n=t==null?null:t.training,s=t==null?null:t.initialState;return super.call(e,{mask:o,training:n,initialState:s})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return B(()=>{let{stateSize:t}=this.cell,o=e.shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)],a=gt(s);return Array.isArray(t)?Array(t.length).fill(a):[a]})}resetStates(e,t=!1){B(()=>{if(!this.stateful)throw new ko("Cannot call resetStates() on an RNN Layer that is not stateful.");let o=this.inputSpec[0].shape,n=this.computeSingleOutputShape(o),s=[n[0],...n.slice(2)];if(o[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gt(s)):this.states_=[gt(s)];else if(e==null)Te(this.states_),this.keptStates!=null&&(Te(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>gt(s)):this.states_[0]=gt(s);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Te(this.states_);for(let i=0;iDt(i.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:o,kernelSize:n,padding:s,strides:a,dilationRate:i}=this.cell,l=t==="channelsFirst",u=e[l?3:2],c=e[l?4:3],p=io(u,n[0],s,a[0],i[0]),m=io(c,n[1],s,a[1],i[1]);return[...e.slice(0,2),...l?[o,p,m]:[p,m,o]]}};Ww.className="ConvRNN2D";var Ap=class extends _l{constructor(e){let{filters:t,kernelSize:o,strides:n,padding:s,dataFormat:a,dilationRate:i}=e;super(Object.assign({},e,{units:t}));this.filters=t,Wt(this.filters,"filters"),this.kernelSize=xl(o,2,"kernelSize"),this.kernelSize.forEach(l=>Wt(l,"kernelSize")),this.strides=xl(n||1,2,"strides"),this.strides.forEach(l=>Wt(l,"strides")),this.padding=s||"valid",Xr(this.padding),this.dataFormat=a||"channelsLast",Rt(this.dataFormat),this.dilationRate=xl(i||1,2,"dilationRate"),this.dilationRate.forEach(l=>Wt(l,"dilationRate"))}build(e){var t;e=Qe(e);let o=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[o]==null)throw new z(`The channel dimension of the input should be defined. Found ${e[o]}`);let n=e[o],s=4,a=this.kernelSize.concat([n,this.filters*s]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let l;if(this.unitForgetBias){let u=this.biasInitializer,c=this.filters;l=new(t=class extends oo{apply(m,f){let d=u.apply([c]),h=Cr([c]),g=u.apply([c*2]);return pp([d,h,g])}},t.className="CustomInit",t)}else l=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,l,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return B(()=>{if(e.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let o=t.training||!1,n=e[0],s=e[1],a=e[2],i=4;0er(n),rate:this.dropout,training:o,count:i}));let l=this.dropoutMask,u=(ie,se,pe)=>!se||!se[pe]?ie:O(se[pe],ie),c=u(n,l,0),p=u(n,l,1),m=u(n,l,2),f=u(n,l,3);0er(s),rate:this.recurrentDropout,training:o,count:i}));let d=this.recurrentDropoutMask,h=u(s,d,0),g=u(s,d,1),x=u(s,d,2),b=u(s,d,3),_=3,[w,v,$,A]=lr(this.kernel.read(),i,_),[R,M,V,G]=this.useBias?lr(this.bias.read(),i):[null,null,null,null];c=this.inputConv(c,w,R,this.padding),p=this.inputConv(p,v,M,this.padding),m=this.inputConv(m,$,V,this.padding),f=this.inputConv(f,A,G,this.padding);let[W,q,Z,X]=lr(this.recurrentKernel.read(),i,_);h=this.recurrentConv(h,W),g=this.recurrentConv(g,q),x=this.recurrentConv(x,Z),b=this.recurrentConv(b,X);let Y=this.recurrentActivation.apply(Q(c,h)),te=this.recurrentActivation.apply(Q(p,g)),K=Q(O(te,a),O(Y,this.activation.apply(Q(m,x)))),re=O(this.recurrentActivation.apply(Q(f,b)),this.activation.apply(K));return[re,re,K]})}getConfig(){let e=super.getConfig(),{units:t}=e,o=Eq(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},o,n)}inputConv(e,t,o,n){let s=jr(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return o?ro(s,o,this.dataFormat):s}recurrentConv(e,t){return jr(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ap.className="ConvLSTM2DCell";J.registerClass(Ap);var Zf=class extends Ww{constructor(e){let t=new Ap(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}};Zf.className="ConvLSTM2D";J.registerClass(Zf);var Dp=class extends Me{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,o=[];for(let n=0;n{this.invokeCallHook(e,t);let o=Oe(e);if(0Dg(o,this.rate,s,this.seed),()=>o,n)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Dp.className="Dropout";J.registerClass(Dp);var Jf=class extends Dp{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Jf.className="SpatialDropout1D";J.registerClass(Jf);var Qf=class extends Me{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Wt(this.units,"units"),this.activation=Ls(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=dt(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=dt(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Pt(e.kernelConstraint),this.biasConstraint=Pt(e.biasConstraint),this.kernelRegularizer=bt(e.kernelRegularizer),this.biasRegularizer=bt(e.biasRegularizer),this.activityRegularizer=bt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Qe(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Qe(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return B(()=>{this.invokeCallHook(e,t);let o=Oe(e),n=Ng(this.activation.getClassName()),s;return n!=null?s=Yn(o,this.kernel.read(),n,this.bias?this.bias.read():null):(s=Yn(o,this.kernel.read()),this.bias!=null&&(s=ro(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let e={units:this.units,activation:Ms(this.activation),useBias:this.useBias,kernelInitializer:It(this.kernelInitializer),biasInitializer:It(this.biasInitializer),kernelRegularizer:lt(this.kernelRegularizer),biasRegularizer:lt(this.biasRegularizer),activityRegularizer:lt(this.activityRegularizer),kernelConstraint:Ot(this.kernelConstraint),biasConstraint:Ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Qf.className="Dense";J.registerClass(Qf);var ed=class extends Me{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Qe(e);for(let t of e.slice(1))if(t==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Xn(e,1)]}call(e,t){return B(()=>{this.invokeCallHook(e,t);let o=Oe(e);if(this.dataFormat==="channelsFirst"&&o.rank>1){let n=[0];for(let s=2;s{this.invokeCallHook(e,t);let o=Oe(e);return this.activation.apply(o)})}getConfig(){let e={activation:Ms(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};td.className="Activation";J.registerClass(td);var rd=class extends Me{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return B(()=>(e=Oe(e),PT(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};rd.className="RepeatVector";J.registerClass(rd);var od=class extends Me{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let o=Oe(e),n=o.shape,s=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return o.reshape(s)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};od.className="Reshape";J.registerClass(od);var nd=class extends Me{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Pr(1,e.dims.length+1);if(!y.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new Et({ndim:this.dims.length+1})]}computeOutputShape(e){e=Qe(e);let t=e.slice();return this.dims.forEach((o,n)=>{t[n+1]=e[o]}),t}call(e,t){return Ue(Oe(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};nd.className="Permute";J.registerClass(nd);var sd=class extends Me{constructor(e){super(e==null?{}:e);this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let o=Oe(e),n=-1;return nl(Gn(o,this.maskValue),n)}call(e,t){return B(()=>{this.invokeCallHook(e,t);let o=Oe(e),n=-1,s=!0,a=nl(Gn(o,this.maskValue),n,s);return o.mul(a.asType(o.dtype))})}};sd.className="Masking";J.registerClass(sd);var id=class extends Me{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Wt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Wt(this.outputDim,"outputDim"),this.embeddingsInitializer=dt(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=bt(e.embeddingsRegularizer),this.activityRegularizer=bt(e.activityRegularizer),this.embeddingsConstraint=Pt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return B(()=>this.maskZero?(e=Oe(e),Gn(e,Ie(e))):null)}computeOutputShape(e){if(e=Qe(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let o=0;for(let n=0;n{this.invokeCallHook(e,t);let o=Oe(e);return o.dtype!=="int32"&&(o=Ma(o,"int32")),Ag(this.embeddings.read(),o.as1D()).reshape(Qe(this.computeOutputShape(o.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:It(this.embeddingsInitializer),embeddingsRegularizer:lt(this.embeddingsRegularizer),activityRegularizer:lt(this.activityRegularizer),embeddingsConstraint:Ot(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};id.className="Embedding";J.registerClass(id);var wl=class extends Me{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new Ne}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let o=e[0]==null?null:e[0].slice(1);for(let s=1;ss.length);e.indexOf(null)===-1&&Kn(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return B(()=>{if(e=e,this.reshapeRequired){let o=[],n=e.map(s=>s.rank);if(n.indexOf(null)===-1){let s=Os(n);for(let a of e){let i=a.rank;for(let l=0;l1){let c=Pr(1,u).concat([0]);o.push(Ue(l,c)),s=!0}else o.push(l)}let a=this.mergeFunction(o),i=a.rank;if(s){if(i==null){let l=a.shape,u=l.length,c=l[u-1],p=[c].concat(l.slice(0,l.length-1));a=Ue(a.reshape([-1,c]),[1,0]).reshape(p)}else if(i>1){let l=[i-1].concat(Pr(0,i-1));a=Ue(a,l)}}return a}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an Array");if(!Array.isArray(e))throw new z("`inputs` should be an Array");if(t.length!==e.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:sr(n,0));let o=t[0];for(let n=1;n{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0].clone();for(let o=1;o{let t=e[0];for(let o=1;o{let t=e[0];for(let o=1;o1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return B(()=>pp(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let t=e,o=t[0].slice(),n=this.axis<0?o.length+this.axis:this.axis;for(let s of t.slice(1)){if(o[n]==null||s[n]==null){o[n]=null;break}o[n]+=s[n]}return o}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new z("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new z(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return B(()=>{let o=!0;if(t.forEach(a=>{if(a!=null){o=!1;return}}),o)return null;let n=[];for(let a=0;a3||e.shape.length>3)throw new Ne("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${e.shape.length}`),typeof t=="number"&&(t=[t,t]),r.dtype==="complex64"||e.dtype==="complex64")throw new Ne("batchDot is not implemented for complex64-type Tensors yet.");let o=r.shape.length,n=e.shape.length;t==null&&(t=[o-1,n-2]);let s=t;return B(()=>{let a;if(o>n){a=o-n;let l=[];for(let u=0;uo){a=n-o;let l=[];for(let u=0;u0){let l;o>n?l=o+n-3:l=o-1;let u=[];for(let c=l;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],o=e[1];if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);if(t[n[0]]!==o[n[1]])throw new z(`Dimension incompatibility: ${t[n[0]]} !== ${o[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],o=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((s,a)=>fd(s,e[a].shape.length)):n=[fd(this.axes,t.shape.length),fd(this.axes,o.shape.length)],this.normalize&&(t=Sf(t,n[0]),o=Sf(o,n[1])),Aq(t,o,n)}interpretAxes(e,t){let o;return Array.isArray(this.axes)?o=this.axes:o=[fd(this.axes,e.length),fd(this.axes,t.length)],o}computeOutputShape(e){y.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),o=e[1].slice();if(t.length>3||o.length>3)throw new Ne("Dot layer does not support tensors of 4D or higher rank yet.");let n=this.interpretAxes(t,o);t.splice(n[0],1),o.splice(n[1],1),o.splice(0,1);let s=t.concat(o);return s.length===1&&s.push(1),s}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};dd.className="Dot";J.registerClass(dd);var hd=class extends Me{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return B(()=>{this.invokeCallHook(e,t);let o=Oe(e);return cl(()=>mp(o.shape,0,this.stddev).add(o),()=>o,t.training||!1)})}};hd.className="GaussianNoise";J.registerClass(hd);var gd=class extends Me{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return B(()=>{this.invokeCallHook(e,t);let o=Oe(e);return this.rate>0&&this.rate<1?cl(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return o.mul(mp(o.shape,1,s))},()=>o,t.training||!1):o})}};gd.className="GaussianDropout";J.registerClass(gd);var xd=class extends Me{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Oe(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return B(()=>{if(this.rate<1&&this.rate>0){let o=this._getNoiseShape(e);return cl(()=>{let s=Oe(e),a=1.6732632423543772,i=1.0507009873554805,l=-a*i,u=to(Ds(o),this.rate);u=Ma(u,"float32");let c=((1-this.rate)*(1+this.rate*l**2))**-.5,p=-c*l*this.rate;return s.mul(u).add(u.add(-1).mul(l)).mul(c).add(p)},()=>Oe(e),t.training||!1)}return e})}};xd.className="AlphaDropout";J.registerClass(xd);function yd(r,e,t,o,n,s=.001){let a;if(r.rank===2)a=c_(r,e,t,o,n,s);else if(r.rank===3)a=p_(r,e,t,o,n,s);else if(r.rank===4)a=m_(r,e,t,o,n,s);else throw new Ne(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return a}function Dq(r,e,t,o,n=.001){return B(()=>{let s=Yc(r,o),a=s.mean,i=s.variance;return[yd(r,a,i,t,e,n),a,i]})}function $q(r,e,t,o,n=.001){return B(()=>{let s=Yc(r,o),a=s.mean,i=s.variance,l=[];for(let d of Pr(0,r.rank))o.indexOf(d)!==-1?l.push(1):l.push(r.shape[d]);let u=a.reshape(l),c=i.reshape(l),p=e==null?null:e.reshape(l),m=t==null?null:t.reshape(l);return[yd(r,u,c,m,p,n),a,i]})}function Rq(r,e,t,o,n=.001){return y.arraysEqual(o.slice().sort(),Pr(0,r.rank-1))?Dq(r,e,t,o,n):$q(r,e,t,o,n)}var bd=class extends Me{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=dt(e.betaInitializer||"zeros"),this.gammaInitializer=dt(e.gammaInitializer||"ones"),this.movingMeanInitializer=dt(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=dt(e.movingVarianceInitializer||"ones"),this.betaConstraint=Pt(e.betaConstraint),this.gammaConstraint=Pt(e.gammaConstraint),this.betaRegularizer=bt(e.betaRegularizer),this.gammaRegularizer=bt(e.gammaRegularizer)}build(e){e=Qe(e);let t=this.axis>=0?this.axis:this.axis+e.length,o=e[t];if(o==null)throw new z(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new Et({ndim:e.length,axes:{[t]:o}})];let n=[o];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return B(()=>{let o=t.training==null?!1:t.training,n=Oe(e),s=n.shape,a=s.length,i=Pr(0,a),l=this.axis>=0?this.axis:this.axis+a;i.splice(l,1);let u=jn(1,a);u[l]=s[l];let c=i.slice();c.sort();let p=!y.arraysEqual(c,Pr(0,a).slice(0,a-1)),m=()=>{if(p){let b=this.movingMean.read().reshape(u),_=this.movingVariance.read().reshape(u),w=this.center?this.beta.read().reshape(u):null,v=this.scale?this.gamma.read().reshape(u):null;return yd(n,b,_,w,v,this.epsilon)}else return yd(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!o)return m();let[f,d,h]=Rq(n,this.gamma.read(),this.beta.read(),i,this.epsilon),g=(b,_,w)=>{B(()=>{let v=1-w,$=b.read(),A=$.sub(_).mul(v);b.write($.sub(A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:It(this.betaInitializer),gammaInitializer:It(this.gammaInitializer),movingMeanInitializer:It(this.movingMeanInitializer),movingVarianceInitializer:It(this.movingVarianceInitializer),betaRegularizer:lt(this.betaRegularizer),gammaRegularizer:lt(this.gammaRegularizer),betaConstraint:Ot(this.betaConstraint),gammaConstraint:Ot(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};bd.className="BatchNormalization";J.registerClass(bd);var _d=class extends Me{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=dt(e.betaInitializer||"zeros"),this.gammaInitializer=dt(e.gammaInitializer||"ones"),this.betaRegularizer=bt(e.betaRegularizer),this.gammaRegularizer=bt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Qe(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=t)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==Kn(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let o=this.axis.map(s=>e[s]),n=!0;this.scale?this.gamma=this.addWeight("gamma",o,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",o,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){let o=Oe(e),n=o.shape,s=n.length;return B(()=>{let a=!0,{mean:i,variance:l}=Yc(o,this.axis,a),u=jn(1,s);for(let h of this.axis)u[h]=n[h];let c=h=>h!=null&&h.shape.length!==s&&this.axis!==[s-1]?h.reshape(u):h,p=c(this.gamma.read()),m=c(this.beta.read()),f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(e==null&&(e=[[1,1],[1,1]]),e.length!==2||e[0].length!==2||e[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(t==null&&(t=Kr()),t!=="channelsLast"&&t!=="channelsFirst")throw new z(`Unknown data format: ${t}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let o;return t==="channelsFirst"?o=[[0,0],[0,0],e[0],e[1]]:o=[[0,0],e[0],e[1],[0,0]],$r(r,o)})}var wd=class extends Me{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?Kr():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,o;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],o=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);o=e.padding[1]}this.padding=[t,o]}this.inputSpec=[new Et({ndim:4})]}computeOutputShape(e){e=Qe(e);let t,o;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?o=e[3]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],e[1],t,o]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?o=e[2]+this.padding[1][0]+this.padding[1][1]:o=null,[e[0],t,o,e[3]])}call(e,t){return B(()=>Fq(Oe(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};wd.className="ZeroPadding2D";J.registerClass(wd);function ex(r,e,t,o,n,s){return B(()=>{Rt(n),cw(s),Xr(o),t==null&&(t=[1,1]),o==null&&(o="valid"),n==null&&(n=Kr()),s==null&&(s="max"),r=Gf(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=Ea(r,e,t,i):a=va(r,e,t,i),n==="channelsFirst"&&(a=Ue(a,[0,3,1,2])),a})}function I1(r,e,t,o,n,s){return B(()=>{Rt(n),cw(s),Xr(o),t==null&&(t=[1,1,1]),o==null&&(o="valid"),n==null&&(n=Kr()),s==null&&(s="max"),r=zw(r,n);let a,i=o==="same"?"same":"valid";return s==="max"?a=jm(r,e,t,i):a=Fm(r,e,t,i),n==="channelsFirst"&&(a=Ue(a,[0,4,1,2,3])),a})}var Uw=class extends Me{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Wt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,Xr(this.padding),this.inputSpec=[new Et({ndim:3})]}computeOutputShape(e){e=Qe(e);let t=io(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return B(()=>{this.invokeCallHook(e,t),e=La(Oe(e),2);let o=this.poolingFunction(Oe(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return wo(o,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},kd=class extends Uw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Xr(n),ex(e,t,o,n,s,"max")}};kd.className="MaxPooling1D";J.registerClass(kd);var vd=class extends Uw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Xr(n),ex(e,t,o,n,s,"avg")}};vd.className="AveragePooling1D";J.registerClass(vd);var jw=class extends Me{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Wt(this.poolSize,"poolSize"),Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),Xr(this.padding),this.inputSpec=[new Et({ndim:4})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=io(t,this.poolSize[0],this.padding,this.strides[0]),o=io(o,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o]:[e[0],t,o,e[3]]}call(e,t){return B(()=>(this.invokeCallHook(e,t),this.poolingFunction(Oe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Cd=class extends jw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Xr(n),ex(e,t,o,n,s,"max")}};Cd.className="MaxPooling2D";J.registerClass(Cd);var Id=class extends jw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Xr(n),ex(e,t,o,n,s,"avg")}};Id.className="AveragePooling2D";J.registerClass(Id);var Hw=class extends Me{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Wt(this.poolSize,"poolSize"),Wt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),Xr(this.padding),this.inputSpec=[new Et({ndim:5})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],o=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=io(t,this.poolSize[0],this.padding,this.strides[0]),o=io(o,this.poolSize[1],this.padding,this.strides[1]),n=io(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,o,n]:[e[0],t,o,n,e[4]]}call(e,t){return B(()=>(this.invokeCallHook(e,t),this.poolingFunction(Oe(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Nd=class extends Hw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Xr(n),I1(e,t,o,n,s,"max")}};Nd.className="MaxPooling3D";J.registerClass(Nd);var Sd=class extends Hw{constructor(e){super(e)}poolingFunction(e,t,o,n,s){return Rt(s),Xr(n),I1(e,t,o,n,s,"avg")}};Sd.className="AveragePooling3D";J.registerClass(Sd);var qw=class extends Me{constructor(e){super(e);this.inputSpec=[new Et({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Ne}},Td=class extends qw{constructor(e){super(e||{})}call(e,t){return B(()=>{let o=Oe(e);return ht(o,1)})}};Td.className="GlobalAveragePooling1D";J.registerClass(Td);var Ed=class extends qw{constructor(e){super(e||{})}call(e,t){return B(()=>{let o=Oe(e);return ar(o,1)})}};Ed.className="GlobalMaxPooling1D";J.registerClass(Ed);var Kw=class extends Me{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new Et({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Ne}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},Ad=class extends Kw{call(e,t){return B(()=>{let o=Oe(e);return this.dataFormat==="channelsLast"?ht(o,[1,2]):ht(o,[2,3])})}};Ad.className="GlobalAveragePooling2D";J.registerClass(Ad);var Dd=class extends Kw{call(e,t){return B(()=>{let o=Oe(e);return this.dataFormat==="channelsLast"?ar(o,[1,2]):ar(o,[2,3])})}};Dd.className="GlobalMaxPooling2D";J.registerClass(Dd);var Xw=class extends Me{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,o={}){let n=t.layer,s=Yr(n,o);delete t.layer;let a={layer:s};return Object.assign(a,t),new e(a)}},$d=class extends Xw{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Qe(e),e.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Qe(e);let t=[e[0]].concat(e.slice(2)),o=this.layer.computeOutputShape(t),n=e[1];return[o[0],n].concat(o.slice(1))}call(e,t){return B(()=>(e=Oe(e),Gw((a,i)=>[Oe(this.layer.call(a,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};$d.className="TimeDistributed";J.registerClass($d);function Oq(r){Gi(AT,"BidirectionalMergeMode",r)}var Pq="concat",Rd=class extends Xw{constructor(e){super(e);let t=e.layer.getConfig(),o={};o.className=e.layer.getClassName(),o.config=t,this.forwardLayer=Yr(o),t.goBackwards=t.goBackwards!==!0;let n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=Yr(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?Pq:e.mergeMode,Oq(this.mergeMode),e.weights)throw new Ne("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,o=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,o)),this.backwardLayer.setWeights(e.slice(o))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let o,n,s;return this.returnState&&(s=t.slice(1)),o=t[0],o=o,this.mergeMode==="concat"?(o[o.length-1]*=2,n=[o]):this.mergeMode==null?n=[o,o.slice()]:n=[o],this.returnState?this.mergeMode==null?n.concat(s).concat(s.slice()):[o].concat(s).concat(s.slice()):dr(n)}apply(e,t){let o=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});let s=Vw(e,o,n,this.numConstants);if(e=s.inputs,o=s.initialState,n=s.constants,Array.isArray(e)&&(o=e.slice(1),e=e[0]),(o==null||o.length===0)&&n==null)return super.apply(e,t);let a=[],i=[];if(o!=null){let u=o.length;if(u%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=o,a.push(...o);let c=o.map(p=>new Et({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,u/2),this.backwardLayer.stateSpec=c.slice(u/2),i.push(...c)}if(n!=null)throw new Ne("Support for constants in Bidirectional layers is not implemented yet.");let l=a[0]instanceof Lr;for(let u of a)if(u instanceof Lr!==l)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(l){let u=[e].concat(a),c=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=c;let m=super.apply(u,t);return this.inputSpec=p,m}else return super.apply(e,t)}call(e,t){return B(()=>{let o=t.initialState,n,s;if(o==null)n=this.forwardLayer.call(e,t),s=this.backwardLayer.call(e,t);else{let l=o.slice(0,o.length/2),u=o.slice(o.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:l})),s=this.backwardLayer.call(e,Object.assign(t,{initialState:u}))}let a;this.returnState&&(Array.isArray(n)&&(a=n.slice(1).concat(s.slice(1))),n=n[0],s=s[0]),this.returnSequences&&(s=qt(s,1));let i;return this.mergeMode==="concat"?i=pp([n,s]):this.mergeMode==="sum"?i=Q(n,s):this.mergeMode==="ave"?i=O(.5,Q(n,s)):this.mergeMode==="mul"?i=O(n,s):this.mergeMode==null&&(i=[n,s]),this.returnState?this.mergeMode==null?i.concat(a):[i].concat(a):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Fs(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Fs(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let o;if(this.returnSequences?this.mergeMode==null?o=[t,t]:o=t:this.mergeMode==null?o=[null,null]:o=null,this.returnState){let s=this.forwardLayer.states.map(a=>null);return Array.isArray(o)?o.concat(s).concat(s):[o].concat(s).concat(s)}else return o}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let o=Yr(t.layer);if(delete t.layer,t.numConstants!=null)throw new Ne("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let n=t;return n.layer=o,new e(n)}};Rd.className="Bidirectional";J.registerClass(Rd);function Mq(r){return new Wi(r)}function Lq(r){return new Lf(r)}function zq(r){return new Of(r)}function Bq(r){return new Pf(r)}function Vq(r){return new Mf(r)}function Gq(r){return new Bf(r)}function Wq(r){return new zf(r)}function Uq(r){return new oc(r)}function jq(r){return new yl(r)}function Hq(r){return new Wf(r)}function qq(r){return new rc(r)}function Kq(r){return new Uf(r)}function Xq(r){return new jf(r)}function Yq(r){return new Hf(r)}function Zq(r){return new qf(r)}function Jq(r){return new td(r)}function Qq(r){return new Qf(r)}function eK(r){return new Dp(r)}function tK(r){return new Jf(r)}function rK(r){return new ed(r)}function oK(r){return new rd(r)}function nK(r){return new od(r)}function sK(r){return new nd(r)}function iK(r){return new id(r)}function aK(r){return new ad(r)}function lK(r){return new ud(r)}function uK(r){return new md(r)}function cK(r){return new cd(r)}function pK(r){return new pd(r)}function mK(r){return new ld(r)}function fK(r){return new dd(r)}function dK(r){return new bd(r)}function hK(r){return new _d(r)}function gK(r){return new wd(r)}function Zw(r){return new vd(r)}function xK(r){return Zw(r)}function yK(r){return Zw(r)}function Jw(r){return new Id(r)}function bK(r){return Jw(r)}function _K(r){return Jw(r)}function Qw(r){return new Sd(r)}function wK(r){return Qw(r)}function kK(r){return Qw(r)}function vK(r){return new Td(r)}function CK(r){return new Ad(r)}function N1(r){return new Ed(r)}function S1(r){return new Dd(r)}function T1(r){return new kd(r)}function E1(r){return new Cd(r)}function IK(r){return new Nd(r)}function NK(r){return new Xf(r)}function SK(r){return new Ep(r)}function TK(r){return new Yf(r)}function EK(r){return new _l(r)}function AK(r){return new Kf(r)}function DK(r){return new Tp(r)}function $K(r){return new Zf(r)}function RK(r){return new Ap(r)}function FK(r){return new ao(r)}function OK(r){return new Sp(r)}function PK(r){return new Rd(r)}function MK(r){return new $d(r)}var LK=N1,zK=S1,BK=T1,VK=E1;function GK(r){return new hd(r)}function WK(r){return new gd(r)}function UK(r){return new xd(r)}function jK(r){return new sd(r)}var ek={};et(ek,{MAPE:()=>r6,MSE:()=>s6,binaryAccuracy:()=>HK,binaryCrossentropy:()=>qK,categoricalAccuracy:()=>XK,categoricalCrossentropy:()=>YK,cosineProximity:()=>QK,mape:()=>o6,meanAbsoluteError:()=>e6,meanAbsolutePercentageError:()=>t6,meanSquaredError:()=>n6,mse:()=>i6,precision:()=>ZK,recall:()=>JK,sparseCategoricalAccuracy:()=>KK});function HK(r,e){return Af(r,e)}function qK(r,e){return Wg(r,e)}function KK(r,e){return Ug(r,e)}function XK(r,e){return Df(r,e)}function YK(r,e){return $f(r,e)}function ZK(r,e){return gw(r,e)}function JK(r,e){return YT(r,e)}function QK(r,e){return Tf(r,e)}function e6(r,e){return kp(r,e)}function t6(r,e){return dl(r,e)}function r6(r,e){return dl(r,e)}function o6(r,e){return dl(r,e)}function n6(r,e){return ji(r,e)}function s6(r,e){return ji(r,e)}function i6(r,e){return ji(r,e)}var tk={};et(tk,{modelFromJSON:()=>d1});var rk={};et(rk,{l1:()=>l6,l1l2:()=>a6,l2:()=>u6});function a6(r){return new ec(r)}function l6(r){return _1(r)}function u6(r){return w1(r)}var tx=class extends fl{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof vo))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function rx(r,e){return re}var ox=class extends tx{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new Ne("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=rx:this.mode==="max"?this.monitorFunc=A1:this.monitor.indexOf("acc")!==-1?this.monitorFunc=A1:this.monitorFunc=rx,this.monitorFunc===rx&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===rx?Infinity:-Infinity}async onEpochEnd(e,t){await Ui(t);let o=this.getMonitorValue(t);o!=null&&(this.monitorFunc(o-this.minDelta,this.best)?(this.best=o,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function c6(r){return new ox(r)}var D1={earlyStopping:c6};var Zn;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Zn||(Zn={}));var $1;(function(r){let e;(function(t){t[t.LEGACY=0]="LEGACY",t[t.V1=1]="V1",t[t.V2=2]="V2"})(e=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})($1||($1={}));var ok={};function R1(r,e){let t={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:e};ok[r]=t}function nx(r){return ok[r]}function F1(r){delete ok[r]}function C(r,e,t,o,n){let s=e.inputParams[r];if(s&&s.inputIndexStart!==void 0){let i=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?i+1:s.inputIndexEnd;if(s.type==="tensor")return hr(e.inputNames[s.inputIndexStart],t,o,n);if(s.type==="tensors")return e.inputNames.slice(i,l).map(m=>hr(m,t,o,n));let u=hr(e.inputNames.slice(i)[0],t,o,n),c=u.dataSync();return s.type==="number"?c[0]:y.toNestedArray(u.shape,c)}let a=e.attrParams[r];return a&&a.value}function hr(r,e,t,o){let[n,s]=Zr(r);if(o!=null){let i=o.getHashTableHandleByName(n);if(i!=null)return i}let a=t.currentContextIds.find(i=>!!e[sx(n,i)]);return a!==void 0?e[sx(n,a)][s]:void 0}function O1(r,e,t){return e[sx(r,t.currentContextId)]}function zs(r,e){let[t,o]=Zr(r);return[sx(t,e&&e.currentContextId),o]}function sx(r,e){return e?`${r}-${e}`:r}function Zr(r){let e=r.split(":");return e.length===1?[r,0]:[e[0],Number(e[e.length-1])]}function Fd(r,e,t){let o=C("pad",r,e,t);if(o==="explicit"){o=C("explicitPaddings",r,e,t);let n=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)n[s][0]=o[s*2],n[s][1]=o[s*2+1];return n}return o}function Bs(r){return r.kept?r:Ro(r)}var nk={};et(nk,{json:()=>p6});var p6=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var sk={};et(sk,{json:()=>m6});var m6=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var ik={};et(ik,{json:()=>f6});var f6=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];var ak={};et(ak,{json:()=>d6});var d6=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number"}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];var lk={};et(lk,{json:()=>h6});var h6=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];var uk={};et(uk,{json:()=>g6});var g6=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var ck={};et(ck,{json:()=>x6});var x6=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];var pk={};et(pk,{json:()=>y6});var y6=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];var mk={};et(mk,{json:()=>b6});var b6=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]}];var fk={};et(fk,{json:()=>_6});var _6=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];var dk={};et(dk,{json:()=>w6});var w6=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var hk={};et(hk,{json:()=>k6});var k6=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var gk={};et(gk,{json:()=>v6});var v6=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];var xk={};et(xk,{json:()=>C6});var C6=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];var yk={};et(yk,{json:()=>I6});var I6=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];var bk={};et(bk,{json:()=>N6});var N6=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];var _k={};et(_k,{json:()=>S6});var S6=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];var ix=class{static get Instance(){return this._instance||(this._instance=new this)}constructor(){let e=[nk,sk,ik,ak,lk,uk,ck,dk,fk,pk,hk,gk,xk,yk,bk,_k,mk],t=[].concat(...e.map(o=>o.json));this.opMappers=t.reduce((o,n)=>(o[n.tfOpName]=n,o),{})}transformGraph(e,t={}){let o=e.node,n=[],s=[],a=[],i=o.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?n.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&a.push(h[g.name]),h),{}),l=[],u=[],c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let m=Object.keys(i);m.forEach(h=>{let g=i[h];g.inputNames.forEach(x=>{let[b]=zs(x);g.inputs.push(i[b]),i[b].children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=i[h];g.children.length===0&&u.push(g)}):Object.keys(p).forEach(h=>{let[g]=zs(h),x=i[g];x!=null&&(x.signatureKey=p[h],u.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=zs(h),x=i[g];x&&(x.signatureKey=c[h],l.push(x))}):l=n;let f={};e.library!=null&&e.library.function!=null&&(f=e.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:i,inputs:l,outputs:u,weights:s,placeholders:n,signature:t,functions:f};return a.length>0&&(d.initNodes=a),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,o)=>(t[e[o].name]=o,t),{})}mapNode(e){let t=nx(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let o={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(o.inputParams=t.inputs.reduce((n,s)=>(n[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},n),{})),t.attrs!=null&&(o.attrParams=t.attrs.reduce((n,s)=>{let a=s.type,i;switch(s.type){case"string":i=ax(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=ax(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":i=dx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=dx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":i=ux(e.attr,s.tfName,s.defaultValue||0),i===void 0&&!!s.tfDeprecatedName&&(i=ux(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":i=fx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=fx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":i=lx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=lx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":i=gx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=gx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":i=mx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=mx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":i=hx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=hx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":i=cx(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=cx(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":i=px(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=px(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":i=P1(e.attr,s.tfName,s.defaultValue),i===void 0&&!!s.tfDeprecatedName&&(i=P1(e.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${e.op}`)}return n[s.name]={value:i,type:a},n},{})),o}mapFunction(e){let t=e.nodeDef,o=[],n=[],s={};t!=null&&(s=t.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&n.push(p[m.name]),p),{}));let a=[],i=[];e.signature.inputArg.forEach(p=>{let[m]=zs(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:wk(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,a.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach(f=>{let[d]=zs(f);m.inputs.push(s[d]),s[d].children.push(m)})});let u=e.ret;e.signature.outputArg.forEach(p=>{let[m,f]=zs(u[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,i.push(d))});let c=this.mapArgsToSignature(e);return{nodes:s,inputs:a,outputs:i,weights:n,placeholders:o,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o),t),{}),outputs:e.signature.outputArg.reduce((t,o)=>(t[o.name]=this.mapArgToTensorInfo(o,e.ret),t),{})}}mapArgToTensorInfo(e,t){let o=e.name;return t!=null&&(o=t[o]),{name:o,dtype:e.type}}};function T6(r){let e=U().global;if(typeof e.atob!="undefined")return e.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function M1(r,e){let t=Array.isArray(r)?String.fromCharCode.apply(null,r):T6(r);return e?t:t.toLowerCase()}function ax(r,e,t,o=!1){let n=r[e];return n!=null?M1(n.s,o):t}function lx(r,e,t){let o=r[e];return o?o.b:t}function ux(r,e,t){let o=r[e]||{},n=o.i!=null?o.i:o.f!=null?o.f:t;return typeof n=="number"?n:parseInt(n,10)}function wk(r){switch(typeof r=="string"&&(r=Zn[r]),r){case Zn.DT_FLOAT:return"float32";case Zn.DT_INT32:case Zn.DT_INT64:case Zn.DT_INT8:case Zn.DT_UINT8:return"int32";case Zn.DT_BOOL:return"bool";case Zn.DT_DOUBLE:return"float32";case Zn.DT_STRING:return"string";default:return null}}function P1(r,e,t){let o=r[e];return o&&o.func?o.func.name:t}function cx(r,e,t){let o=r[e];return o&&o.type?wk(o.type):t}function px(r,e,t){let o=r[e];return o&&o.list&&o.list.type?o.list.type.map(n=>wk(n)):t}function L1(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(e=>typeof e.size=="number"?e.size:parseInt(e.size,10)):[]}function mx(r,e,t){let o=r[e];return o&&o.shape?L1(o.shape):t}function fx(r,e,t){let o=r[e];return o?((o.list.f&&o.list.f.length?o.list.f:o.list.i)||[]).map(n=>typeof n=="number"?n:parseInt(n,10)):t}function dx(r,e,t,o=!1){let n=r[e];return n&&n.list&&n.list.s?n.list.s.map(s=>M1(s,o)):t}function hx(r,e,t){let o=r[e];return o&&o.list&&o.list.shape?o.list.shape.map(n=>L1(n)):t}function gx(r,e,t){let o=r[e];return o&&o.list&&o.list.b?o.list.b:t}var kk=class{constructor(e,t,o){this.node=e,this.tensorMap=t,this.context=o,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,s)=>(n[s]=this.getAttr(s),n),{}))}getInput(e){return hr(e,this.tensorMap,this.context)}getAttr(e,t){let o=this.node.rawAttrs[e];if(o.tensor!=null)return hr(e,this.tensorMap,this.context);if(o.i!=null||o.f!=null)return ux(this.node.rawAttrs,e,t);if(o.s!=null)return ax(this.node.rawAttrs,e,t);if(o.b!=null)return lx(this.node.rawAttrs,e,t);if(o.shape!=null)return mx(this.node.rawAttrs,e,t);if(o.type!=null)return cx(this.node.rawAttrs,e,t);if(o.list!=null){if(o.list.i!=null||o.list.f!=null)return fx(this.node.rawAttrs,e,t);if(o.list.s!=null)return dx(this.node.rawAttrs,e,t);if(o.list.shape!=null)return hx(this.node.rawAttrs,e,t);if(o.list.b!=null)return gx(this.node.rawAttrs,e,t);if(o.list.type!=null)return px(this.node.rawAttrs,e,t)}return t}};var z1=(r,e,t)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[Q(C("a",r,e,t),C("b",r,e,t))];case"AddN":return[i_(C("tensors",r,e,t))];case"FloorMod":case"Mod":return[qm(C("a",r,e,t),C("b",r,e,t))];case"Mul":return[O(C("a",r,e,t),C("b",r,e,t))];case"RealDiv":case"Div":return[de(C("a",r,e,t),C("b",r,e,t))];case"DivNoNan":return[zm(C("a",r,e,t),C("b",r,e,t))];case"FloorDiv":return[_u(C("a",r,e,t),C("b",r,e,t))];case"Sub":return[ue(C("a",r,e,t),C("b",r,e,t))];case"Minimum":return[As(C("a",r,e,t),C("b",r,e,t))];case"Maximum":return[qr(C("a",r,e,t),C("b",r,e,t))];case"Pow":return[Rr(C("a",r,e,t),C("b",r,e,t))];case"SquaredDifference":return[Vu(C("a",r,e,t),C("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var B1=(r,e,t)=>{switch(r.op){case"Abs":case"ComplexAbs":return[Tt(C("x",r,e,t))];case"Acos":return[Nm(C("x",r,e,t))];case"Acosh":return[Sm(C("x",r,e,t))];case"Asin":return[Em(C("x",r,e,t))];case"Asinh":return[Am(C("x",r,e,t))];case"Atan":return[Dm(C("x",r,e,t))];case"Atan2":return[$m(C("x",r,e,t),C("y",r,e,t))];case"Atanh":return[Rm(C("x",r,e,t))];case"Ceil":return[Om(C("x",r,e,t))];case"Complex":return[bo(C("real",r,e,t),C("imag",r,e,t))];case"Cos":return[Ia(C("x",r,e,t))];case"Cosh":return[Nu(C("x",r,e,t))];case"Elu":return[Ss(C("x",r,e,t))];case"Erf":return[Bm(C("x",r,e,t))];case"Exp":return[Xt(C("x",r,e,t))];case"Expm1":return[Vm(C("x",r,e,t))];case"Floor":return[Ts(C("x",r,e,t))];case"Log":return[ir(C("x",r,e,t))];case"Log1p":return[Au(C("x",r,e,t))];case"Imag":return[Tu(C("x",r,e,t))];case"Neg":return[je(C("x",r,e,t))];case"Reciprocal":return[Xm(C("x",r,e,t))];case"Real":return[al(C("x",r,e,t))];case"Relu":return[Ir(C("x",r,e,t))];case"Round":return[Ym(C("x",r,e,t))];case"Selu":return[Mu(C("x",r,e,t))];case"Sigmoid":return[Ur(C("x",r,e,t))];case"Sin":return[Lu(C("x",r,e,t))];case"Sign":return[Jm(C("x",r,e,t))];case"Sinh":return[zu(C("x",r,e,t))];case"Softplus":return[Es(C("x",r,e,t))];case"Sqrt":return[xt(C("x",r,e,t))];case"Square":return[Pe(C("x",r,e,t))];case"Tanh":return[Mi(C("x",r,e,t))];case"Tan":return[rf(C("x",r,e,t))];case"ClipByValue":return[nr(C("x",r,e,t),C("clipValueMin",r,e,t),C("clipValueMax",r,e,t))];case"Relu6":return[Ou(C("x",r,e,t))];case"Rsqrt":return[Pu(hr(r.inputNames[0],e,t))];case"Prod":return[Ru(C("x",r,e,t),C("axes",r,e,t))];case"LeakyRelu":return[Sa(C("x",r,e,t),C("alpha",r,e,t))];case"Prelu":return[Da(C("x",r,e,t),C("alpha",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Co(r,e,t=""){if(!(typeof r=="number"||typeof e=="number")){y.assert(r.length===e.length,()=>t+` Shapes ${r} and ${e} must match`);for(let o=0;ot+` Shapes ${r} and ${e} must match`)}}}function V1(r){return!(typeof r=="number"||r.some(e=>e<0))}function $p(r,e,t){let o=xx(r,t),n=!V1(o);if(n&&e.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${o}`);if(n&&e.forEach(s=>{o=xx(s.shape,o)}),!V1(o))throw new Error(`Non-fully-defined elementShape: ${o}`);return o}function xx(r,e){if(typeof r=="number")return e;if(typeof e=="number")return r;if(r.length!==e.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${e}`);let t=[];for(let o=0;o=0&&s>=0&&n!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${e}`);t[o]=n>=0?n:s}return t}var vk=class{constructor(e,t,o,n,s,a,i){this.name=e,this.dtype=t,this.maxSize=o,this.elementShape=n,this.identicalElementShapes=s,this.dynamicSize=a,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=le(0),Dt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let o=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Co(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),o.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(o.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);o.tensor=t,Dt(t),o.written=!0,this.tensors[e]=o}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((o,n)=>this.write(o,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${o} vs. ${this.maxSize})`);this.writeMany(e,ur(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let o=0,n=e.map(l=>(o+=l,o));if(o!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${o}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let s=o===0?0:t.size/o,a=[];V(()=>{t=L(t,[1,o,s]);for(let l=0;l{if(o!==s.dtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${s.dtype}`);Co(t,s.shape,"TensorList shape mismatch: "),At(s)}),this.idTensor=le(0),this.maxNumElements=n,At(this.idTensor)}get id(){return this.idTensor.id}copy(){return new oc([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,o=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(o!==-1&&this.tensors.length!==o)throw new Error(`Operation expected a list with ${o} elements but got a list with ${this.tensors.length} elements.`);return Co(e,this.elementShape,"TensorList shape mismatch: "),V(()=>{let n=this.tensors.map(s=>L(s,e));return Bt(n,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let o=this.tensors.pop();return Co(o.shape,e,"TensorList shape mismatch: "),L(o,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Co(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");At(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,o){if(o!==this.elementDtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return Co(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Co(this.elementShape,t.shape,"TensorList shape mismatch: "),At(t),this.tensors[e]=t}gather(e,t,o){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return Co(this.elementShape,o,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?Dr([],[0].concat(this.elementShape)):V(()=>{let n=e.map(s=>L(this.tensors[s],o));return Bt(n,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return Co(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?Dr([],[0].concat(this.elementShape)):V(()=>{let o=this.tensors.map(n=>L(n,t));return Je(o,0)})}};function L1(r,e,t){let o=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==t)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${t}`);let n=r.shape.slice(1);Co(n,e,"TensorList shape mismatch: ");let s=ur(r);return new oc(s,e,o)}function z1(r,e,t){return new oc([],r,e,t)}function B1(r,e,t,o){if(e.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${e.length} vs. ${r.shape[0]}`);let n=Math.max(...e);if(o!=null&&o!==-1&&n>=o)throw new Error(`Max index must be < array size (${n} vs. ${o})`);let s=new oc([],t,r.dtype,o),a=ur(r,0);return e.forEach((i,l)=>{s.setItem(i,a[l])}),s}function V1(r,e,t){let o=0,n=e.map(l=>(o+=l,o));if(o!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${o}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let s=o===0?0:t.size/o,a=[];B(()=>{t=L(t,[1,o,s]);for(let l=0;l{if(o!==s.dtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${s.dtype}`);Co(t,s.shape,"TensorList shape mismatch: "),Dt(s)}),this.idTensor=le(0),this.maxNumElements=n,Dt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new nc([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,o=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(o!==-1&&this.tensors.length!==o)throw new Error(`Operation expected a list with ${o} elements but got a list with ${this.tensors.length} elements.`);Co(e,this.elementShape,"TensorList shape mismatch: ");let n=$p(this.elementShape,this.tensors,e);return B(()=>{let s=this.tensors.map(a=>L(a,n));return Bt(s,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let o=$p(this.elementShape,this.tensors,e),n=this.tensors.pop();return Co(n.shape,e,"TensorList shape mismatch: "),L(n,o)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Co(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Dt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,o){if(o!==this.elementDtype)throw new Error(`Invalid data types; op elements ${o}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Co(this.tensors[e].shape,t,"TensorList shape mismatch: ");let n=$p(this.elementShape,this.tensors,t);return L(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Co(this.elementShape,t.shape,"TensorList shape mismatch: "),Dt(t),this.tensors[e]=t}gather(e,t,o){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);Co(this.elementShape,o,"TensorList shape mismatch: "),e=e.slice(0,this.size());let n=$p(this.elementShape,this.tensors,o);return e.length===0?Dr([],[0].concat(n)):B(()=>{let s=e.map(a=>L(this.tensors[a],n));return Bt(s,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Co(this.elementShape,t,"TensorList shape mismatch: ");let o=$p(this.elementShape,this.tensors,t);return this.size()===0?Dr([],[0].concat(o)):B(()=>{let n=this.tensors.map(s=>L(s,o));return Je(n,0)})}};function G1(r,e,t){let o=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==t)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${t}`);let n=r.shape.slice(1);Co(n,e,"TensorList shape mismatch: ");let s=ur(r);return new nc(s,e,o)}function W1(r,e,t){return new nc([],r,e,t)}function U1(r,e,t,o){if(e.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${e.length} vs. ${r.shape[0]}`);let n=Math.max(...e);if(o!=null&&o!==-1&&n>=o)throw new Error(`Max index must be < array size (${n} vs. ${o})`);let s=new nc([],t,r.dtype,o),a=ur(r,0);return e.forEach((i,l)=>{s.setItem(i,a[l])}),s}function j1(r,e,t){let o=0,n=e.map(c=>(o+=c,o));if(o!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${o}, and tensor's shape is: ${r.shape}`);let s=o===0?0:r.size/o,a=V(()=>{let l=[];r=L(r,[1,o,s]);for(let u=0;u{switch(r.op){case"If":case"StatelessIf":{let o=C("thenBranch",r,e,t),n=C("elseBranch",r,e,t),s=C("cond",r,e,t),a=C("args",r,e,t);return(await s.data())[0]?t.functionMap[o].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap):t.functionMap[n].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap)}case"While":case"StatelessWhile":{let o=C("body",r,e,t),n=C("cond",r,e,t),s=C("args",r,e,t),a=await t.functionMap[n].executeFunctionAsync(s,t.tensorArrayMap,t.tensorListMap),i=s.map(c=>c.id),l=await a[0].data();a.forEach(c=>{!c.kept&&i.indexOf(c.id)===-1&&c.dispose()});let u=s;for(;l[0];){let c=u;u=await t.functionMap[o].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);let p=u.map(f=>f.id);c.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await t.functionMap[n].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);l=await m[0].data(),m.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return u}case"LoopCond":{let o=C("pred",r,e,t);return[Ls(o)]}case"Switch":{let o=C("pred",r,e,t),n=C("data",r,e,t);return n.kept||(n=Ls(n)),(await o.data())[0]?[void 0,n]:[n,void 0]}case"Merge":{let o=r.inputNames.find(n=>hr(n,e,t)!==void 0);if(o){let n=hr(o,e,t);return[Ls(n)]}return}case"Enter":{let o=C("frameName",r,e,t),n=C("tensor",r,e,t);return t.enterFrame(o),[Ls(n)]}case"Exit":{let o=C("tensor",r,e,t);return t.exitFrame(),[Ls(o)]}case"NextIteration":{let o=C("tensor",r,e,t);return t.nextIteration(),[Ls(o)]}case"TensorArrayV3":{let o=C("size",r,e,t),n=C("dtype",r,e,t),s=C("elementShape",r,e,t),a=C("dynamicSize",r,e,t),i=C("clearAfterRead",r,e,t),l=C("identicalElementShapes",r,e,t),u=C("name",r,e,t),c=new yk(u,n,o,s,l,a,i);return t.addTensorArray(c),[c.idTensor,le(1)]}case"TensorArrayWriteV3":{let o=C("tensorArrayId",r,e,t),n=C("index",r,e,t),s=C("tensor",r,e,t),a=t.getTensorArray(o.id);return a.write(n,s),[a.idTensor]}case"TensorArrayReadV3":{let o=C("tensorArrayId",r,e,t),n=C("index",r,e,t);return[t.getTensorArray(o.id).read(n)]}case"TensorArrayGatherV3":{let o=C("tensorArrayId",r,e,t),n=C("indices",r,e,t),s=C("dtype",r,e,t);return[t.getTensorArray(o.id).gather(n,s)]}case"TensorArrayScatterV3":{let o=C("tensorArrayId",r,e,t),n=C("indices",r,e,t),s=C("tensor",r,e,t),a=t.getTensorArray(o.id);return a.scatter(n,s),[a.idTensor]}case"TensorArrayConcatV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id),s=C("dtype",r,e,t);return[n.concat(s)]}case"TensorArraySplitV3":{let o=C("tensorArrayId",r,e,t),n=C("tensor",r,e,t),s=C("lengths",r,e,t),a=t.getTensorArray(o.id);return a.split(s,n),[a.idTensor]}case"TensorArraySizeV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return[le(n.size(),"int32")]}case"TensorArrayCloseV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return n.clearAndClose(),[n.idTensor]}case"TensorListSetItem":{let o=C("tensorListId",r,e,t),n=C("index",r,e,t),s=C("tensor",r,e,t),a=t.getTensorList(o.id);return a.setItem(n,s),[a.idTensor]}case"TensorListGetItem":{let o=C("tensorListId",r,e,t),n=C("index",r,e,t),s=C("elementShape",r,e,t),a=C("elementDType",r,e,t);return[t.getTensorList(o.id).getItem(n,s,a)]}case"TensorListScatterV2":case"TensorListScatter":{let o=C("indices",r,e,t),n=C("tensor",r,e,t),s=C("elementShape",r,e,t),a=C("numElements",r,e,t),i=B1(n,o,s,a);return t.addTensorList(i),[i.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let o=C("elementShape",r,e,t),n=C("elementDType",r,e,t),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let a=C(s,r,e,t),i=z1(o,n,a);return t.addTensorList(i),[i.idTensor]}case"TensorListGather":{let o=C("tensorListId",r,e,t),n=C("indices",r,e,t),s=C("elementShape",r,e,t),a=C("elementDType",r,e,t);return[t.getTensorList(o.id).gather(n,a,s)]}case"TensorListStack":{let o=C("tensorListId",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t),a=C("numElements",r,e,t);return[t.getTensorList(o.id).stack(n,s,a)]}case"TensorListFromTensor":{let o=C("tensor",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t),a=L1(o,n,s);return t.addTensorList(a),[a.idTensor]}case"TensorListConcat":{let o=C("tensorListId",r,e,t),n=t.getTensorList(o.id),s=C("dtype",r,e,t),a=C("elementShape",r,e,t);return[n.concat(s,a)]}case"TensorListPushBack":{let o=C("tensorListId",r,e,t),n=C("tensor",r,e,t),s=t.getTensorList(o.id);return s.pushBack(n),[s.idTensor]}case"TensorListPopBack":{let o=C("tensorListId",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t);return[t.getTensorList(o.id).popBack(n,s)]}case"TensorListSplit":{let o=C("tensor",r,e,t),n=C("elementShape",r,e,t),s=C("lengths",r,e,t),a=V1(o,s,n);return t.addTensorList(a),[a.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function W1(r,e,t){let[o,n]=C("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=o==="fusedbatchnorm",l=C("numArgs",r,e,t);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(i)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let u=C("strides",r,e,t),c=Dd(r,e,t),p=C("dataFormat",r,e,t).toUpperCase(),m=C("dilations",r,e,t),[f,d]=C("args",r,e,t),h=C("leakyreluAlpha",r,e,t);return{stride:u,pad:c,dataFormat:p,dilations:m,biasArg:f,preluArg:d,activationFunc:n,leakyreluAlpha:h}}var U1=(r,e,t)=>{switch(r.op){case"Conv1D":{let o=C("stride",r,e,t),n=C("pad",r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilation",r,e,t);return[vu(C("x",r,e,t),C("filter",r,e,t),o,n,s,a)]}case"Conv2D":{let o=C("strides",r,e,t),n=Dd(r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilations",r,e,t);return[jr(C("x",r,e,t),C("filter",r,e,t),[o[1],o[2]],n,s,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=W1(r,e,t);return[zn.conv2d({x:C("x",r,e,t),filter:C("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=W1(r,e,t);return[zn.depthwiseConv2d({x:C("x",r,e,t),filter:C("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=C("outputShape",r,e,t),n=C("strides",r,e,t),s=Dd(r,e,t);return[Cu(C("x",r,e,t),C("filter",r,e,t),o,[n[1],n[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=C("strides",r,e,t),n=Dd(r,e,t),s=C("dilations",r,e,t),a=C("dataFormat",r,e,t).toUpperCase();return[Cs(C("input",r,e,t),C("filter",r,e,t),[o[1],o[2]],n,a,[s[1],s[2]])]}case"Conv3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilations",r,e,t);return[Rm(C("x",r,e,t),C("filter",r,e,t),[o[1],o[2],o[3]],n,s,[a[1],a[2],a[3]])]}case"AvgPool":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[va(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPool":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Ea(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPoolWithArgmax":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t),a=C("includeBatchInIndex",r,e,t),{result:i,indexes:l}=C_(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n,a);return[i,l]}case"AvgPool3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Dm(C("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"MaxPool3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Gm(C("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"Dilation2D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("dilations",r,e,t),a=o[1],i=o[2],l=s[1],u=s[2];return[Om(C("x",r,e,t),C("filter",r,e,t),[a,i],n,[l,u],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var j1=(r,e,t)=>{switch(r.op){case"Fill":{let o=C("shape",r,e,t),n=C("dtype",r,e,t),s=C("value",r,e,t);return[Na(o,s,n)]}case"LinSpace":{let o=C("start",r,e,t),n=C("stop",r,e,t),s=C("num",r,e,t);return[y_(o,n,s)]}case"Multinomial":{let o=C("logits",r,e,t),n=C("numSamples",r,e,t),s=C("seed",r,e,t);return[I_(o,n,s)]}case"OneHot":{let o=C("indices",r,e,t),n=C("depth",r,e,t),s=C("onValue",r,e,t),a=C("offValue",r,e,t);return[ks(o,n,s,a)]}case"Ones":return[Cr(C("shape",r,e,t),C("dtype",r,e,t))];case"OnesLike":return[er(C("x",r,e,t))];case"RandomUniform":return[Es(C("shape",r,e,t),C("minval",r,e,t),C("maxval",r,e,t),C("dtype",r,e,t))];case"Range":{let o=C("start",r,e,t),n=C("stop",r,e,t),s=C("step",r,e,t);return[Zc(o,n,s,C("dtype",r,e,t))]}case"TruncatedNormal":{let o=C("shape",r,e,t),n=C("mean",r,e,t),s=C("stdDev",r,e,t),a=C("seed",r,e,t);return[Vu(o,n,s,C("dtype",r,e,t),a)]}case"Zeros":return[gt(C("shape",r,e,t),C("dtype",r,e,t))];case"ZerosLike":return[Ie(C("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function bk(r,e,t){let o=C("boxes",r,e,t),n=C("scores",r,e,t),s=C("maxOutputSize",r,e,t),a=C("iouThreshold",r,e,t),i=C("scoreThreshold",r,e,t),l=C("softNmsSigma",r,e,t);return{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}}var H1=async(r,e,t)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}=bk(r,e,t),u=await Ds.nonMaxSuppressionWithScoreAsync(o,n,s,a,i,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=bk(r,e,t),l=C("padToMaxOutputSize",r,e,t),u=await Ds.nonMaxSuppressionPaddedAsync(o,n,s,a,i,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=bk(r,e,t);return[await Ds.nonMaxSuppressionAsync(o,n,s,a,i)]}case"Where":{let o=oe(C("condition",r,e,t),"bool"),n=[await rf(o)];return o.dispose(),n}case"ListDiff":return O_(C("x",r,e,t),C("y",r,e,t));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var q1=(r,e,t)=>{switch(r.op){case"TopKV2":{let o=C("x",r,e,t),n=C("k",r,e,t),s=C("sorted",r,e,t),a=ef(o,n,s);return[a.values,a.indices]}case"Unique":{let o=C("x",r,e,t),n=Qc(o);return[n.values,n.indices]}case"UniqueV2":{let o=C("x",r,e,t),n=C("axis",r,e,t),s=Qc(o,n);return[s.values,s.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var K1=(r,e,t)=>{switch(r.op){case"Const":return e[r.name];case"PlaceholderWithDefault":let o=C("default",r,e,t);return[hr(r.name,e,t)||o];case"Placeholder":return[hr(r.name,e,t)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let u=C("x",r,e,t);return[Ls(u)]}case"IdentityN":return C("x",r,e,t).map(u=>Ls(u));case"Snapshot":let n=C("x",r,e,t);return[Ls(n)];case"Shape":return[Vt(C("x",r,e,t).shape,"int32")];case"ShapeN":return C("x",r,e,t).map(u=>Vt(u.shape));case"Size":return[le(C("x",r,e,t).size,"int32")];case"Rank":return[le(C("x",r,e,t).rank,"int32")];case"NoOp":return[le(1)];case"Print":let s=C("x",r,e,t),a=C("data",r,e,t),i=C("message",r,e,t),l=C("summarize",r,e,t);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let u=0;ue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let o=await e.data();return this.tensorMap.forEach(n=>n.dispose()),this.tensorMap.clear(),V(()=>{let n=ur(t),s=o.length,a=n.length;y.assert(s===a,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${a} elements.`);for(let i=0;i{let n=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let n=C("keyDType",r,e,t),s=C("valueDType",r,e,t),a=new _k(n,s);return o.addHashTable(r.name,a),[a.handle]}case"LookupTableImport":case"LookupTableImportV2":{let n=C("tableHandle",r,e,t,o),s=C("keys",r,e,t),a=C("values",r,e,t);return[await o.getHashTableById(n.id).import(s,a)]}case"LookupTableFind":case"LookupTableFindV2":{let n=C("tableHandle",r,e,t,o),s=C("keys",r,e,t),a=C("defaultValue",r,e,t);return[await o.getHashTableById(n.id).find(s,a)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Y1=(r,e,t)=>{switch(r.op){case"ResizeBilinear":{let o=C("images",r,e,t),n=C("size",r,e,t),s=C("alignCorners",r,e,t),a=C("halfPixelCenters",r,e,t);return[Ds.resizeBilinear(o,[n[0],n[1]],s,a)]}case"ResizeNearestNeighbor":{let o=C("images",r,e,t),n=C("size",r,e,t),s=C("alignCorners",r,e,t),a=C("halfPixelCenters",r,e,t);return[Ds.resizeNearestNeighbor(o,[n[0],n[1]],s,a)]}case"CropAndResize":{let o=C("image",r,e,t),n=C("boxes",r,e,t),s=C("boxInd",r,e,t),a=C("cropSize",r,e,t),i=C("method",r,e,t),l=C("extrapolationValue",r,e,t);return[Ds.cropAndResize(o,n,s,a,i,l)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Z1=(r,e,t)=>{switch(r.op){case"Equal":return[_o(C("a",r,e,t),C("b",r,e,t))];case"NotEqual":return[Ln(C("a",r,e,t),C("b",r,e,t))];case"Greater":return[Qt(C("a",r,e,t),C("b",r,e,t))];case"GreaterEqual":return[to(C("a",r,e,t),C("b",r,e,t))];case"Less":return[Tu(C("a",r,e,t),C("b",r,e,t))];case"LessEqual":return[Oo(C("a",r,e,t),C("b",r,e,t))];case"LogicalAnd":return[fr(C("a",r,e,t),C("b",r,e,t))];case"LogicalNot":return[Ta(C("a",r,e,t))];case"LogicalOr":return[Du(C("a",r,e,t),C("b",r,e,t))];case"Select":case"SelectV2":return[Dt(C("condition",r,e,t),C("a",r,e,t),C("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var J1=(r,e,t)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[We(C("a",r,e,t),C("b",r,e,t),C("transposeA",r,e,t),C("transposeB",r,e,t))];case"Transpose":return[Ue(C("x",r,e,t),C("perm",r,e,t))];case"_FusedMatMul":let[o,n]=C("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=C("numArgs",r,e,t),l=C("leakyreluAlpha",r,e,t);if(s){if(a&&i!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&i!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[u,c]=C("args",r,e,t);return[zn.matMul({a:C("a",r,e,t),b:C("b",r,e,t),transposeA:C("transposeA",r,e,t),transposeB:C("transposeB",r,e,t),bias:u,activation:n,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Q1=(r,e,t)=>{switch(r.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[On(C("x",r,e,t),C("mean",r,e,t),C("variance",r,e,t),C("offset",r,e,t),C("scale",r,e,t),C("epsilon",r,e,t))];case"FusedBatchNormV3":return[On(C("x",r,e,t),C("mean",r,e,t),C("variance",r,e,t),C("offset",r,e,t),C("scale",r,e,t),C("epsilon",r,e,t))];case"LRN":return[zm(C("x",r,e,t),C("radius",r,e,t),C("bias",r,e,t),C("alpha",r,e,t),C("beta",r,e,t))];case"Softmax":return[$a(C("x",r,e,t))];case"LogSoftmax":return[Au(C("x",r,e,t))];case"SparseToDense":return[of(C("sparseIndices",r,e,t),C("outputShape",r,e,t),C("sparseValues",r,e,t),C("defaultValue",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eE=(r,e,t)=>{switch(r.op){case"Max":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ar(C("x",r,e,t),a,i)]}case"Mean":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ht(C("x",r,e,t),a,i)]}case"Min":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[Li(C("x",r,e,t),a,i)]}case"Sum":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ye(C("x",r,e,t),a,i)]}case"All":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[_u(C("x",r,e,t),a,i)]}case"Any":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[nl(C("x",r,e,t),a,i)]}case"ArgMax":{let a=C("axis",r,e,t);return[sl(C("x",r,e,t),a)]}case"ArgMin":{let a=C("axis",r,e,t);return[Im(C("x",r,e,t),a)]}case"Prod":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[$u(C("x",r,e,t),a,i)]}case"Cumsum":{let a=C("axis",r,e,t),i=C("exclusive",r,e,t),l=C("reverse",r,e,t);return[Nu(C("x",r,e,t),a,i,l)]}case"Bincount":let o=C("x",r,e,t),n=C("weights",r,e,t),s=C("size",r,e,t);return[l_(o,n,s)];case"DenseBincount":{let a=C("x",r,e,t),i=C("weights",r,e,t),l=C("size",r,e,t),u=C("binaryOutput",r,e,t);return[f_(a,i,l,u)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tE=(r,e,t)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=C("n",r,e,t),n=C("axis",r,e,t),s=C("tensors",r,e,t);return s=s.slice(0,o),[Je(s,n)]}case"Gather":{let o=C("x",r,e,t),n=C("indices",r,e,t);return[Pn(o,oe(n,"int32"),0)]}case"GatherV2":{let o=C("axis",r,e,t),n=C("batchDims",r,e,t),s=C("x",r,e,t),a=C("indices",r,e,t);return[Pn(s,oe(a,"int32"),o,n)]}case"Reverse":{let o=C("dims",r,e,t),n=[];for(let a=0;a{let o=C("axis",r,e,t),n=C("tensors",r,e,t),s=n[0].shape,a=wo(n[0]).shape,i=n.map(l=>{let u=y.arraysEqual(l.shape,s);if(!u&&!y.arraysEqual(wo(l).shape,a))throw new Error("the input tensors shape does not match");return u?l:L(l,s)});return[Bt(i,o)]});case"Unpack":{let o=C("axis",r,e,t),n=C("tensor",r,e,t);return ur(n,o)}case"Tile":{let o=C("reps",r,e,t);return[Fo(C("x",r,e,t),o)]}case"Split":case"SplitV":{let o=C("axis",r,e,t),n=C("numOrSizeSplits",r,e,t),s=C("x",r,e,t);return lr(s,n,o)}case"ScatterNd":{let o=C("indices",r,e,t),n=C("values",r,e,t),s=C("shape",r,e,t);return[L_(o,n,s)]}case"GatherNd":{let o=C("x",r,e,t),n=C("indices",r,e,t);return[z_(o,n)]}case"SparseToDense":{let o=C("sparseIndices",r,e,t),n=C("outputShape",r,e,t),s=C("sparseValues",r,e,t),a=C("defaultValue",r,e,t);return[of(o,s,n,s.dtype===a.dtype?a:oe(a,s.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rE=(r,e,t)=>{switch(r.op){case"FFT":return[Ra(C("x",r,e,t))];case"IFFT":return[zi(C("x",r,e,t))];case"RFFT":return[Fa(C("x",r,e,t))];case"IRFFT":return[zu(C("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oE=(r,e,t)=>{switch(r.op){case"Cast":return[oe(C("x",r,e,t),C("dtype",r,e,t))];case"ExpandDims":{let o=C("axis",r,e,t);return[sr(C("x",r,e,t),o)]}case"Squeeze":{let o=C("axis",r,e,t);return[wo(C("x",r,e,t),o)]}case"Reshape":return[L(C("x",r,e,t),C("shape",r,e,t))];case"MirrorPad":return[Wm(C("x",r,e,t),C("padding",r,e,t),C("mode",r,e,t))];case"PadV2":case"Pad":return[$r(C("x",r,e,t),C("padding",r,e,t),C("constantValue",r,e,t))];case"SpaceToBatchND":{let o=C("blockShape",r,e,t),n=C("paddings",r,e,t);return[Aa(C("x",r,e,t),o,n)]}case"BatchToSpaceND":{let o=C("blockShape",r,e,t),n=C("crops",r,e,t);return[Ca(C("x",r,e,t),o,n)]}case"DepthToSpace":{let o=C("blockSize",r,e,t),n=C("dataFormat",r,e,t).toUpperCase();return[Fm(C("x",r,e,t),o,n)]}case"BroadcastTo":return[il(C("x",r,e,t),C("shape",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function wk(r,e,t,o){let n=((s,a,i)=>{switch(s.category){case"arithmetic":return V(()=>P1(s,a,i));case"basic_math":return V(()=>M1(s,a,i));case"control":return G1(s,a,i);case"convolution":return V(()=>U1(s,a,i));case"creation":return V(()=>j1(s,a,i));case"dynamic":return H1(s,a,i);case"evaluation":return V(()=>q1(s,a,i));case"image":return V(()=>Y1(s,a,i));case"graph":return V(()=>K1(s,a,i));case"logical":return V(()=>Z1(s,a,i));case"matrices":return V(()=>J1(s,a,i));case"normalization":return V(()=>Q1(s,a,i));case"reduction":return V(()=>eE(s,a,i));case"slice_join":return V(()=>tE(s,a,i));case"spectral":return V(()=>rE(s,a,i));case"transformation":return V(()=>oE(s,a,i));case"hash_table":return X1(s,a,i,o);case"custom":let l=Qg(s.op);if(l&&l.customExecutor)return l.customExecutor(new xk(s,a,i));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,e,t);return y.isPromise(n)?n.then(s=>[].concat(s)):[].concat(n)}var mx=class{constructor(e={},t={},o={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=o,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function vk(r,e,t,o){let n=new Set,s=[],a=null,i=null,l=new Set,u=Object.keys(r).map(m=>Zr(m)[0]),c=[];o!=null&&(c=o.map(m=>Zr(m.name)[0]));let p=[...e];for(;p.length>0;){let m=p.pop();if((kk(m)||I6(m)||N6(m))&&a==null&&(a=m,i=a.children.map(f=>f.name).filter(f=>n.has(f))),n.add(m.name),t[m.name]==null&&u.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{l.has(f.name)||(l.add(f.name),p.push(f))})}}return{inputs:r,outputs:e,usedNodes:n,missingInputs:s,dynamicNode:a,syncInputs:i}}function nE(r,e,t){let{usedNodes:o,inputs:n}=t,s=[],a=Object.keys(n).map(c=>Zr(c)[0]).map(c=>r.nodes[c]),i=r.initNodes;a.forEach(c=>{o.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{o.has(c.name)&&s.push(c)}),i!=null&&i.forEach(c=>{o.has(c.name)&&s.push(c)});let l=new Set,u=[];for(;s.length>0;){let c=s.pop();l.add(c.name),e[c.name]||u.push(c),c.children.forEach(p=>{!l.has(p.name)&&o.has(p.name)&&p.inputs.every(m=>l.has(m.name))&&s.push(p)})}return u}var S6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],T6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],E6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function kk(r){return S6.indexOf(r.op)>=0}function I6(r){return T6.indexOf(r.op)>=0}function N6(r){return E6.indexOf(r.op)>=0}var Dp=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(o=>{this._functionExecutorMap[o]=new Dp(e.functions[o],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(o=>e[o].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let o=e.map(s=>s.name).sort(),n=t.map(s=>s.name).sort();return o.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){let o=vk(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:s,syncInputs:a}=o;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${a}]`);if(n.length>0){let i=t.map(u=>u.name),l=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${l}]. Missing the following inputs: [${n}]`)}return nE(this.graph,this.weightMap,o)}execute(e,t){e=this.mapInputs(e);let o=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let n=o.map(p=>this.graph.nodes[Zr(p)[0]]),s=t.map(p=>Zr(p)[0]),a=s.map(p=>this.graph.nodes[p]);a.length===0&&(a=this._outputs);let i=this.getCompilationKey(n,a),l=this.compiledMap.get(i);l==null&&(l=this.compile(e,a),this.compiledMap.set(i,l));let u={},c={};return V(()=>{let p=new mx(this.weightMap,u,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(e).forEach(h=>{let[g,x]=Zr(h),b=[];b[x]=e[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hhr(h,m,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(o=>e[o]).map(o=>o.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,o,n,s,a,i){t.category==="control"||a.indexOf(e)!==-1||(o[e].forEach(l=>{l!=null&&(i[l.id]=(i[l.id]||0)+t.children.length)}),t.inputs.forEach(l=>{if(l.category!=="control"){let u=$1(l.name,o,n);u!=null&&u.forEach(c=>{if(c&&!s.has(c.id)){let p=i[c.id];p===1?(c.dispose(),delete i[c.id]):p!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,o=!1,n={},s={}){o||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let a=new mx(this.weightMap,n,s,this.functionExecutorMap),i=await this.executeWithControlFlow(e,a,t,o),l=t.map(m=>hr(m,i,a)),u=l.map(m=>m.id),c=Object.keys(e).map(m=>e[m].id),p=new Set([...u,...c,...this.weightIds]);return Object.keys(i).forEach(m=>{i[m].forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&a.dispose(p),l}async executeFunctionAsync(e,t,o){let n=e.reduce((s,a,i)=>(s[this.inputs[i].name]=a,s),{});return this._executeAsync(n,this.outputNodes,!0,t,o)}async executeWithControlFlow(e,t,o,n){let s=Object.keys(e),a=s.map(_=>this.graph.nodes[Zr(_)[0]]),i=o.map(_=>Zr(_)[0]),l=i.map(_=>this.graph.nodes[_]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:c,dynamicNode:p,syncInputs:m}=vk(e,l,this.weightMap,this._initNodes),f=[...a,...this.graph.weights,...this._initNodes||[]].map(_=>({node:_,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(_=>{let[w,v]=Zr(_),$=[];$[v]=e[_],d[w]=$});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let _=this.processStack(a,f,t,d,x,g,i,h,u);await Promise.all(_)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=l.filter(_=>!kk(_)&&!hr(_.name,d,t)).map(_=>_.name);if(b.length>0){let _="";throw p!=null&&(_=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${_}`)}return d}processStack(e,t,o,n,s,a,i,l,u){let c=[];for(;t.length>0;){let p=t.pop();o.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&C("isConstant",p.node,n,o)&&([m]=Ms(p.node.name,o)),n[p.node.name]==null){let f=wk(p.node,n,o,this._resourceManager);m||([m]=Ms(p.node.name,o));let d=o.currentContext;y.isPromise(f)?c.push(f.then(h=>(n[m]=h,o.currentContext=d,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u),h))):(n[m]=f,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u))}else this.processChildNodes(p.node,t,o,n,s,u)}return c}processChildNodes(e,t,o,n,s,a){e.children.forEach(i=>{let[l]=Ms(i.name,o);s[l]||!a.has(i.name)||(i.op==="Merge"?i.inputNames.some(u=>!!hr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})):i.inputNames.every(u=>!!hr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let o=e[t],[n]=Zr(t),s=this.graph.nodes[n];if(s.attrParams.shape&&s.attrParams.shape.value){let a=s.attrParams.shape.value,i=a.length===o.shape.length&&o.shape.every((l,u)=>a[u]===-1||a[u]===l);y.assert(i,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${a}], but was [${o.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(o.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${o.dtype}`)})}mapInputs(e){let t={};for(let o in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[o]!=null){let n=this._signature.inputs[o];t[n.name]=e[o]}else t[o]=e[o];return t}checkInputs(e){let t=Object.keys(e).filter(o=>{let[n]=Zr(o);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[o]=Zr(t);if(!this.graph.nodes[o])throw new Error(`The output '${t}' is not found in the graph`)})}};var Ck=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}};var A6="?tfjs-format=file",D6="model.json",fx=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new Ck}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=vr.browserHTTPRequest(e,this.loadOptions);else{let t=vr.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(vr.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,o;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?o=this.artifacts.userDefinedMetadata.signature:o=this.artifacts.signature,this.signature=o,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let n=vr.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Dp(tx.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let s=tx.Instance.transformGraph(e.modelInitializer);this.initializer=new Dp(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let o=vr.getSaveHandlers(e);if(o.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(o.length>1)throw new Error(`Found more than one (${o.length}) save handlers for URL '${e}'`);e=o[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ve)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,o,n)=>(t[o]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=this.executor.execute(e,t);return o.length>1?o:o[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=await this.executor.executeAsync(e,t);return o.length>1?o:o[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,o)=>(t[o]=[e[o]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function sE(r,e={}){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");e==null&&(e={}),e.fromTFHub&&r.load==null&&(r.endsWith("/")||(r=r+"/"),r=`${r}${D6}${A6}`);let t=new fx(r,e);return await t.load(),t}var dx="3.0.0";var $k={};et($k,{CSVDataset:()=>Pd,Dataset:()=>qi,FileDataSource:()=>Vd,TextLineDataset:()=>Fd,URLDataSource:()=>Gd,array:()=>SE,csv:()=>ME,func:()=>LE,generator:()=>zE,microphone:()=>VE,version_data:()=>wx,webcam:()=>BE,zip:()=>TE});var NE=Sc(jm());var pE=Sc(jm());function iE(r,e){return hx(r,e)}function hx(r,e,t=new Map,o=new Set){if(r==null)return null;if(o.has(r))throw new Error("Circular references are not supported.");if(t.has(r))return t.get(r);let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(n.recurse)if(kl(r)){let s=Array.isArray(r)?[]:{};o.add(r);for(let a in r){let i=r[a],l=hx(i,e,t,o);s[a]=l}return o.delete(r),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return t.set(r,n.value),n.value}function lE(r,e=Ik){return aE(r,e)}function aE(r,e,t=new Set){let o=r[0];if(t.has(o))throw new Error("Circular references are not supported.");let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(n.recurse)if(kl(o)){let s=Array.isArray(o)?[]:{};t.add(o);for(let a in o){let i=r.map(u=>u[a]),l=aE(i,e,t);s[a]=l}return t.delete(o),s}else throw new Error(`Can't recurse into non-iterable type: ${o}`);else return n.value}function Ik(r){return r===null?null:kl(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function gx(r,e){let t=new Map;hx(r,e,t);for(let n of Array.from(t.keys())){let s=t.get(n);if(y.isPromise(s)){let a=await s;t.set(n,a)}}return hx(r,e,t)}function kl(r){return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ve))}function uE(r){return r==null||$6(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ve||y.isTypedArray(r)}function $6(r){return r===null||typeof r!="object"&&typeof r!="function"}function cE(r){return iE(r,R6)}function R6(r){return r instanceof Ve?{value:r.clone(),recurse:!1}:kl(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var $d=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),o=this.get(t);return this.set(t,this.pop()),o}};var $p=class extends $d{constructor(){super($p.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),o=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new _E(this,e,t)}columnMajorBatch(e,t=!0,o=Ik){return this.rowMajorBatch(e,t).map(s=>lE(s,o))}concatenate(e,t){return new Sk(Nk([this,e]),t)}take(e){return e<0||e==null?this:new bE(this,e)}skip(e){return e<0||e==null?this:new yE(this,e)}prefetch(e){return new Ek(this,e)}shuffle(e,t){return new IE(this,e,t)}serial(){return new xE(this)}},mE=class extends Kt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:cE(e),done:!1}}},fE=class extends Kt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},xE=class extends Kt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},yE=class extends Kt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},_E=class extends Kt{constructor(e,t,o=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=o,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},wE=class extends Kt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Te(e.value)}}},kE=class extends Kt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Fn.getTensorsInContainer(e.value),o=this.transform(e.value),n=Fn.getTensorsInContainer(o);for(let s of t)Fn.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},vE=class extends Kt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},Tk=class extends Kt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Fn.getTensorsInContainer(e.value),o=await this.transform(e.value),n=Fn.getTensorsInContainer(o);for(let s of t)Fn.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},Rp=class extends Kt{constructor(){super();this.outputQueue=new $p,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},CE=class extends Rp{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Fn.getTensorsInContainer(e.value),o=this.transform(e.value),n=Fn.getTensorsInContainer(o);this.outputQueue.pushAll(o);for(let s of t)Fn.isTensorInList(s,n)||s.dispose();return!0}},Sk=class extends Kt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let o=await this.moreIterators.next();if(o.done)return{value:null,done:!0};this.iterator=o.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},Va;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(Va||(Va={}));var hE=class extends Kt{constructor(e,t=Va.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,o=0;function n(a){return a instanceof Kt?{value:a.next().then(l=>(t++,l.done&&o++,l.value)),recurse:!1}:{value:null,recurse:!0}}let s=await gx(this.iterators,n);if(t===o)return{value:null,done:!0};if(o>0)switch(this.mismatchMode){case Va.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Va.SHORTEST:return{value:null,done:!0};case Va.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Ek=class extends Kt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new $d(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},IE=class extends Ek{constructor(e,t,o){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=pE.alea(o||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}};var qi=class{constructor(){this.size=null}batch(e,t=!0){let o=this;y.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),lo(async()=>(await o.iterator()).columnMajorBatch(e,t,F6),n)}concatenate(e){let t=this,o;return this.size===Infinity||e.size===Infinity?o=Infinity:this.size!=null&&e.size!=null?o=this.size+e.size:o=null,lo(async()=>(await t.iterator()).concatenate(await e.iterator()),o)}filter(e){let t=this,o;return this.size===Infinity?o=Infinity:o=null,lo(async()=>(await t.iterator()).filter(n=>V(()=>e(n))),o)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return lo(async()=>(await t.iterator()).map(o=>V(()=>e(o))),this.size)}mapAsync(e){let t=this;return lo(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return lo(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,o;return this.size!=null&&e>0?o=this.size*e:e===0?o=0:this.size!=null&&(e===void 0||e<0)?o=Infinity:o=null,lo(async()=>{let n=Rd(async()=>({value:await t.iterator(),done:!1}));return dE(n.take(e))},o)}skip(e){let t=this,o;return this.size!=null&&e>=0&&this.size>=e?o=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),o)}shuffle(e,t,o=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let n=this,s=NE.alea(t||y.now().toString());return lo(async()=>{let a=s.int32();return o&&(a+=s.int32()),(await n.iterator()).shuffle(e,a.toString())},this.size)}take(e){let t=this,o;return this.size!=null&&this.size>e?o=e:this.size!=null&&this.size<=e?o=this.size:o=null,lo(async()=>(await t.iterator()).take(e),o)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};qi.MAX_BUFFER_SIZE=1e4;function lo(r,e=null){return new class extends qi{constructor(){super(...arguments);this.size=e}async iterator(){return r()}}}function SE(r){return lo(async()=>Nk(r),r.length)}function TE(r){if(!kl(r))throw new Error("The argument to zip() must be an object or array.");let e;if(Array.isArray(r))for(let t=0;t{let t=await gx(r,o=>{if(o instanceof qi)return{value:o.iterator(),recurse:!1};if(kl(o))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return gE(t,Va.SHORTEST)},e)}function F6(r){if(r===null)return null;let e=r[0];return uE(e)?{value:O6(r),recurse:!1}:{value:null,recurse:!0}}function O6(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ve?Bt(r):Dr(r)}var Fd=class extends qi{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n))}};var xx='"',Od=Symbol("out"),EE=Symbol("field"),yx=Symbol("quote"),Ak=Symbol("quoteafterquote"),AE=Symbol("quoteinquote"),Pd=class extends qi{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new Fd(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(y.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&y.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((n,s)=>(n[s]=n[s]+1||1,n),{}),o=Object.keys(t).filter(n=>t[n]>1);if(y.assert(o.length===0,()=>"Duplicate column names found: "+o.toString()),this.columnConfigs){for(let n of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(n)===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let t=await(await this.base.iterator()).next();if(t.done)throw new Error("No data was found for CSV parsing.");let o=t.value;return this.parseRow(o,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),o={},n={};for(let s=0;s14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(G().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new Md(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(o){throw new Error(`Error thrown while initializing video stream: ${o.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,o=await this.getAudioData();if(this.includeSpectrogram){let n=this.flattenQueue(o.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let n=this.flattenQueue(o.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],o=0;return new Promise(n=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++o===this.numFrames&&(clearInterval(s),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,o=new Float32Array(e.length*t);return e.forEach((n,s)=>o.set(n,s*t)),o}getTensorFromAudioDataArray(e,t){let o=new Float32Array(y.sizeFromShape(t));return o.set(e,o.length-e.length),Dr(o,t)}};var Ld=class extends Kt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Vt([0],"int32"),this.webcamConfig.centerCrop){let o=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-o)/2,a=(1-n)/2,i=s+o,l=n+a;this.cropBox=Bi([a,s,l,i],[1,4])}else this.cropBox=Bi([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(G().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let o=new Ld(e,t);return await o.start(),o}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Yh.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return V(()=>{let t=sr(oe(e,"float32"),0),o;o=Ds.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let n=o.shape;return L(o,n.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}};var zd=class{};var bx=class extends Kt{split(e){return new DE(this,e)}},DE=class extends bx{constructor(e,t){super();this.upstream=e,this.impl=new $E(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},$E=class extends Rp{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let o of t.slice(0,-1))this.outputQueue.push(o);return this.carryover=t[t.length-1],!0}};var Dk=class extends Kt{decodeUTF8(){return new FE(this)}},FE=class extends bx{constructor(e){super();this.upstream=e,this.impl=new OE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},OE=class extends Rp{constructor(e){super();if(this.upstream=e,G().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=RE();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let o;return G().get("IS_BROWSER")?o=this.decoder.decode(t,{stream:!0}):o=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(o),!0}};var Bd=class extends Dk{constructor(e,t={}){super();this.file=e,this.options=t,y.assert(e instanceof Uint8Array||(G().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((t,o)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{let s=new FileReader;s.onload=i=>{let l=s.result;if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),!(l instanceof Uint8Array))return o(new TypeError("FileReader returned unknown type."));t(l)},s.onabort=i=>o(new Error("Aborted")),s.onerror=i=>o(new Error(i.type));let a=this.file.slice(this.offset,n);s.readAsArrayBuffer(a)}this.offset=n}),done:!1}}};async function PE(r,e={}){let t,o;typeof r=="string"?t=r:(t=r.url,o=P6(r));let n=await y.fetch(t,o);if(n.ok){let s=new Uint8Array(await n.arrayBuffer());return new Bd(s,e)}else throw new Error(n.statusText)}var P6=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function _x(r){return typeof r=="string"&&r.substr(0,7)==="file://"}var Vd=class extends zd{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(_x(this.input)&&G().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new Bd(this.input,this.options)}};var Gd=class extends zd{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return _x(this.url)?new Vd(this.url,this.fileOptions).iterator():PE(this.url,this.fileOptions)}};function ME(r,e={}){return new Pd(new Gd(r),e)}function LE(r){let e=Rd(r);return lo(async()=>e)}function zE(r){return lo(async()=>{let e=await r();return Rd(()=>e.next())})}async function BE(r,e){return Ld.create(r,e)}async function VE(r){return Md.create(r)}var wx="3.0.0";function ee(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&y.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the CPU backend.`)})}var M6=Sr.whereImpl,Rk=class extends Ws{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Ya(this,vs())}write(e,t,o){this.firstUse&&(this.firstUse=!1,G().get("IS_NODE")&&N.warn(` + ${o}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),a=xx(s,t),i=o===0?0:r.size/o,l=B(()=>{let c=[];r=L(r,[1,o,i]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let o=C("thenBranch",r,e,t),n=C("elseBranch",r,e,t),s=C("cond",r,e,t),a=C("args",r,e,t);return(await s.data())[0]?t.functionMap[o].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap):t.functionMap[n].executeFunctionAsync(a,t.tensorArrayMap,t.tensorListMap)}case"While":case"StatelessWhile":{let o=C("body",r,e,t),n=C("cond",r,e,t),s=C("args",r,e,t),a=await t.functionMap[n].executeFunctionAsync(s,t.tensorArrayMap,t.tensorListMap),i=s.map(c=>c.id),l=await a[0].data();a.forEach(c=>{!c.kept&&i.indexOf(c.id)===-1&&c.dispose()});let u=s;for(;l[0];){let c=u;u=await t.functionMap[o].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);let p=u.map(f=>f.id);c.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await t.functionMap[n].executeFunctionAsync(u,t.tensorArrayMap,t.tensorListMap);l=await m[0].data(),m.forEach(f=>{!f.kept&&i.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return u}case"LoopCond":{let o=C("pred",r,e,t);return[Bs(o)]}case"Switch":{let o=C("pred",r,e,t),n=C("data",r,e,t);return n.kept||(n=Bs(n)),(await o.data())[0]?[void 0,n]:[n,void 0]}case"Merge":{let o=r.inputNames.find(n=>hr(n,e,t)!==void 0);if(o){let n=hr(o,e,t);return[Bs(n)]}return}case"Enter":{let o=C("frameName",r,e,t),n=C("tensor",r,e,t);return t.enterFrame(o),[Bs(n)]}case"Exit":{let o=C("tensor",r,e,t);return t.exitFrame(),[Bs(o)]}case"NextIteration":{let o=C("tensor",r,e,t);return t.nextIteration(),[Bs(o)]}case"TensorArrayV3":{let o=C("size",r,e,t),n=C("dtype",r,e,t),s=C("elementShape",r,e,t),a=C("dynamicSize",r,e,t),i=C("clearAfterRead",r,e,t),l=C("identicalElementShapes",r,e,t),u=C("name",r,e,t),c=new vk(u,n,o,s,l,a,i);return t.addTensorArray(c),[c.idTensor,le(1)]}case"TensorArrayWriteV3":{let o=C("tensorArrayId",r,e,t),n=C("index",r,e,t),s=C("tensor",r,e,t),a=t.getTensorArray(o.id);return a.write(n,s),[a.idTensor]}case"TensorArrayReadV3":{let o=C("tensorArrayId",r,e,t),n=C("index",r,e,t);return[t.getTensorArray(o.id).read(n)]}case"TensorArrayGatherV3":{let o=C("tensorArrayId",r,e,t),n=C("indices",r,e,t),s=C("dtype",r,e,t);return[t.getTensorArray(o.id).gather(n,s)]}case"TensorArrayScatterV3":{let o=C("tensorArrayId",r,e,t),n=C("indices",r,e,t),s=C("tensor",r,e,t),a=t.getTensorArray(o.id);return a.scatter(n,s),[a.idTensor]}case"TensorArrayConcatV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id),s=C("dtype",r,e,t);return[n.concat(s)]}case"TensorArraySplitV3":{let o=C("tensorArrayId",r,e,t),n=C("tensor",r,e,t),s=C("lengths",r,e,t),a=t.getTensorArray(o.id);return a.split(s,n),[a.idTensor]}case"TensorArraySizeV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return[le(n.size(),"int32")]}case"TensorArrayCloseV3":{let o=C("tensorArrayId",r,e,t),n=t.getTensorArray(o.id);return n.clearAndClose(),[n.idTensor]}case"TensorListSetItem":{let o=C("tensorListId",r,e,t),n=C("index",r,e,t),s=C("tensor",r,e,t),a=t.getTensorList(o.id);return a.setItem(n,s),[a.idTensor]}case"TensorListGetItem":{let o=C("tensorListId",r,e,t),n=C("index",r,e,t),s=C("elementShape",r,e,t),a=C("elementDType",r,e,t);return[t.getTensorList(o.id).getItem(n,s,a)]}case"TensorListScatterV2":case"TensorListScatter":{let o=C("indices",r,e,t),n=C("tensor",r,e,t),s=C("elementShape",r,e,t),a=C("numElements",r,e,t),i=U1(n,o,s,a);return t.addTensorList(i),[i.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let o=C("elementShape",r,e,t),n=C("elementDType",r,e,t),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let a=C(s,r,e,t),i=W1(o,n,a);return t.addTensorList(i),[i.idTensor]}case"TensorListGather":{let o=C("tensorListId",r,e,t),n=C("indices",r,e,t),s=C("elementShape",r,e,t),a=C("elementDType",r,e,t);return[t.getTensorList(o.id).gather(n,a,s)]}case"TensorListStack":{let o=C("tensorListId",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t),a=C("numElements",r,e,t);return[t.getTensorList(o.id).stack(n,s,a)]}case"TensorListFromTensor":{let o=C("tensor",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t),a=G1(o,n,s);return t.addTensorList(a),[a.idTensor]}case"TensorListConcat":{let o=C("tensorListId",r,e,t),n=t.getTensorList(o.id),s=C("dtype",r,e,t),a=C("elementShape",r,e,t);return[n.concat(s,a)]}case"TensorListPushBack":{let o=C("tensorListId",r,e,t),n=C("tensor",r,e,t),s=t.getTensorList(o.id);return s.pushBack(n),[s.idTensor]}case"TensorListPopBack":{let o=C("tensorListId",r,e,t),n=C("elementShape",r,e,t),s=C("elementDType",r,e,t);return[t.getTensorList(o.id).popBack(n,s)]}case"TensorListSplit":{let o=C("tensor",r,e,t),n=C("elementShape",r,e,t),s=C("lengths",r,e,t),a=j1(o,s,n);return t.addTensorList(a),[a.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function q1(r,e,t){let[o,n]=C("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=o==="fusedbatchnorm",l=C("numArgs",r,e,t);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(i)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");let u=C("strides",r,e,t),c=Fd(r,e,t),p=C("dataFormat",r,e,t).toUpperCase(),m=C("dilations",r,e,t),[f,d]=C("args",r,e,t),h=C("leakyreluAlpha",r,e,t);return{stride:u,pad:c,dataFormat:p,dilations:m,biasArg:f,preluArg:d,activationFunc:n,leakyreluAlpha:h}}var K1=(r,e,t)=>{switch(r.op){case"Conv1D":{let o=C("stride",r,e,t),n=C("pad",r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilation",r,e,t);return[Cu(C("x",r,e,t),C("filter",r,e,t),o,n,s,a)]}case"Conv2D":{let o=C("strides",r,e,t),n=Fd(r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilations",r,e,t);return[jr(C("x",r,e,t),C("filter",r,e,t),[o[1],o[2]],n,s,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=q1(r,e,t);return[Wn.conv2d({x:C("x",r,e,t),filter:C("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:n,dataFormat:s,dilations:a,biasArg:i,preluArg:l,activationFunc:u,leakyreluAlpha:c}=q1(r,e,t);return[Wn.depthwiseConv2d({x:C("x",r,e,t),filter:C("filter",r,e,t),strides:[o[1],o[2]],pad:n,dataFormat:s,dilations:[a[1],a[2]],bias:i,activation:u,preluActivationWeights:l,leakyreluAlpha:c})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=C("outputShape",r,e,t),n=C("strides",r,e,t),s=Fd(r,e,t);return[Iu(C("x",r,e,t),C("filter",r,e,t),o,[n[1],n[2]],s)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=C("strides",r,e,t),n=Fd(r,e,t),s=C("dilations",r,e,t),a=C("dataFormat",r,e,t).toUpperCase();return[Ns(C("input",r,e,t),C("filter",r,e,t),[o[1],o[2]],n,a,[s[1],s[2]])]}case"Conv3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("dataFormat",r,e,t).toUpperCase(),a=C("dilations",r,e,t);return[Pm(C("x",r,e,t),C("filter",r,e,t),[o[1],o[2],o[3]],n,s,[a[1],a[2],a[3]])]}case"AvgPool":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[va(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPool":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Ea(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n)]}case"MaxPoolWithArgmax":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t),a=C("includeBatchInIndex",r,e,t),{result:i,indexes:l}=E_(C("x",r,e,t),[s[1],s[2]],[o[1],o[2]],n,a);return[i,l]}case"AvgPool3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[Fm(C("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"MaxPool3D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("kernelSize",r,e,t);return[jm(C("x",r,e,t),[s[1],s[2],s[3]],[o[1],o[2],o[3]],n)]}case"Dilation2D":{let o=C("strides",r,e,t),n=C("pad",r,e,t),s=C("dilations",r,e,t),a=o[1],i=o[2],l=s[1],u=s[2];return[Lm(C("x",r,e,t),C("filter",r,e,t),[a,i],n,[l,u],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var X1=(r,e,t)=>{switch(r.op){case"Fill":{let o=C("shape",r,e,t),n=C("dtype",r,e,t),s=C("value",r,e,t);return[Na(o,s,n)]}case"LinSpace":{let o=C("start",r,e,t),n=C("stop",r,e,t),s=C("num",r,e,t);return[v_(o,n,s)]}case"Multinomial":{let o=C("logits",r,e,t),n=C("numSamples",r,e,t),s=C("seed",r,e,t);return[A_(o,n,s)]}case"OneHot":{let o=C("indices",r,e,t),n=C("depth",r,e,t),s=C("onValue",r,e,t),a=C("offValue",r,e,t);return[Is(o,n,s,a)]}case"Ones":return[Cr(C("shape",r,e,t),C("dtype",r,e,t))];case"OnesLike":return[er(C("x",r,e,t))];case"RandomUniform":return[Ds(C("shape",r,e,t),C("minval",r,e,t),C("maxval",r,e,t),C("dtype",r,e,t))];case"Range":{let o=C("start",r,e,t),n=C("stop",r,e,t),s=C("step",r,e,t);return[Jc(o,n,s,C("dtype",r,e,t))]}case"TruncatedNormal":{let o=C("shape",r,e,t),n=C("mean",r,e,t),s=C("stdDev",r,e,t),a=C("seed",r,e,t);return[Gu(o,n,s,C("dtype",r,e,t),a)]}case"Zeros":return[gt(C("shape",r,e,t),C("dtype",r,e,t))];case"ZerosLike":return[Ie(C("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Ck(r,e,t){let o=C("boxes",r,e,t),n=C("scores",r,e,t),s=C("maxOutputSize",r,e,t),a=C("iouThreshold",r,e,t),i=C("scoreThreshold",r,e,t),l=C("softNmsSigma",r,e,t);return{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}}var Y1=async(r,e,t)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i,softNmsSigma:l}=Ck(r,e,t),u=await Rs.nonMaxSuppressionWithScoreAsync(o,n,s,a,i,l);return[u.selectedIndices,u.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=Ck(r,e,t),l=C("padToMaxOutputSize",r,e,t),u=await Rs.nonMaxSuppressionPaddedAsync(o,n,s,a,i,l);return[u.selectedIndices,u.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:o,scores:n,maxOutputSize:s,iouThreshold:a,scoreThreshold:i}=Ck(r,e,t);return[await Rs.nonMaxSuppressionAsync(o,n,s,a,i)]}case"Where":{let o=oe(C("condition",r,e,t),"bool"),n=[await sf(o)];return o.dispose(),n}case"ListDiff":return B_(C("x",r,e,t),C("y",r,e,t));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var Z1=(r,e,t)=>{switch(r.op){case"TopKV2":{let o=C("x",r,e,t),n=C("k",r,e,t),s=C("sorted",r,e,t),a=of(o,n,s);return[a.values,a.indices]}case"Unique":{let o=C("x",r,e,t),n=ep(o);return[n.values,n.indices]}case"UniqueV2":{let o=C("x",r,e,t),n=C("axis",r,e,t),s=ep(o,n);return[s.values,s.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var J1=(r,e,t)=>{switch(r.op){case"Const":return e[r.name];case"PlaceholderWithDefault":let o=C("default",r,e,t);return[hr(r.name,e,t)||o];case"Placeholder":return[hr(r.name,e,t)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let u=C("x",r,e,t);return[Bs(u)]}case"IdentityN":return C("x",r,e,t).map(u=>Bs(u));case"Snapshot":let n=C("x",r,e,t);return[Bs(n)];case"Shape":return[Vt(C("x",r,e,t).shape,"int32")];case"ShapeN":return C("x",r,e,t).map(u=>Vt(u.shape));case"Size":return[le(C("x",r,e,t).size,"int32")];case"Rank":return[le(C("x",r,e,t).rank,"int32")];case"NoOp":return[le(1)];case"Print":let s=C("x",r,e,t),a=C("data",r,e,t),i=C("message",r,e,t),l=C("summarize",r,e,t);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(i);for(let u=0;ue.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}async import(e,t){this.checkKeyAndValueTensor(e,t);let o=await e.data();return this.tensorMap.forEach(n=>n.dispose()),this.tensorMap.clear(),B(()=>{let n=ur(t),s=o.length,a=n.length;y.assert(s===a,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${a} elements.`);for(let i=0;i{let n=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let n=C("keyDType",r,e,t),s=C("valueDType",r,e,t),a=new Ik(n,s);return o.addHashTable(r.name,a),[a.handle]}case"LookupTableImport":case"LookupTableImportV2":{let n=C("tableHandle",r,e,t,o),s=C("keys",r,e,t),a=C("values",r,e,t);return[await o.getHashTableById(n.id).import(s,a)]}case"LookupTableFind":case"LookupTableFindV2":{let n=C("tableHandle",r,e,t,o),s=C("keys",r,e,t),a=C("defaultValue",r,e,t);return[await o.getHashTableById(n.id).find(s,a)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eE=(r,e,t)=>{switch(r.op){case"ResizeBilinear":{let o=C("images",r,e,t),n=C("size",r,e,t),s=C("alignCorners",r,e,t),a=C("halfPixelCenters",r,e,t);return[Rs.resizeBilinear(o,[n[0],n[1]],s,a)]}case"ResizeNearestNeighbor":{let o=C("images",r,e,t),n=C("size",r,e,t),s=C("alignCorners",r,e,t),a=C("halfPixelCenters",r,e,t);return[Rs.resizeNearestNeighbor(o,[n[0],n[1]],s,a)]}case"CropAndResize":{let o=C("image",r,e,t),n=C("boxes",r,e,t),s=C("boxInd",r,e,t),a=C("cropSize",r,e,t),i=C("method",r,e,t),l=C("extrapolationValue",r,e,t);return[Rs.cropAndResize(o,n,s,a,i,l)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tE=(r,e,t)=>{switch(r.op){case"Equal":return[_o(C("a",r,e,t),C("b",r,e,t))];case"NotEqual":return[Gn(C("a",r,e,t),C("b",r,e,t))];case"Greater":return[Qt(C("a",r,e,t),C("b",r,e,t))];case"GreaterEqual":return[to(C("a",r,e,t),C("b",r,e,t))];case"Less":return[Eu(C("a",r,e,t),C("b",r,e,t))];case"LessEqual":return[Mo(C("a",r,e,t),C("b",r,e,t))];case"LogicalAnd":return[fr(C("a",r,e,t),C("b",r,e,t))];case"LogicalNot":return[Ta(C("a",r,e,t))];case"LogicalOr":return[$u(C("a",r,e,t),C("b",r,e,t))];case"Select":case"SelectV2":return[$t(C("condition",r,e,t),C("a",r,e,t),C("b",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rE=(r,e,t)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[We(C("a",r,e,t),C("b",r,e,t),C("transposeA",r,e,t),C("transposeB",r,e,t))];case"Transpose":return[Ue(C("x",r,e,t),C("perm",r,e,t))];case"_FusedMatMul":let[o,n]=C("fusedOps",r,e,t),s=o==="biasadd",a=n==="prelu",i=C("numArgs",r,e,t),l=C("leakyreluAlpha",r,e,t);if(s){if(a&&i!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&i!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[u,c]=C("args",r,e,t);return[Wn.matMul({a:C("a",r,e,t),b:C("b",r,e,t),transposeA:C("transposeA",r,e,t),transposeB:C("transposeB",r,e,t),bias:u,activation:n,preluActivationWeights:c,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oE=(r,e,t)=>{switch(r.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[zn(C("x",r,e,t),C("mean",r,e,t),C("variance",r,e,t),C("offset",r,e,t),C("scale",r,e,t),C("epsilon",r,e,t))];case"FusedBatchNormV3":return[zn(C("x",r,e,t),C("mean",r,e,t),C("variance",r,e,t),C("offset",r,e,t),C("scale",r,e,t),C("epsilon",r,e,t))];case"LRN":return[Gm(C("x",r,e,t),C("radius",r,e,t),C("bias",r,e,t),C("alpha",r,e,t),C("beta",r,e,t))];case"Softmax":return[$a(C("x",r,e,t))];case"LogSoftmax":return[Du(C("x",r,e,t))];case"SparseToDense":return[af(C("sparseIndices",r,e,t),C("outputShape",r,e,t),C("sparseValues",r,e,t),C("defaultValue",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nE=(r,e,t)=>{switch(r.op){case"Max":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ar(C("x",r,e,t),a,i)]}case"Mean":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ht(C("x",r,e,t),a,i)]}case"Min":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[Li(C("x",r,e,t),a,i)]}case"Sum":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[ye(C("x",r,e,t),a,i)]}case"All":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[wu(C("x",r,e,t),a,i)]}case"Any":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[nl(C("x",r,e,t),a,i)]}case"ArgMax":{let a=C("axis",r,e,t);return[sl(C("x",r,e,t),a)]}case"ArgMin":{let a=C("axis",r,e,t);return[Tm(C("x",r,e,t),a)]}case"Prod":{let a=C("axis",r,e,t),i=C("keepDims",r,e,t);return[Ru(C("x",r,e,t),a,i)]}case"Cumsum":{let a=C("axis",r,e,t),i=C("exclusive",r,e,t),l=C("reverse",r,e,t);return[Su(C("x",r,e,t),a,i,l)]}case"Bincount":let o=C("x",r,e,t),n=C("weights",r,e,t),s=C("size",r,e,t);return[f_(o,n,s)];case"DenseBincount":{let a=C("x",r,e,t),i=C("weights",r,e,t),l=C("size",r,e,t),u=C("binaryOutput",r,e,t);return[y_(a,i,l,u)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sE=(r,e,t)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=C("n",r,e,t),n=C("axis",r,e,t),s=C("tensors",r,e,t);return s=s.slice(0,o),[Je(s,n)]}case"Gather":{let o=C("x",r,e,t),n=C("indices",r,e,t);return[Bn(o,oe(n,"int32"),0)]}case"GatherV2":{let o=C("axis",r,e,t),n=C("batchDims",r,e,t),s=C("x",r,e,t),a=C("indices",r,e,t);return[Bn(s,oe(a,"int32"),o,n)]}case"Reverse":{let o=C("dims",r,e,t),n=[];for(let a=0;a{let o=C("axis",r,e,t),n=C("tensors",r,e,t),s=n[0].shape,a=wo(n[0]).shape,i=n.map(l=>{let u=y.arraysEqual(l.shape,s);if(!u&&!y.arraysEqual(wo(l).shape,a))throw new Error("the input tensors shape does not match");return u?l:L(l,s)});return[Bt(i,o)]});case"Unpack":{let o=C("axis",r,e,t),n=C("tensor",r,e,t);return ur(n,o)}case"Tile":{let o=C("reps",r,e,t);return[Po(C("x",r,e,t),o)]}case"Split":case"SplitV":{let o=C("axis",r,e,t),n=C("numOrSizeSplits",r,e,t),s=C("x",r,e,t);return lr(s,n,o)}case"ScatterNd":{let o=C("indices",r,e,t),n=C("values",r,e,t),s=C("shape",r,e,t);return[W_(o,n,s)]}case"GatherNd":{let o=C("x",r,e,t),n=C("indices",r,e,t);return[U_(o,n)]}case"SparseToDense":{let o=C("sparseIndices",r,e,t),n=C("outputShape",r,e,t),s=C("sparseValues",r,e,t),a=C("defaultValue",r,e,t);return[af(o,s,n,s.dtype===a.dtype?a:oe(a,s.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iE=(r,e,t)=>{switch(r.op){case"FFT":return[Ra(C("x",r,e,t))];case"IFFT":return[zi(C("x",r,e,t))];case"RFFT":return[Fa(C("x",r,e,t))];case"IRFFT":return[Bu(C("x",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aE=(r,e,t)=>{switch(r.op){case"Cast":return[oe(C("x",r,e,t),C("dtype",r,e,t))];case"ExpandDims":{let o=C("axis",r,e,t);return[sr(C("x",r,e,t),o)]}case"Squeeze":{let o=C("axis",r,e,t);return[wo(C("x",r,e,t),o)]}case"Reshape":return[L(C("x",r,e,t),C("shape",r,e,t))];case"MirrorPad":return[Hm(C("x",r,e,t),C("padding",r,e,t),C("mode",r,e,t))];case"PadV2":case"Pad":return[$r(C("x",r,e,t),C("padding",r,e,t),C("constantValue",r,e,t))];case"SpaceToBatchND":{let o=C("blockShape",r,e,t),n=C("paddings",r,e,t);return[Aa(C("x",r,e,t),o,n)]}case"BatchToSpaceND":{let o=C("blockShape",r,e,t),n=C("crops",r,e,t);return[Ca(C("x",r,e,t),o,n)]}case"DepthToSpace":{let o=C("blockSize",r,e,t),n=C("dataFormat",r,e,t).toUpperCase();return[Mm(C("x",r,e,t),o,n)]}case"BroadcastTo":return[il(C("x",r,e,t),C("shape",r,e,t))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Nk(r,e,t,o){let n=((s,a,i)=>{switch(s.category){case"arithmetic":return B(()=>z1(s,a,i));case"basic_math":return B(()=>B1(s,a,i));case"control":return H1(s,a,i);case"convolution":return B(()=>K1(s,a,i));case"creation":return B(()=>X1(s,a,i));case"dynamic":return Y1(s,a,i);case"evaluation":return B(()=>Z1(s,a,i));case"image":return B(()=>eE(s,a,i));case"graph":return B(()=>J1(s,a,i));case"logical":return B(()=>tE(s,a,i));case"matrices":return B(()=>rE(s,a,i));case"normalization":return B(()=>oE(s,a,i));case"reduction":return B(()=>nE(s,a,i));case"slice_join":return B(()=>sE(s,a,i));case"spectral":return B(()=>iE(s,a,i));case"transformation":return B(()=>aE(s,a,i));case"hash_table":return Q1(s,a,i,o);case"custom":let l=nx(s.op);if(l&&l.customExecutor)return l.customExecutor(new kk(s,a,i));throw TypeError(`Custom op ${s.op} is not registered.`);default:throw TypeError(`Unknown op '${s.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,e,t);return y.isPromise(n)?n.then(s=>[].concat(s)):[].concat(n)}var yx=class{constructor(e={},t={},o={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=o,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function Tk(r,e,t,o){let n=new Set,s=[],a=null,i=null,l=new Set,u=Object.keys(r).map(m=>Zr(m)[0]),c=[];o!=null&&(c=o.map(m=>Zr(m.name)[0]));let p=[...e];for(;p.length>0;){let m=p.pop();if((Sk(m)||E6(m)||A6(m))&&a==null&&(a=m,i=a.children.map(f=>f.name).filter(f=>n.has(f))),n.add(m.name),t[m.name]==null&&u.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{l.has(f.name)||(l.add(f.name),p.push(f))})}}return{inputs:r,outputs:e,usedNodes:n,missingInputs:s,dynamicNode:a,syncInputs:i}}function lE(r,e,t){let{usedNodes:o,inputs:n}=t,s=[],a=Object.keys(n).map(c=>Zr(c)[0]).map(c=>r.nodes[c]),i=r.initNodes;a.forEach(c=>{o.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{o.has(c.name)&&s.push(c)}),i!=null&&i.forEach(c=>{o.has(c.name)&&s.push(c)});let l=new Set,u=[];for(;s.length>0;){let c=s.pop();l.add(c.name),e[c.name]||u.push(c),c.children.forEach(p=>{!l.has(p.name)&&o.has(p.name)&&p.inputs.every(m=>l.has(m.name))&&s.push(p)})}return u}var D6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],$6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],R6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2"];function Sk(r){return D6.indexOf(r.op)>=0}function E6(r){return $6.indexOf(r.op)>=0}function A6(r){return R6.indexOf(r.op)>=0}var Rp=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(o=>{this._functionExecutorMap[o]=new Rp(e.functions[o],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(o=>e[o].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let o=e.map(s=>s.name).sort(),n=t.map(s=>s.name).sort();return o.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){let o=Tk(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:s,syncInputs:a}=o;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${a}]`);if(n.length>0){let i=t.map(u=>u.name),l=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${l}]. Missing the following inputs: [${n}]`)}return lE(this.graph,this.weightMap,o)}execute(e,t){e=this.mapInputs(e);let o=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let n=o.map(p=>this.graph.nodes[Zr(p)[0]]),s=t.map(p=>Zr(p)[0]),a=s.map(p=>this.graph.nodes[p]);a.length===0&&(a=this._outputs);let i=this.getCompilationKey(n,a),l=this.compiledMap.get(i);l==null&&(l=this.compile(e,a),this.compiledMap.set(i,l));let u={},c={};return B(()=>{let p=new yx(this.weightMap,u,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(e).forEach(h=>{let[g,x]=Zr(h),b=[];b[x]=e[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hhr(h,m,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(o=>e[o]).map(o=>o.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,o,n,s,a,i){t.category==="control"||a.indexOf(e)!==-1||(o[e].forEach(l=>{l!=null&&(i[l.id]=(i[l.id]||0)+t.children.length)}),t.inputs.forEach(l=>{if(l.category!=="control"){let u=O1(l.name,o,n);u!=null&&u.forEach(c=>{if(c&&!s.has(c.id)){let p=i[c.id];p===1?(c.dispose(),delete i[c.id]):p!=null&&i[c.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,o=!1,n={},s={}){o||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));let a=new yx(this.weightMap,n,s,this.functionExecutorMap),i=await this.executeWithControlFlow(e,a,t,o),l=t.map(m=>hr(m,i,a)),u=l.map(m=>m.id),c=Object.keys(e).map(m=>e[m].id),p=new Set([...u,...c,...this.weightIds]);return Object.keys(i).forEach(m=>{i[m].forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&a.dispose(p),l}async executeFunctionAsync(e,t,o){let n=e.reduce((s,a,i)=>(s[this.inputs[i].name]=a,s),{});return this._executeAsync(n,this.outputNodes,!0,t,o)}async executeWithControlFlow(e,t,o,n){let s=Object.keys(e),a=s.map(_=>this.graph.nodes[Zr(_)[0]]),i=o.map(_=>Zr(_)[0]),l=i.map(_=>this.graph.nodes[_]);l.length===0&&(l=this._outputs);let{usedNodes:u,missingInputs:c,dynamicNode:p,syncInputs:m}=Tk(e,l,this.weightMap,this._initNodes),f=[...a,...this.graph.weights,...this._initNodes||[]].map(_=>({node:_,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(_=>{let[w,v]=Zr(_),$=[];$[v]=e[_],d[w]=$});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let _=this.processStack(a,f,t,d,x,g,i,h,u);await Promise.all(_)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=l.filter(_=>!Sk(_)&&!hr(_.name,d,t)).map(_=>_.name);if(b.length>0){let _="";throw p!=null&&(_=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${_}`)}return d}processStack(e,t,o,n,s,a,i,l,u){let c=[];for(;t.length>0;){let p=t.pop();o.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&C("isConstant",p.node,n,o)&&([m]=zs(p.node.name,o)),n[p.node.name]==null){let f=Nk(p.node,n,o,this._resourceManager);m||([m]=zs(p.node.name,o));let d=o.currentContext;y.isPromise(f)?c.push(f.then(h=>(n[m]=h,o.currentContext=d,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u),h))):(n[m]=f,this.checkTensorForDisposal(m,p.node,n,o,a,i,l),this.processChildNodes(p.node,t,o,n,s,u))}else this.processChildNodes(p.node,t,o,n,s,u)}return c}processChildNodes(e,t,o,n,s,a){e.children.forEach(i=>{let[l]=zs(i.name,o);s[l]||!a.has(i.name)||(i.op==="Merge"?i.inputNames.some(u=>!!hr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})):i.inputNames.every(u=>!!hr(u,n,o))&&(s[l]=!0,t.push({contexts:o.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let o=e[t],[n]=Zr(t),s=this.graph.nodes[n];if(s.attrParams.shape&&s.attrParams.shape.value){let a=s.attrParams.shape.value,i=a.length===o.shape.length&&o.shape.every((l,u)=>a[u]===-1||a[u]===l);y.assert(i,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${a}], but was [${o.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(o.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${o.dtype}`)})}mapInputs(e){let t={};for(let o in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[o]!=null){let n=this._signature.inputs[o];t[n.name]=e[o]}else t[o]=e[o];return t}checkInputs(e){let t=Object.keys(e).filter(o=>{let[n]=Zr(o);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[o]=Zr(t);if(!this.graph.nodes[o])throw new Error(`The output '${t}' is not found in the graph`)})}};var Ek=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}};var F6="?tfjs-format=file",O6="model.json",bx=class{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={}),this.resourceManager=new Ek}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=vr.browserHTTPRequest(e,this.loadOptions);else{let t=vr.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(vr.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,o;this.artifacts.userDefinedMetadata!=null&&this.artifacts.userDefinedMetadata.signature!=null?o=this.artifacts.userDefinedMetadata.signature:o=this.artifacts.signature,this.signature=o,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let n=vr.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Rp(ix.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let s=ix.Instance.transformGraph(e.modelInitializer);this.initializer=new Rp(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializer.executeAsync({},[])}return!0}async save(e,t){if(typeof e=="string"){let o=vr.getSaveHandlers(e);if(o.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(o.length>1)throw new Error(`Found more than one (${o.length}) save handlers for URL '${e}'`);e=o[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof Ve)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,o,n)=>(t[o]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=this.executor.execute(e,t);return o.length>1?o:o[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let o=await this.executor.executeAsync(e,t);return o.length>1?o:o[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,o)=>(t[o]=[e[o]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose(),this.resourceManager.dispose()}};async function uE(r,e={}){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");e==null&&(e={}),e.fromTFHub&&r.load==null&&(r.endsWith("/")||(r=r+"/"),r=`${r}${O6}${F6}`);let t=new bx(r,e);return await t.load(),t}var _x="3.1.0";var Mk={};et(Mk,{CSVDataset:()=>zd,Dataset:()=>qi,FileDataSource:()=>Ud,TextLineDataset:()=>Md,URLDataSource:()=>jd,array:()=>DE,csv:()=>VE,func:()=>GE,generator:()=>WE,microphone:()=>jE,version_data:()=>Sx,webcam:()=>UE,zip:()=>$E});var AE=Tc(Km());var hE=Tc(Km());function cE(r,e){return wx(r,e)}function wx(r,e,t=new Map,o=new Set){if(r==null)return null;if(o.has(r))throw new Error("Circular references are not supported.");if(t.has(r))return t.get(r);let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(n.recurse)if(kl(r)){let s=Array.isArray(r)?[]:{};o.add(r);for(let a in r){let i=r[a],l=wx(i,e,t,o);s[a]=l}return o.delete(r),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return t.set(r,n.value),n.value}function mE(r,e=Ak){return pE(r,e)}function pE(r,e,t=new Set){let o=r[0];if(t.has(o))throw new Error("Circular references are not supported.");let n=e(r);if(n.recurse&&n.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(n.recurse)if(kl(o)){let s=Array.isArray(o)?[]:{};t.add(o);for(let a in o){let i=r.map(u=>u[a]),l=pE(i,e,t);s[a]=l}return t.delete(o),s}else throw new Error(`Can't recurse into non-iterable type: ${o}`);else return n.value}function Ak(r){return r===null?null:kl(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function kx(r,e){let t=new Map;wx(r,e,t);for(let n of Array.from(t.keys())){let s=t.get(n);if(y.isPromise(s)){let a=await s;t.set(n,a)}}return wx(r,e,t)}function kl(r){return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ve))}function fE(r){return r==null||P6(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ve||y.isTypedArray(r)}function P6(r){return r===null||typeof r!="object"&&typeof r!="function"}function dE(r){return cE(r,M6)}function M6(r){return r instanceof Ve?{value:r.clone(),recurse:!1}:kl(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Od=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),o=this.get(t);return this.set(t,this.pop()),o}};var Fp=class extends Od{constructor(){super(Fp.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),o=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new CE(this,e,t)}columnMajorBatch(e,t=!0,o=Ak){return this.rowMajorBatch(e,t).map(s=>mE(s,o))}concatenate(e,t){return new $k(Dk([this,e]),t)}take(e){return e<0||e==null?this:new vE(this,e)}skip(e){return e<0||e==null?this:new kE(this,e)}prefetch(e){return new Fk(this,e)}shuffle(e,t){return new EE(this,e,t)}serial(){return new wE(this)}},gE=class extends Kt{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:dE(e),done:!1}}},xE=class extends Kt{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},wE=class extends Kt{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},kE=class extends Kt{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},CE=class extends Kt{constructor(e,t,o=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=o,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},IE=class extends Kt{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Te(e.value)}}},NE=class extends Kt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ln.getTensorsInContainer(e.value),o=this.transform(e.value),n=Ln.getTensorsInContainer(o);for(let s of t)Ln.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},SE=class extends Kt{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},Rk=class extends Kt{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ln.getTensorsInContainer(e.value),o=await this.transform(e.value),n=Ln.getTensorsInContainer(o);for(let s of t)Ln.isTensorInList(s,n)||s.dispose();return{value:o,done:!1}}},Op=class extends Kt{constructor(){super();this.outputQueue=new Fp,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},TE=class extends Op{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ln.getTensorsInContainer(e.value),o=this.transform(e.value),n=Ln.getTensorsInContainer(o);this.outputQueue.pushAll(o);for(let s of t)Ln.isTensorInList(s,n)||s.dispose();return!0}},$k=class extends Kt{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let o=await this.moreIterators.next();if(o.done)return{value:null,done:!0};this.iterator=o.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},Va;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(Va||(Va={}));var bE=class extends Kt{constructor(e,t=Va.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,o=0;function n(a){return a instanceof Kt?{value:a.next().then(l=>(t++,l.done&&o++,l.value)),recurse:!1}:{value:null,recurse:!0}}let s=await kx(this.iterators,n);if(t===o)return{value:null,done:!0};if(o>0)switch(this.mismatchMode){case Va.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Va.SHORTEST:return{value:null,done:!0};case Va.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Fk=class extends Kt{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new Od(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},EE=class extends Fk{constructor(e,t,o){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=hE.alea(o||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}};var qi=class{constructor(){this.size=null}batch(e,t=!0){let o=this;y.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),lo(async()=>(await o.iterator()).columnMajorBatch(e,t,L6),n)}concatenate(e){let t=this,o;return this.size===Infinity||e.size===Infinity?o=Infinity:this.size!=null&&e.size!=null?o=this.size+e.size:o=null,lo(async()=>(await t.iterator()).concatenate(await e.iterator()),o)}filter(e){let t=this,o;return this.size===Infinity?o=Infinity:o=null,lo(async()=>(await t.iterator()).filter(n=>B(()=>e(n))),o)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return lo(async()=>(await t.iterator()).map(o=>B(()=>e(o))),this.size)}mapAsync(e){let t=this;return lo(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return lo(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,o;return this.size!=null&&e>0?o=this.size*e:e===0?o=0:this.size!=null&&(e===void 0||e<0)?o=Infinity:o=null,lo(async()=>{let n=Pd(async()=>({value:await t.iterator(),done:!1}));return yE(n.take(e))},o)}skip(e){let t=this,o;return this.size!=null&&e>=0&&this.size>=e?o=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),o)}shuffle(e,t,o=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let n=this,s=AE.alea(t||y.now().toString());return lo(async()=>{let a=s.int32();return o&&(a+=s.int32()),(await n.iterator()).shuffle(e,a.toString())},this.size)}take(e){let t=this,o;return this.size!=null&&this.size>e?o=e:this.size!=null&&this.size<=e?o=this.size:o=null,lo(async()=>(await t.iterator()).take(e),o)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};qi.MAX_BUFFER_SIZE=1e4;function lo(r,e=null){return new class extends qi{constructor(){super(...arguments);this.size=e}async iterator(){return r()}}}function DE(r){return lo(async()=>Dk(r),r.length)}function $E(r){if(!kl(r))throw new Error("The argument to zip() must be an object or array.");let e;if(Array.isArray(r))for(let t=0;t{let t=await kx(r,o=>{if(o instanceof qi)return{value:o.iterator(),recurse:!1};if(kl(o))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return _E(t,Va.SHORTEST)},e)}function L6(r){if(r===null)return null;let e=r[0];return fE(e)?{value:z6(r),recurse:!1}:{value:null,recurse:!0}}function z6(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ve?Bt(r):Dr(r)}var Md=class extends qi{constructor(e){super();this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n))}};var vx='"',Ld=Symbol("out"),RE=Symbol("field"),Cx=Symbol("quote"),Ok=Symbol("quoteafterquote"),FE=Symbol("quoteinquote"),zd=class extends qi{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new Md(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(y.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&y.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((n,s)=>(n[s]=n[s]+1||1,n),{}),o=Object.keys(t).filter(n=>t[n]>1);if(y.assert(o.length===0,()=>"Duplicate column names found: "+o.toString()),this.columnConfigs){for(let n of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(n)===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let t=await(await this.base.iterator()).next();if(t.done)throw new Error("No data was found for CSV parsing.");let o=t.value;return this.parseRow(o,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),o={},n={};for(let s=0;s14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(U().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");let t=new Bd(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(o){throw new Error(`Error thrown while initializing video stream: ${o.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,o=await this.getAudioData();if(this.includeSpectrogram){let n=this.flattenQueue(o.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let n=this.flattenQueue(o.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],o=0;return new Promise(n=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++o===this.numFrames&&(clearInterval(s),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,o=new Float32Array(e.length*t);return e.forEach((n,s)=>o.set(n,s*t)),o}getTensorFromAudioDataArray(e,t){let o=new Float32Array(y.sizeFromShape(t));return o.set(e,o.length-e.length),Dr(o,t)}};var Vd=class extends Kt{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Vt([0],"int32"),this.webcamConfig.centerCrop){let o=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-o)/2,a=(1-n)/2,i=s+o,l=n+a;this.cropBox=Bi([a,s,l,i],[1,4])}else this.cropBox=Bi([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(U().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let o=new Vd(e,t);return await o.start(),o}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=tg.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return B(()=>{let t=sr(oe(e,"float32"),0),o;o=Rs.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let n=o.shape;return L(o,n.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}};var Gd=class{};var Ix=class extends Kt{split(e){return new OE(this,e)}},OE=class extends Ix{constructor(e,t){super();this.upstream=e,this.impl=new PE(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},PE=class extends Op{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let o of t.slice(0,-1))this.outputQueue.push(o);return this.carryover=t[t.length-1],!0}};var Pk=class extends Kt{decodeUTF8(){return new LE(this)}},LE=class extends Ix{constructor(e){super();this.upstream=e,this.impl=new zE(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},zE=class extends Op{constructor(e){super();if(this.upstream=e,U().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=ME();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let o;return U().get("IS_BROWSER")?o=this.decoder.decode(t,{stream:!0}):o=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(o),!0}};var Wd=class extends Pk{constructor(e,t={}){super();this.file=e,this.options=t,y.assert(e instanceof Uint8Array||(U().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((t,o)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{let s=new FileReader;s.onload=i=>{let l=s.result;if(l instanceof ArrayBuffer&&(l=new Uint8Array(l)),!(l instanceof Uint8Array))return o(new TypeError("FileReader returned unknown type."));t(l)},s.onabort=i=>o(new Error("Aborted")),s.onerror=i=>o(new Error(i.type));let a=this.file.slice(this.offset,n);s.readAsArrayBuffer(a)}this.offset=n}),done:!1}}};async function BE(r,e={}){let t,o;typeof r=="string"?t=r:(t=r.url,o=B6(r));let n=await y.fetch(t,o);if(n.ok){let s=new Uint8Array(await n.arrayBuffer());return new Wd(s,e)}else throw new Error(n.statusText)}var B6=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Nx(r){return typeof r=="string"&&r.substr(0,7)==="file://"}var Ud=class extends Gd{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(Nx(this.input)&&U().get("IS_NODE")){let e=require("fs");this.input=e.readFileSync(this.input.substr(7))}return new Wd(this.input,this.options)}};var jd=class extends Gd{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return Nx(this.url)?new Ud(this.url,this.fileOptions).iterator():BE(this.url,this.fileOptions)}};function VE(r,e={}){return new zd(new jd(r),e)}function GE(r){let e=Pd(r);return lo(async()=>e)}function WE(r){return lo(async()=>{let e=await r();return Pd(()=>e.next())})}async function UE(r,e){return Vd.create(r,e)}async function jE(r){return Bd.create(r)}var Sx="3.1.0";function ee(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&y.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the CPU backend.`)})}var V6=Sr.whereImpl,Pp=class extends js{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Ya(this,Fo())}nextDataId(){return Pp.nextDataId++}write(e,t,o){this.firstUse&&(this.firstUse=!1,U().get("IS_NODE")&&N.warn(` ============================ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let n={};return this.data.set(n,{values:e,dtype:o,refCount:1}),n}makeTensorInfo(e,t,o){let n;if(t==="string"&&o!=null&&o.length>0&&y.isString(o[0])){let s=o.map(a=>y.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return{dataId:n,shape:e,dtype:t}}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,o,n){this.data.set(e,{values:t,dtype:n,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:o}=this.data.get(e);if(t==="complex64"){let n=this.readSync(o.real.dataId),s=this.readSync(o.imag.dataId);return N.mergeRealAndImagArrays(n,s)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>y.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ce(e.shape,e.dtype,o)}makeOutput(e,t,o){let n=this.write(e,t,o);return vs().makeTensorFromDataId(n,t,o,this)}disposeData(e){if(this.data.has(e)){let{complexTensorInfos:t}=this.data.get(e);t!=null&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){let t=e.dataId;if(this.data.has(t)){let o=this.data.get(t);o.refCount--,o.refCount<1&&this.disposeData(t)}}async time(e){let t=y.now();return e(),{kernelMs:y.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ee([e],"where");let t=this.readSync(e.dataId);return M6(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};var Wk={};et(Wk,{addImpl:()=>KE,bincountImpl:()=>Wd,bincountReduceImpl:()=>Fk,ceilImpl:()=>YE,concatImpl:()=>Ud,expImpl:()=>JE,expm1Impl:()=>eA,floorImpl:()=>rA,gatherV2Impl:()=>Pk,greaterImpl:()=>nA,lessImpl:()=>iA,linSpaceImpl:()=>Mk,logImpl:()=>lA,maxImpl:()=>Lk,maximumImpl:()=>cA,minimumImpl:()=>mA,multiplyImpl:()=>kx,negImpl:()=>hA,notEqualImpl:()=>xA,prodImpl:()=>_A,rangeImpl:()=>qd,rsqrtImpl:()=>kA,simpleAbsImpl:()=>GE,sliceImpl:()=>Kd,squaredDifferenceImpl:()=>IA,stridedSliceImpl:()=>zk,subImpl:()=>SA,tileImpl:()=>Bk,topKImpl:()=>Vk,transposeImpl:()=>Hd,uniqueImpl:()=>Gk});function GE(r){let e=new Float32Array(r.length);for(let t=0;t{let{x:e}=r.inputs,t=r.backend;ee(e,"abs");let o=new Float32Array(y.sizeFromShape(e.shape)),n=t.data.get(e.dataId).values;return o=GE(n),t.makeOutput(o,e.shape,"float32")},WE={kernelName:ss,backendName:"cpu",kernelFunc:L6};function Ye(r){return(e,t,o,n,s)=>{let a=N.assertAndGetBroadcastShape(e,t),i=a.length,l=y.computeStrides(a),u=y.sizeFromShape(a),c=y.getTypedArrayFromDType(s,u),p=e.length,m=t.length,f=y.computeStrides(e),d=y.computeStrides(t),h=N.getBroadcastDims(e,a),g=N.getBroadcastDims(t,a);if(h.length+g.length===0)for(let x=0;x_[A]=0);let w=y.locToIndex(_,p,f),v=b.slice(-m);g.forEach(A=>v[A]=0);let $=y.locToIndex(v,m,d);c[x]=r(o[w],n[$])}return[c,a]}}function cr(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,i=t.makeTensorInfo(o.shape,"complex64"),l=t.data.get(i.dataId);return l.complexTensorInfos={real:t.makeTensorInfo(o.shape,"float32",s),imag:t.makeTensorInfo(n.shape,"float32",a)},i}var UE={kernelName:Hl,backendName:"cpu",kernelFunc:cr};function Fp(r,e,t="float32"){if(t==="complex64"){let n=Fp(r,e,"float32"),s=Fp(r,e,"float32");return cr({inputs:{real:n,imag:s},backend:r})}let o=y.makeZerosTypedArray(y.sizeFromShape(e),t);return r.makeTensorInfo(e,t,o)}function Tr(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var jE={kernelName:us,backendName:"cpu",kernelFunc:Tr};function Kn(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.data.get(o.dataId).complexTensorInfos.real,s=t.data.get(n.dataId).values;return t.makeTensorInfo(n.shape,n.dtype,s)}var HE={kernelName:cu,backendName:"cpu",kernelFunc:Kn};function Xn(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return Tr({inputs:{x:n},backend:t});let a=Fp(t,n.shape,n.dtype),i=Xn({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=cr({inputs:{real:i,imag:a},backend:t});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=Kn({inputs:{input:n},backend:t}),i=Xn({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!y.hasEncodingLoss(n.dtype,s)){let a=Tr({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32"){let a=t.data.get(n.dataId).values,i=Int32Array.from(a);return t.makeTensorInfo(n.shape,"int32",i)}if(s==="bool"){let a=t.data.get(n.dataId).values,i=y.toTypedArray([0],n.dtype),[l,u]=Ye((c,p)=>c!==p?1:0)(n.shape,[],a,i,"bool");return t.makeTensorInfo(u,"bool",l)}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var qE={kernelName:Eo,backendName:"cpu",kernelFunc:Xn};function ot(r,e,t,o){return t==null?({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;ee([a,i],r);let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}:({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;if(a.dtype==="complex64"||i.dtype==="complex64"){let u=Xn({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),c=l.data.get(u.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=l.data.get(p.dataId).values,d=l.data.get(m.dataId).values,h=Xn({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,_=l.data.get(x.dataId).values,w=l.data.get(b.dataId).values,[v,$,A]=t(a.shape,i.shape,f,d,_,w),R=l.makeTensorInfo(A,"float32",v),M=l.makeTensorInfo(A,"float32",$),z=cr({inputs:{real:R,imag:M},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(h),l.disposeIntermediateTensorInfo(R),l.disposeIntermediateTensorInfo(M),z}else{let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}}}function Op(r){return(e,t,o,n,s,a)=>{let i=N.assertAndGetBroadcastShape(e,t),l=y.sizeFromShape(i),u=i.length,c=y.computeStrides(i),p=y.getTypedArrayFromDType("float32",l),m=y.getTypedArrayFromDType("float32",l),f=N.getBroadcastDims(e,i),d=N.getBroadcastDims(t,i),h=N.mergeRealAndImagArrays(o,n),g=N.mergeRealAndImagArrays(s,a),x=e.length,b=y.computeStrides(e),_=t.length,w=y.computeStrides(t);if(f.length+d.length===0)for(let v=0;vA[U]=0);let R=y.locToIndex(A,x,b),M=$.slice(-_);d.forEach(U=>M[U]=0);let z=y.locToIndex(M,_,w),W=r(h[R*2],h[R*2+1],g[z*2],g[z*2+1]);p[v]=W.real,m[v]=W.imag}return[p,m,i]}}var KE=Ye((r,e)=>r+e),z6=Op((r,e,t,o)=>({real:r+t,imag:e+o})),Ga=ot(xo,KE,z6),XE={kernelName:xo,backendName:"cpu",kernelFunc:Ga};function Wd(r,e,t,o,n){let s=y.sizeFromShape(o),a=y.makeZerosTypedArray(n,t);for(let i=0;i=n||(s>0?a[l]+=e[i]:a[l]+=1)}return a}function Fk(r,e,t,o=!1){let n=r.shape[0],s=r.shape[1],a=Ce([n,t],e.dtype);for(let i=0;i=t||(o?a.set(1,i,u):e.size>0?a.set(a.get(i,u)+e.get(i,l),i,u):a.set(a.get(i,u)+1,i,u))}return a}function Yn(r){return(e,t,o)=>{let n=y.getTypedArrayFromDType(t,e.length);for(let s=0;s{let{x:a}=o;if(ee(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=y.sizeFromShape(a.shape),c=t||a.dtype,p=y.getArrayFromDType(c,u);for(let m=0;m{let{x:a}=o;if(ee(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=t||a.dtype,c=e(l,u,n);return i.makeTensorInfo(a.shape,u,c)}}var YE=Yn(r=>Math.ceil(r)),B6=Zn(ei,YE),ZE={kernelName:ei,backendName:"cpu",kernelFunc:B6};function Ud(r,e,t,o){let n=y.getArrayFromDType(t,y.sizeFromShape(e));if(o&&t!=="string"){let s=0;r.forEach(a=>{let i=y.sizeFromShape(a.shape);n.set(a.vals,s),s+=i})}else{let s=0;r.forEach(a=>{let i=t==="string"?N.fromUint8ToStringArray(a.vals):a.vals,l=0;for(let u=0;uMath.exp(r)),Ok=Zn(en,JE),QE={kernelName:en,backendName:"cpu",kernelFunc:Ok};var eA=Yn(r=>Math.expm1(r)),V6=Zn(ai,eA),tA={kernelName:ai,backendName:"cpu",kernelFunc:V6};var rA=Yn(r=>Math.floor(r)),G6=Zn(tn,rA),oA={kernelName:tn,backendName:"cpu",kernelFunc:G6};function Pk(r,e,t){let o=Ce(t,r.dtype);for(let n=0;nr>e?1:0),W6=ot(ci,nA,null,"bool"),sA={kernelName:ci,backendName:"cpu",kernelFunc:W6};var iA=Ye((r,e)=>rMath.log(r)),j6=Zn(an,lA),uA={kernelName:an,backendName:"cpu",kernelFunc:j6};function Lk(r,e,t,o){let n=y.getTypedArrayFromDType(o,y.sizeFromShape(t));for(let s=0;si&&(i=u)}n[s]=i}return n}var cA=Ye((r,e)=>Math.max(r,e)),H6=ot(un,cA),pA={kernelName:un,backendName:"cpu",kernelFunc:H6};var mA=Ye((r,e)=>Math.min(r,e)),q6=ot(fn,mA),fA={kernelName:fn,backendName:"cpu",kernelFunc:q6};var kx=Ye((r,e)=>r*e),K6=Op((r,e,t,o)=>({real:r*t-e*o,imag:r*o+e*t})),jd=ot(dn,kx,K6),dA={kernelName:dn,backendName:"cpu",kernelFunc:jd};function hA(r,e,t){let o=y.createScalarValue(-1,t);return kx([],e,o,r,t)}function X6(r){let{inputs:e,backend:t}=r,{x:o}=e;ee(o,"neg");let n=t.data.get(o.dataId).values,[s,a]=hA(n,o.shape,o.dtype);return t.makeTensorInfo(a,o.dtype,s)}var gA={kernelName:cs,backendName:"cpu",kernelFunc:X6};var xA=Ye((r,e)=>r!==e?1:0),Y6=ot(bi,xA,null,"bool"),yA={kernelName:bi,backendName:"cpu",kernelFunc:Y6};function Hd(r,e,t,o,n){let s=e.length,a=y.sizeFromShape(e),i=y.computeStrides(e),l=y.computeStrides(n),u=y.getTypedArrayFromDType(t,y.sizeFromShape(n));for(let c=0;ct.disposeIntermediateTensorInfo(b)),t.makeTensorInfo(x,g,d)}var wA={kernelName:vi,backendName:"cpu",kernelFunc:Z6};function qd(r,e,t,o){let n=r===e,s=r1;if(n||s||a)return y.makeZerosTypedArray(0,o);let i=Math.abs(Math.ceil((e-r)/t)),l=y.makeZerosTypedArray(i,o);e1/Math.sqrt(r)),J6=Zn(Cn,kA),vA={kernelName:Cn,backendName:"cpu",kernelFunc:J6};function Kd(r,e,t,o,n){let s=or.isSliceContinous(o,e,t),a=y.sizeFromShape(t),i=y.computeStrides(o);if(s){let p=or.computeFlatOffset(e,i);return n==="string"?r.slice(p,p+a):r.subarray(p,p+a)}let l=n==="string"?N.fromUint8ToStringArray(r):r,u=Ce(o,n,l),c=Ce(t,n);for(let p=0;pd+e[h]);c.set(u.get(...f),...m)}return n==="string"?N.fromStringArrayToUint8(c.values):c.values}function Jn(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o;ee(n,"slice");let[i,l]=or.parseSliceParams(n,s,a);or.assertParamsValid(n,i,l);let u=t.data.get(n.dataId).values,c=Kd(u,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,c)}var CA={kernelName:hs,backendName:"cpu",kernelFunc:Jn};var IA=Ye((r,e)=>{let t=r-e;return t*t}),Q6=ot(An,IA),NA={kernelName:An,backendName:"cpu",kernelFunc:Q6};function zk(r,e,t,o){let n=Ce(r,e.dtype);for(let s=0;sr-e),e5=Op((r,e,t,o)=>({real:r-t,imag:e-o})),Xd=ot(Dn,SA,e5),TA={kernelName:Dn,backendName:"cpu",kernelFunc:Xd};function Bk(r,e){let t=new Array(r.rank);for(let n=0;n_.value-b.value);let h=p*o,g=l.subarray(h,h+o),x=u.subarray(h,h+o);for(let b=0;b{for(let g=0;gnew Rk,1);var Uk=Ae(ni,r=>r>=0?r:Math.exp(r)-1),AA={kernelName:ni,backendName:"cpu",kernelFunc:Uk};function jk(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o;ee([n],"leakyRelu");let a=y.sizeFromShape(n.shape),i=t.data.get(n.dataId).values,l=y.getTypedArrayFromDType("float32",a);for(let u=0;ur<0?e*r:r);function Hk(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e;ee([o,n],"prelu");let s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,[i,l]=t5(o.shape,n.shape,s,a,o.dtype);return t.makeTensorInfo(l,o.dtype,i)}var $A={kernelName:yn,backendName:"cpu",kernelFunc:Hk};var qk=Ae(bn,r=>Math.max(0,r)),RA={kernelName:bn,backendName:"cpu",kernelFunc:qk};var Kk=Ae(wn,r=>Math.min(Math.max(0,r),6)),FA={kernelName:wn,backendName:"cpu",kernelFunc:Kk};function Pp(r,e,t,o,n){if(t==="linear")return Tr({inputs:{x:e},backend:r});if(t==="relu")return qk({inputs:{x:e},backend:r});if(t==="elu")return Uk({inputs:{x:e},backend:r});if(t==="relu6")return Kk({inputs:{x:e},backend:r});if(t==="prelu")return Hk({inputs:{x:e,alpha:o},backend:r});if(t==="leakyrelu")return jk({inputs:{x:e},backend:r,attrs:{alpha:n}});throw new Error(`Activation ${t} has not been implemented for the CPU backend.`)}function tt(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=y.sizeFromShape(n.shape),i=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(i);y.assert(a===l,()=>`The new shape (${i}) has ${l} elements and the old shape (${n.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`),t.incRef(n.dataId);let u=t.data.get(n.dataId);if(u.complexTensorInfos!=null){let c=u.complexTensorInfos.real,p=u.complexTensorInfos.imag;c.shape=i,p.shape=i}return{dataId:n.dataId,shape:i,dtype:n.dtype}}var OA={kernelName:fs,backendName:"cpu",kernelFunc:tt};function Xk(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;ee([n,s],"matMul");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),b=g===x||g===1||x===1;y.assert(l>=2&&u>=2&&b,()=>`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 (${d}) and (${h}).`);let w=(g>x?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let v=a?[g,c,m]:[g,m,c],$=i?[x,f,p]:[x,p,f],A=tt({inputs:{x:n},backend:t,attrs:{shape:v}}),R=tt({inputs:{x:s},backend:t,attrs:{shape:$}}),M=a?A.shape[1]:A.shape[2],z=a?A.shape[2]:A.shape[1],W=i?R.shape[1]:R.shape[2],U=Math.max(g,x),q=t.data.get(A.dataId).values,Z=t.data.get(R.dataId).values,X=y.computeStrides(A.shape),Y=y.computeStrides(R.shape),[te,K,re]=a?[X[0],1,X[1]]:[X[0],X[1],1],[ie,se,pe]=i?[1,Y[1],Y[0]]:[Y[1],1,Y[0]],ae=z*W,xe=Ce([U,z,W],A.dtype),ge=xe.values,_e=t.blockSize;for(let ke=0;keMath.acos(r)),LA={kernelName:qs,backendName:"cpu",kernelFunc:o5};var n5=Ae(Ks,r=>Math.acosh(r)),zA={kernelName:Ks,backendName:"cpu",kernelFunc:n5};function s5(r){let{inputs:e,backend:t}=r,o=e;ee(e,"addN");let n=o.map(i=>t.data.get(i.dataId).values),s=Ce(o[0].shape,o[0].dtype),a=s.values;for(let i=0;ib&&(b=v,_=w)}f[g]=_}return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var WA={kernelName:jo,backendName:"cpu",kernelFunc:l5};function u5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o;ee(n,"argMin");let a=y.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=tr({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),a=[a[0]],N.assertAxesAreInnerMostDims("argMin",a,l.shape.length);let[c,p]=N.computeOutAndReduceShapes(l.shape,a),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=t.data.get(l.dataId).values;for(let g=0;gt.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var UA={kernelName:oa,backendName:"cpu",kernelFunc:u5};var c5=Ae(Xs,r=>Math.asin(r)),jA={kernelName:Xs,backendName:"cpu",kernelFunc:c5};var p5=Ae(Ys,r=>Math.asinh(r)),HA={kernelName:Ys,backendName:"cpu",kernelFunc:p5};var m5=Ae(Zs,r=>Math.atan(r)),qA={kernelName:Zs,backendName:"cpu",kernelFunc:m5};var f5=Ye((r,e)=>Math.atan2(r,e)),d5=ot(Qs,f5),KA={kernelName:Qs,backendName:"cpu",kernelFunc:d5};var h5=Ae(Js,r=>Math.atanh(r)),XA={kernelName:Js,backendName:"cpu",kernelFunc:h5};function Mp(r,e,t,o,n,s){let a=n.strideHeight,i=n.strideWidth,l=n.dilationHeight,u=n.dilationWidth,c=n.effectiveFilterHeight,p=n.effectiveFilterWidth,m=n.padInfo.top,f=n.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=Ce(n.outShape,t),g=h.values,x=n.outShape[1]*n.outShape[2]*n.outShape[3],b=n.outShape[2]*n.outShape[3],_=n.outShape[3];for(let w=0;wte?te=ge:s==="avg"&&(K+=ge,re++)}if(isNaN(te))break}let ie=U+q*_+A;g[ie]=s==="avg"?K/re:te}}}return h}function vx(r,e,t,o,n=!1,s=!1){let a=Ce(o.outShape,"int32"),i=o.strideHeight,l=o.strideWidth,u=o.dilationHeight,c=o.dilationWidth,p=o.effectiveFilterHeight,m=o.effectiveFilterWidth,f=o.padInfo.top,d=o.padInfo.left,h=Ce(e,t,r);for(let g=0;gz&&(z=Y,n?W=s?((g*o.inHeight+U)*o.inWidth+Z)*o.inChannels+x:(U*o.inWidth+Z)*o.inChannels+x:W=q*m+X)}}a.set(W,g,b,$,x)}}return a}function Cx(r,e,t,o,n,s){let a=n.strideDepth,i=n.strideHeight,l=n.strideWidth,u=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,m=n.effectiveFilterDepth,f=n.effectiveFilterHeight,d=n.effectiveFilterWidth,h=n.padInfo.front,g=n.padInfo.top,x=n.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,_=Ce(n.outShape,t),w=_.values,v=n.outShape[1]*n.outShape[2]*n.outShape[3]*n.outShape[4],$=n.outShape[2]*n.outShape[3]*n.outShape[4],A=n.outShape[3]*n.outShape[4],R=n.outShape[4];for(let M=0;MDe?De=Ft:s==="avg"&&($e+=Ft,Re++),isNaN(De))break}if(isNaN(De))break}if(isNaN(De))break}let He=ke+U;w[He]=s==="avg"?$e/Re:De}}}}return _}function YA(r,e){let t=Ce(e.outShape,"int32"),o=e.strideDepth,n=e.strideHeight,s=e.strideWidth,a=e.dilationDepth,i=e.dilationHeight,l=e.dilationWidth,u=e.effectiveFilterDepth,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,f=e.padInfo.top,d=e.padInfo.left;for(let h=0;h=q&&(q=se,Z=Y*c*p+K*c+ie)}}}t.set(Z,h,x,v,M,g)}}}return t}function g5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;ee(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Tr({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=y.computeStrides(n.shape),d=Mp(m,n.shape,n.dtype,f,c,"avg");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var ZA={kernelName:Ho,backendName:"cpu",kernelFunc:g5};function x5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;ee(n,"avgPool3d");let c=N.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=Cx(p,n.shape,n.dtype,y.computeStrides(n.shape),c,"avg");return t.makeTensorInfo(m.shape,"float32",m.values)}var JA={kernelName:na,backendName:"cpu",kernelFunc:x5};function y5(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;ee([n,s],"avgPool3DGrad");let c=N.computePool3DInfo(s.shape,a,i,1,l,u),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,_=c.dilationWidth,w=c.effectiveFilterDepth,v=c.effectiveFilterHeight,$=c.effectiveFilterWidth,A=w-1-c.padInfo.front,R=$-1-c.padInfo.left,M=v-1-c.padInfo.top,z=Ce(s.shape,"float32"),W=1/(d*h*g),U=t.bufferSync(n);for(let q=0;q=c.outDepth||Math.floor(ae)!==ae))for(let xe=0;xe=c.outHeight||Math.floor(ge)!==ge))for(let _e=0;_e<$;_e+=_){let ke=(ie+_e)/f;if(ke<0||ke>=c.outWidth||Math.floor(ke)!==ke)continue;se+=U.get(q,ae,ge,ke,Z)}}}z.set(se*W,q,X,Y,te,Z)}return t.makeTensorInfo(z.shape,z.dtype,z.values)}var QA={kernelName:Ul,backendName:"cpu",kernelFunc:y5};function b5(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;ee([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=N.computePool2DInfo(a.shape,i,l,1,u),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,_=b-1-c.padInfo.left,w=x-1-c.padInfo.top,v=Ce(a.shape,"float32"),$=1/(f*d),A=t.data.get(n.dataId).values,R=Ce(n.shape,"float32",A);for(let M=0;M=c.outHeight||Math.floor(te)!==te))for(let K=0;K=c.outWidth||Math.floor(re)!==re)continue;X+=R.get(M,te,re,z)}}v.set(X*$,M,W,U,z)}return t.makeTensorInfo(v.shape,v.dtype,v.values)}var e2={kernelName:Wl,backendName:"cpu",kernelFunc:b5};function _5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,scale:s,offset:a,mean:i,variance:l}=e;y.assert(i.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||i.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ee([n,i,l,s,a],"batchNorm");let{varianceEpsilon:u}=o;u==null&&(u=.001);let c=t.data.get(n.dataId).values,p=t.data.get(i.dataId).values,m=t.data.get(l.dataId).values,f=s?t.data.get(s.dataId).values:new Float32Array([1]),d=a?t.data.get(a.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,_=p.length,w=0,v=0,$=0,A=0;for(let R=0;R=g&&(w=0),v>=_&&(v=0),$>=x&&($=0),A>=b&&(A=0);return t.makeTensorInfo(n.shape,n.dtype,h)}var t2={kernelName:on,backendName:"cpu",kernelFunc:_5};function w5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;ee([n],"batchToSpaceND");let i=s.reduce((x,b)=>x*b),l=N.getReshaped(n.shape,s,i),u=N.getPermuted(l.length,s.length),c=N.getReshapedPermuted(n.shape,s,i),p=N.getSliceBeginCoords(a,s.length),m=N.getSliceSize(c,a,s.length),f=tt({inputs:{x:n},backend:t,attrs:{shape:l}}),d=tr({inputs:{x:f},backend:t,attrs:{perm:u}}),h=tt({inputs:{x:d},backend:t,attrs:{shape:c}}),g=Jn({inputs:{x:h},backend:t,attrs:{begin:p,size:m}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var r2={kernelName:sa,backendName:"cpu",kernelFunc:w5};function k5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.data.get(n.dataId).values,l=t.data.get(s.dataId).values,u=Wd(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var o2={kernelName:jl,backendName:"cpu",kernelFunc:k5};var v5=Ae(Ao,(r,e)=>{let t=e;return r>t.clipValueMax?t.clipValueMax:r{let{x:e}=r.inputs,t=r.backend,o=new Float32Array(y.sizeFromShape(e.shape)),n=t.data.get(e.dataId),s=n.complexTensorInfos.real,a=n.complexTensorInfos.imag,i=t.data.get(s.dataId).values,l=t.data.get(a.dataId).values;for(let u=0;uh.shape),s);if(y.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(h=>y.sizeFromShape(h.shape)>0);if(i.length===1)return Tr({inputs:{x:i[0]},backend:t});let l=i.map(h=>h.shape);if(N.assertParamsConsistent(l,s),i[0].dtype==="complex64"){let h=i.map(w=>Kn({inputs:{input:w},backend:t})),g=i.map(w=>Ki({inputs:{input:w},backend:t})),x=vl({inputs:h,backend:t,attrs:{axis:s}}),b=vl({inputs:g,backend:t,attrs:{axis:s}}),_=cr({inputs:{real:x,imag:b},backend:t});return h.forEach(w=>t.disposeIntermediateTensorInfo(w)),g.forEach(w=>t.disposeIntermediateTensorInfo(w)),t.disposeIntermediateTensorInfo(x),t.disposeIntermediateTensorInfo(b),_}let u=i.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return tt({inputs:{x:h},backend:t,attrs:{shape:[-1,g]}})}),c=u.map(h=>({vals:t.data.get(h.dataId).values,shape:h.shape}));a=N.computeOutShape(u.map(h=>h.shape),1);let p=u[0].shape[0]===1,m=Ud(c,a,e[0].dtype,p),f=N.computeOutShape(i.map(h=>h.shape),s),d=t.makeTensorInfo(f,e[0].dtype,m);return u.forEach(h=>t.disposeIntermediateTensorInfo(h)),d}var a2={kernelName:is,backendName:"cpu",kernelFunc:vl};function Yk(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o;ee([n,s],"conv2d");let p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,_=m.dataFormat==="channelsLast",w=new ct(m.outShape,n.dtype),v=y.computeStrides(n.shape),$=y.computeStrides(s.shape),A=v[0],R=_?v[1]:v[2],M=_?v[2]:1,z=_?1:v[1],W=w.strides[0],U=_?w.strides[1]:w.strides[2],q=_?w.strides[2]:1,Z=_?1:w.strides[1],X=t.data.get(n.dataId).values,Y=t.data.get(s.dataId).values,te=w.values;for(let K=0;K=m.inHeight)continue;let _e=xe*$[0],ke=re+ge*R;for(let De=0;De=m.inWidth)continue;let wt=_e+He*$[1],kt=ke+ut*M,pt=wt;for(let vt=0;vt=u.inDepth)continue;let K=Y*M[0],re=W+te*R[1];for(let ie=0;ie=u.inHeight)continue;let ge=K+ae*M[1],_e=re+xe*R[2];for(let ke=0;ke=u.inWidth)continue;let ut=ge+Re*M[2],wt=_e+He*u.inChannels,kt=ut;for(let pt=0;ptMath.cos(r)),d2={kernelName:Yo,backendName:"cpu",kernelFunc:A5};var D5=Ae(ti,r=>Math.cosh(r)),h2={kernelName:ti,backendName:"cpu",kernelFunc:D5};function $5(r){let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,[c,p,m,f]=n.shape,d=s.shape[0],[h,g]=i,x=Ce([d,h,g,f],"float32"),b=t.data.get(s.dataId).values,_=t.data.get(a.dataId).values,w=t.data.get(n.dataId).values,v=y.computeStrides(n.shape),$=y.computeStrides(x.shape);for(let A=0;A=c)continue;let Z=h>1?(W-M)*(p-1)/(h-1):0,X=g>1?(U-z)*(m-1)/(g-1):0;for(let Y=0;Y1?M*(p-1)+Y*Z:.5*(M+W)*(p-1);if(te<0||te>p-1){for(let K=0;K1?z*(m-1)+se*X:.5*(z+U)*(m-1);if(pe<0||pe>m-1){for(let _e=0;_e1?z*(m-1)+K*X:.5*(z+U)*(m-1);if(re<0||re>m-1){for(let pe=0;pex+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`),y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=n.shape[1],u=n.shape[2],c=n.shape[3],p=l*s,m=u*s,f=c/(s*s),d=t.data.get(n.dataId).values,h=new Float32Array(i*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${m}'`);let f=N.computeConv2DInfo(n.shape,s.shape,a,m,i,u,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,_=b.left,w=b.top,v=f.outChannels/f.inChannels,$=new ct(f.outShape,n.dtype),A=t.data.get(n.dataId).values,R=t.data.get(s.dataId).values,M=$.values;for(let z=0;z=f.inHeight)continue;let K=Y*p[0],re=W+te*c[1];for(let ie=0;ie=f.inWidth)continue;let ge=K+ae*p[1],_e=re+xe*f.inChannels,ke=se,De=ge;for(let $e=0;$e{let{x:o,filter:n}=r,{strides:s,pad:a,dilations:i}=t,l=e,u=l.data.get(o.dataId).values,c=o.shape.length,p=l.data.get(n.dataId).values,m=n.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:_,strideHeight:w,strideWidth:v,filterHeight:$,filterWidth:A,dilationHeight:R,dilationWidth:M,outShape:z}=N.computeDilation2DInfo(o.shape,n.shape,s,a,"NHWC",i),W=y.sizeFromShape(z),U=z.length,q=y.getArrayFromDType(o.dtype,W);for(let X=0;X=0&&xe=0&&_ese&&(se=$e)}}}let pe=y.locToIndex([X,Y,K,ie],U,y.computeStrides(z));q[pe]=se}}}return{dataId:l.write(y.toTypedArray(q,o.dtype),z,o.dtype),shape:z,dtype:o.dtype}}};var I2={kernelName:Rc,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=y.toNestedArray(o.shape,u.data.get(o.dataId).values),p=y.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:_,strideWidth:w,filterHeight:v,filterWidth:$,dilationHeight:A,dilationWidth:R,outShape:M}=N.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);y.assert(s.rank===M.length,()=>`Error in ${Rc}, dy must have the same rank as output ${M.length}, but got ${s.rank}`);let z=y.toNestedArray(M,u.data.get(s.dataId).values),W=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let q=0;q=0&&ae=0&&gere&&(re=_e,ie=pe,se=xe)}}}W[ie][se][K]+=z[q][Z][Y][K]}}}return{dataId:u.write(y.toTypedArray(W,o.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};var N2={kernelName:$c,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=y.toNestedArray(o.shape,u.data.get(o.dataId).values),p=y.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:_,strideWidth:w,filterHeight:v,filterWidth:$,dilationHeight:A,dilationWidth:R,outShape:M}=N.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);y.assert(s.rank===M.length,()=>`Error in ${$c}, dy must have the same rank as output ${M.length}, but got ${s.rank}`);let z=y.toNestedArray(M,u.data.get(s.dataId).values),W=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let q=0;q=0&&ae=0&&gere&&(re=_e,ie=ae,se=ge)}}}W[q][ie][se][K]+=z[q][Z][Y][K]}}}return{dataId:u.write(y.toTypedArray(W,o.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};function z5(r){let{inputs:e,backend:t}=r,{dy:o,y:n}=e;ee([o,n],"eluGrad");let s=new Float32Array(y.sizeFromShape(n.shape)),a=t.data.get(n.dataId).values,i=t.data.get(o.dataId).values;for(let l=0;l=1?s[l]=i[l]:s[l]=i[l]*(u+1)}return t.makeTensorInfo(n.shape,"float32",s)}var S2={kernelName:eu,backendName:"cpu",kernelFunc:z5};var B5=Ye((r,e)=>r===e?1:0),Jk=ot(ii,B5,null,"bool"),T2={kernelName:ii,backendName:"cpu",kernelFunc:Jk};var V5=N.ERF_P,G5=N.ERF_A1,W5=N.ERF_A2,U5=N.ERF_A3,j5=N.ERF_A4,H5=N.ERF_A5,q5=Ae(si,r=>{let e=Math.sign(r),t=Math.abs(r),o=1/(1+V5*t);return e*(1-((((H5*o+j5)*o+U5)*o+W5)*o+G5)*o*Math.exp(-t*t))}),E2={kernelName:si,backendName:"cpu",kernelFunc:q5};function Lp(r){let{inputs:e,backend:t,attrs:o}=r,{input:n}=e,{dim:s}=o,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(y.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),tt({inputs:{x:n},backend:t,attrs:{shape:i}})}var A2={kernelName:as,backendName:"cpu",kernelFunc:Lp};var K5=Ye((r,e)=>r/e),Yd=ot(Qo,K5),Zd={kernelName:Qo,backendName:"cpu",kernelFunc:Yd};function Ix(r,e,t){let o=r.shape,n=o[0],s=o[1],a=t.data.get(r.dataId),i=a.complexTensorInfos.real,l=a.complexTensorInfos.imag,u=[n,s],c=y.sizeFromShape(u),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:o}=r,n=t,s=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(o.shape)),[a,i,l,u]=o.shape,c=n.data.get(o.dataId).values;for(let m=0;m=0&&vMath.floor(r/e)),tX=ot(rn,eX,null,"int32"),F2={kernelName:rn,backendName:"cpu",kernelFunc:tX};function rX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=Yk({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=Ga({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Pp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var O2={kernelName:_s,backendName:"cpu",kernelFunc:rX};function oX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=Zk({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=Ga({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Pp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var P2={kernelName:ws,backendName:"cpu",kernelFunc:oX};function nX(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=y.sizeFromShape(o.shape),a=n.shape,i=a[a.length-1],[l,u,c,p]=N.prepareAndValidate(o,n);if(u===0)return t.makeTensorInfo(l,o.dtype,[]);let m=Ce([u,c],o.dtype),f=t.data.get(n.dataId).values,d=t.data.get(o.dataId).values;for(let h=0;h=s/c)throw new Error(`Invalid indices: ${g} does not index into ${o.shape}`);for(let b=0;br>=e?1:0),aX=ot(nn,iX,null,"bool"),z2={kernelName:nn,backendName:"cpu",kernelFunc:aX};function lX(r){let{inputs:e,backend:t}=r,{input:o}=e,n=y.sizeFromShape(o.shape),s=o.shape[o.shape.length-1],a=n/s,i=tt({inputs:{x:o},backend:t,attrs:{shape:[a,s]}}),l=Ix(i,!0,t),u=tt({inputs:{x:l},backend:t,attrs:{shape:o.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(l),u}var B2={kernelName:ru,backendName:"cpu",kernelFunc:lX};var uX=Ae(pi,r=>Number.isFinite(r)?1:0,"bool"),V2={kernelName:pi,backendName:"cpu",kernelFunc:uX};var cX=Ae(mi,r=>Math.abs(r)===Infinity?1:0,"bool"),G2={kernelName:mi,backendName:"cpu",kernelFunc:cX};var pX=Ae(fi,r=>Number.isNaN(r)?1:0,"bool"),W2={kernelName:fi,backendName:"cpu",kernelFunc:pX};var mX=Ye((r,e)=>r<=e?1:0),fX=ot(hi,mX,null,"bool"),U2={kernelName:hi,backendName:"cpu",kernelFunc:fX};function dX(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=Mk(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var j2={kernelName:nu,backendName:"cpu",kernelFunc:dX};var hX=Ae(gi,r=>Math.log1p(r)),H2={kernelName:gi,backendName:"cpu",kernelFunc:hX};var gX=Ye((r,e)=>r&&e),xX=ot(xi,gX,null,"bool"),q2={kernelName:xi,backendName:"cpu",kernelFunc:xX};var yX=Ae(Za,r=>r?0:1,"bool"),K2={kernelName:Za,backendName:"cpu",kernelFunc:yX};var bX=Ye((r,e)=>r||e),_X=ot(Ja,bX,null,"bool"),X2={kernelName:Ja,backendName:"cpu",kernelFunc:_X};function wX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o;ee(n,"LRN");let u=n.shape[3],c=u-1,p=t.data.get(n.dataId).values,m=y.sizeFromShape(n.shape),f=new Float32Array(m);function d(h){let g=h%u,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),_=0;for(;x<=b;x++){let w=p[x];_+=w*w}return _}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Tr({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=y.computeStrides(n.shape),d=Mp(m,n.shape,n.dtype,f,c,"max");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var Q2={kernelName:cn,backendName:"cpu",kernelFunc:vX};function CX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;ee(n,"maxPool3d");let c=N.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=Cx(p,n.shape,n.dtype,y.computeStrides(n.shape),c,"max");return t.makeTensorInfo(m.shape,"float32",m.values)}var eD={kernelName:pa,backendName:"cpu",kernelFunc:CX};function IX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;ee([n,s],"maxPool3DGrad");let c=N.computePool3DInfo(s.shape,a,i,1,l,u),p=t.bufferSync(s),m=YA(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,_=c.effectiveFilterDepth,w=c.effectiveFilterHeight,v=c.effectiveFilterWidth,$=_-1-c.padInfo.front,A=v-1-c.padInfo.left,R=w-1-c.padInfo.top,M=Ce(s.shape,"float32"),z=t.bufferSync(n);for(let W=0;W=c.outDepth||Math.floor(se)!==se))for(let pe=0;pe=c.outHeight||Math.floor(ae)!==ae))for(let xe=0;xe=c.outWidth||Math.floor(ge)!==ge)continue;let _e=_*w*v-1-m.get(W,se,ae,ge,U),ke=ie*w*v+pe*v+xe,De=_e===ke?1:0;if(De===0)continue;re+=z.get(W,se,ae,ge,U)*De}}}M.set(re,W,q,Z,X,U)}return t.makeTensorInfo(M.shape,M.dtype,M.values)}var tD={kernelName:au,backendName:"cpu",kernelFunc:IX};function NX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s,output:a}=e,i=s;ee([s,a],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=o,m=N.computePool2DInfo(i.shape,l,u,1,c,p),f=t.data.get(i.dataId).values,d=Ce(m.outShape,i.dtype,vx(f,i.shape,i.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,_=m.effectiveFilterHeight,w=m.effectiveFilterWidth,v=w-1-m.padInfo.left,$=_-1-m.padInfo.top,A=Ce(i.shape,"float32"),R=t.data.get(n.dataId).values,M=Ce(n.shape,"float32",R);for(let z=0;z=m.outHeight||Math.floor(K)!==K))for(let re=0;re=m.outWidth||Math.floor(ie)!==ie)continue;let se=_*w-1-d.get(z,K,ie,W),pe=te*w+re,ae=se===pe?1:0;if(ae===0)continue;Y+=M.get(z,K,ie,W)*ae}}A.set(Y,z,U,q,W)}return t.makeTensorInfo(A.shape,A.dtype,A.values)}var rD={kernelName:iu,backendName:"cpu",kernelFunc:NX};function oD(r,e,t,o,n){let s=y.computeStrides(e),a=Mp(r,e,t,s,n,"max"),i=vx(r,e,t,n,!0,o);return[a.values,i.values]}var nD={kernelName:lu,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;ee(o,"MaxPoolWithArgmax");let u=l.data.get(o.dataId).values,c=N.computePool2DInfo(o.shape,n,s,[1,1],a),[p,m]=oD(u,o.shape,o.dtype,i,c),f=l.write(p,c.outShape,o.dtype),d=l.write(m,c.outShape,o.dtype);return[{dataId:f,shape:c.outShape,dtype:o.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function nc(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;ee(n,"sum");let i;n.dtype==="bool"?i=Xn({inputs:{x:n},backend:t,attrs:{dtype:"int32"}}):i=Tr({inputs:{x:n},backend:t});let l=i.shape.length,u=y.parseAxisParam(s,i.shape),c=N.getAxesPermutation(u,l),p=u,m=i;c!=null&&(m=tr({inputs:{x:i},backend:t,attrs:{perm:c}}),p=N.getInnerMostAxes(p.length,l)),N.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=N.computeOutAndReduceShapes(m.shape,p),h=N.upcastType(m.dtype,"int32"),g=Fp(t,f,h),x=y.sizeFromShape(d),b=t.data.get(g.dataId).values,_=t.data.get(m.dataId).values;for(let w=0;wt.disposeIntermediateTensorInfo(g)),h}var iD={kernelName:pn,backendName:"cpu",kernelFunc:SX};function TX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;ee(n,"min");let i=y.parseAxisParam(s,n.shape),l=i,u=N.getAxesPermutation(l,n.shape.length),c=n;u!=null&&(c=tr({inputs:{x:n},backend:t,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,n.shape.length)),N.assertAxesAreInnerMostDims("min",l,c.shape.length);let[p,m]=N.computeOutAndReduceShapes(c.shape,l),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=t.data.get(c.dataId).values;for(let x=0;x_[0]+n.shape[w]+_[1]),l=s.map(_=>_[0]),u=s.map((_,w)=>_[0]+n.shape[w]),c=a==="reflect"?0:1,p=t.data.get(n.dataId).values,m=n.shape.length,f=y.computeStrides(n.shape),d=y.sizeFromShape(i),h=i.length,g=y.computeStrides(i),x=y.getTypedArrayFromDType(n.dtype,d);for(let _=0;_=u[$]&&(w[$]=(u[$]-1)*2-w[$]+c);w=w.map(($,A)=>$-l[A]);let v=y.locToIndex(w,m,f);x[_]=p[v]}return{dataId:t.write(x,i,n.dtype),shape:i,dtype:n.dtype}}var lD={kernelName:ma,backendName:"cpu",kernelFunc:EX};var AX=Ye((r,e)=>{let t=r%e;return r<0&&e<0||r>=0&&e>=0?t:(t+e)%e}),DX=ot(yi,AX),uD={kernelName:yi,backendName:"cpu",kernelFunc:DX};var pD=Sc(jm());function tv(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=n.shape.length,i=s;if(i===-1&&(i=a-1),i!==a-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${i}`);let l=y.parseAxisParam([i],n.shape),u=ev({inputs:{x:n},backend:t,attrs:{reductionIndices:l,keepDims:!1}}),c=N.expandShapeToKeepDim(u.shape,l),p=tt({inputs:{x:u},backend:t,attrs:{shape:c}}),m=Xd({inputs:{a:n,b:p},backend:t}),f=Ok({inputs:{x:m},backend:t}),d=nc({inputs:{x:f},backend:t,attrs:{axis:l,keepDims:!1}}),h=tt({inputs:{x:d},backend:t,attrs:{shape:c}}),g=Yd({inputs:{a:f,b:h},backend:t});return t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var cD={kernelName:En,backendName:"cpu",kernelFunc:tv};function $X(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o;ee(n,"multinomial");let l=i?n:tv({inputs:{logits:n},backend:t,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],p=t.data.get(l.dataId).values,m=[u,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&c[p]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Lp({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=vl({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var _D={kernelName:ms,backendName:"cpu",kernelFunc:rv};function BX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o;ee(n,"pad");let i=s.map((b,_)=>b[0]+n.shape[_]+b[1]),l=s.map(b=>b[0]),u=t.data.get(n.dataId).values,c=y.sizeFromShape(n.shape),p=n.shape.length,m=y.computeStrides(n.shape),f=y.sizeFromShape(i),d=i.length,h=y.computeStrides(i),g=y.getTypedArrayFromDType(n.dtype,f);a!==0&&g.fill(a);for(let b=0;b$+l[A]),v=y.locToIndex(w,d,h);g[v]=u[b]}return{dataId:t.write(g,i,n.dtype),shape:i,dtype:n.dtype}}var Nx={kernelName:gn,backendName:"cpu",kernelFunc:BX};var VX=Ye((r,e)=>Math.pow(r,e)),GX=ot(xn,VX),wD={kernelName:xn,backendName:"cpu",kernelFunc:GX};function WX(r){let{backend:e,attrs:t}=r,{start:o,stop:n,dtype:s,step:a}=t,i=qd(o,n,a,s);return e.makeTensorInfo([i.length],s,i)}var kD={kernelName:fa,backendName:"cpu",kernelFunc:WX};var UX=Ae(Ci,r=>1/r),vD={kernelName:Ci,backendName:"cpu",kernelFunc:UX};function jX(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o;ee(n,"resizeBilinear");let l=y.computeStrides(n.shape),[u,c]=i,[p,m,f,d]=n.shape,h=t.data.get(n.dataId).values,g=new Float32Array(y.sizeFromShape([p,u,c,d])),x=[s&&u>1?m-1:m,s&&c>1?f-1:f],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],_=0,w=x[0]/b[0],v=x[1]/b[1];for(let $=0;$1?u-1:u,a&&f>1?c-1:c],g=[a&&m>1?m-1:m,a&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],_=t.data.get(s.dataId).values,w=0;for(let v=0;v1?m-1:m,s&&c>1?f-1:f],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],_=x[0]/b[0],w=x[1]/b[1],v=0;for(let $=0;$1?c-1:c,a&&d>1?p-1:p],b=[a&&f>1?f-1:f,a&&d>1?d-1:d],_=x[0]/b[0],w=x[1]/b[1],v=1/_,$=1/w,A=Math.ceil(v)*2+2,R=Math.ceil($)*2+2;for(let M=0;M=f)continue;let ae=z+pe*l[1],xe=pe*_,ge=Math.min(c-1,a?Math.round(xe):Math.floor(xe));if(W===ge)for(let _e=0;_e=d)continue;let De=ae+ke*l[2],$e=ke*w,Re=Math.min(p-1,a?Math.round($e):Math.floor($e));X===Re&&(ie+=g[De+re])}}h[Y+re]=ie}}}}return t.makeTensorInfo(n.shape,n.dtype,h)}var SD={kernelName:pu,backendName:"cpu",kernelFunc:KX};function XX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o;ee(n,"reverse");let a=n.shape.length,i=y.parseAxisParam(s,n.shape);if(a===0)return Tr({inputs:{x:n},backend:t});let l=new ct(n.shape,n.dtype),u=t.bufferSync(n);for(let c=0;cm[f]=n.shape[f]-1-m[f]),l.set(u.get(...m),...p)}return t.makeTensorInfo(l.shape,l.dtype,l.values)}var TD={kernelName:kn,backendName:"cpu",kernelFunc:XX};var ED={kernelName:Ri,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(o.shape)),[u,c,p,m]=o.shape,[f,d]=N.getImageCenter(a,c,p),h=255,g=Math.sin(n),x=Math.cos(n),b=i.data.get(o.dataId).values;for(let w=0;w=0&&Z=0&&X{let e=Math.floor(r);return r-e<.5?Math.floor(r):r-e>.5?Math.ceil(r):e%2==0?e:e+1}),AD={kernelName:vn,backendName:"cpu",kernelFunc:YX};function Sx(r,e,t,o,n,s,a,i,l,u){let c=[o/n,n],p=r.values,m=e.values;if(o===0)return Ce(t,e.dtype);let f=Ce(c,e.dtype);f.values.fill(l);for(let d=0;d=o/n)throw new Error(`Invalid indices: ${h} does not index into ${t}`);for(let x=0;x1||n.shape.length===1?1:y.sizeFromShape(n.shape.slice(1));for(let d=0;dr>=0?e8*r:QX*(Math.exp(r)-1)),RD={kernelName:Ni,backendName:"cpu",kernelFunc:t8};var r8=Ae(Nn,r=>1/(1+Math.exp(-r))),FD={kernelName:Nn,backendName:"cpu",kernelFunc:r8};var o8=Ae(Ti,r=>r<0?-1:r>0?1:0),OD={kernelName:Ti,backendName:"cpu",kernelFunc:o8};var n8=Ae(In,r=>Math.sin(r)),PD={kernelName:In,backendName:"cpu",kernelFunc:n8};var s8=Ae(Si,r=>Math.sinh(r)),MD={kernelName:Si,backendName:"cpu",kernelFunc:s8};var i8=11920928955078125e-23,LD=Math.log(i8)+2,a8=Ae(Ei,r=>{let e=r>-LD,t=r{let m=[...c];m[i]=p;let f=Jn({inputs:{x:n},backend:t,attrs:{begin:u,size:m}});return u[i]+=p,f})}var GD={kernelName:gs,backendName:"cpu",kernelFunc:c8};var p8=Ae(Sn,r=>Math.sqrt(r)),WD={kernelName:Sn,backendName:"cpu",kernelFunc:p8};var UD={kernelName:ga,backendName:"cpu",kernelFunc:({inputs:r,backend:e})=>{let{x:t}=r,o=e;ee(t,"square");let n=o.data.get(t.dataId).values,s=new Float32Array(n.length);for(let i=0;i{let t=e;return isNaN(r)?NaN:r>0?1:t.alpha}),jD={kernelName:Do,backendName:"cpu",kernelFunc:m8};function f8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o;ee(n,"stridedSlice");let{nonStrided:f,$begin:d,$strides:h,size:g,newShape:x,outShape:b}=or.sliceInfo(n.shape,s,a,i,l,u,c,p,m),_=tt({inputs:{x:n},backend:t,attrs:{shape:x}}),w;if(f){let $=Jn({inputs:{x:_},backend:t,attrs:{begin:d,size:g}});w=tt({inputs:{x:$},backend:t,attrs:{shape:b}}),t.disposeIntermediateTensorInfo($)}else if(b.some($=>$===0))w=t.makeTensorInfo(b,n.dtype,[]);else{let $=t.bufferSync(_),A=zk(b,$,h,d);w=t.makeTensorInfo(A.shape,A.dtype,A.values)}let v=tt({inputs:{x:w},backend:t,attrs:{shape:b}});return t.disposeIntermediateTensorInfo(_),t.disposeIntermediateTensorInfo(w),v}var HD={kernelName:Ai,backendName:"cpu",kernelFunc:f8};var d8=Ae(Di,r=>Math.tan(r)),qD={kernelName:Di,backendName:"cpu",kernelFunc:d8};var h8=Ae($n,r=>Math.tanh(r)),KD={kernelName:$n,backendName:"cpu",kernelFunc:h8};function g8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reps:s}=o;ee(n,"tile");let a=Bk(t.bufferSync(n),s);return t.makeTensorInfo(a.shape,a.dtype,a.values)}var XD={kernelName:yo,backendName:"cpu",kernelFunc:g8};function x8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o;ee(n,"topk");let i=t.data.get(n.dataId).values,[l,u]=Vk(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var YD={kernelName:$i,backendName:"cpu",kernelFunc:x8};function y8(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;ee(s,"unique");let a=o.data.get(s.dataId).values,{outputValues:i,outputShape:l,indices:u}=Gk(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var ZD={kernelName:du,backendName:"cpu",kernelFunc:y8};function b8(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape.length,i=n.shape[s],l=new Array(a-1),u=0;for(let f=0;ft.disposeIntermediateTensorInfo(d)),f}var QD={kernelName:xa,backendName:"cpu",kernelFunc:_8};var w8=[MA,WE,LA,zA,XE,BA,VA,GA,WA,UA,jA,HA,qA,KA,XA,ZA,JA,QA,e2,PA,t2,r2,o2,qE,ZE,n2,UE,s2,a2,u2,c2,l2,m2,f2,p2,d2,h2,g2,x2,y2,b2,_2,w2,k2,v2,C2,N2,I2,Zd,AA,S2,T2,E2,QE,A2,tA,D2,$2,R2,oA,F2,O2,P2,M2,L2,sA,z2,jE,B2,i2,V2,G2,W2,DA,aA,U2,j2,uA,H2,q2,K2,X2,Y2,Z2,pA,Q2,eD,tD,rD,nD,J2,iD,aD,fA,lD,uD,mD,dA,gA,fD,dD,hD,yA,gD,bD,_D,Nx,wD,$A,wA,kD,HE,vD,RA,FA,OA,CD,ID,ND,SD,TD,ED,AD,vA,DD,$D,RD,FD,OD,PD,MD,CA,cD,zD,BD,VD,GD,WD,UD,NA,jD,HD,TA,sD,qD,KD,XD,YD,bA,ZD,JD,QD,xD];for(let r of w8)Qa(r);var sc={},ov={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function e$(r,e){sc[r]=e}function Lo(r){if(!(r in sc)){let t=k8(r);if(t!==null)sc[r]=t;else return console.log("Could not get context for WebGL version",r),null}let e=sc[r];return e.isContextLost()?(delete sc[r],Lo(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),sc[r])}function v8(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function k8(r){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=v8(r);return e.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete sc[r]},!1),r===1?e.getContext("webgl",ov)||e.getContext("experimental-webgl",ov):e.getContext("webgl2",ov)}var Cl;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(Cl||(Cl={}));var Er;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Er||(Er={}));var br;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(br||(br={}));function ic(r,e){return[e,r]}function t$(r,e){return r*e}function Il(r){let e=y.sizeFromShape(r),t=Math.ceil(e/4);return y.sizeToSquarishShape(t)}function Xi(r,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(r/2))]}function r$(r,e){let[t,o]=Xi(r,e);return t*o*4}function eh(r,e){let t=r,o,n,s,a,i,l,u,c,p,m;return G().getNumber("WEBGL_VERSION")===2?(o=t.R32F,n=t.R16F,s=t.RGBA16F,a=t.RGBA32F,i=t.RED,u=4,c=1,p=t.HALF_FLOAT,m=t.FLOAT):(o=r.RGBA,n=r.RGBA,s=r.RGBA,a=t.RGBA,i=r.RGBA,u=4,c=4,p=e!=null?e.HALF_FLOAT_OES:null,m=r.FLOAT),l=r.RGBA,{internalFormatFloat:o,internalFormatHalfFloat:n,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function Ee(r,e){let t=e();return G().getBool("DEBUG")&&C8(r),t}function C8(r){let e=r.getError();if(e!==r.NO_ERROR)throw new Error("WebGL Error: "+I8(r,e))}var N8=596e-10,S8=65504;function o$(r){return!!(G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||N8r.getExtension(e),'Extension "'+e+'" not supported on this browser.')}function n$(r,e){let t=Wa(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ee(r,()=>r.shaderSource(t,e)),Ee(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(t)),new Error("Failed to compile vertex shader.");return t}function s$(r,e){let t=Wa(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ee(r,()=>r.shaderSource(t,e)),Ee(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw T8(e,r.getShaderInfoLog(t)),new Error("Failed to compile fragment shader.");return t}var E8=/ERROR: [0-9]+:([0-9]+):/g;function T8(r,e){let t=E8.exec(e);if(t==null){console.log(`Couldn't parse line number in error: ${e}`),console.log(r);return}let o=+t[1],n=r.split(` +============================`));let n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:o,refCount:1}),n}makeTensorInfo(e,t,o){let n;if(t==="string"&&o!=null&&o.length>0&&y.isString(o[0])){let s=o.map(a=>y.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return{dataId:n,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,o,n,s){this.data.set(e,{values:t,dtype:n,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:o}=this.data.get(e);if(t==="complex64"){let n=this.readSync(o.real.dataId),s=this.readSync(o.imag.dataId);return N.mergeRealAndImagArrays(n,s)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>y.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ce(e.shape,e.dtype,o)}makeOutput(e,t,o){let n=this.write(e,t,o);return Fo().makeTensorFromDataId(n,t,o,this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:o}=this.data.get(e);o!=null&&(this.disposeData(o.real.dataId,!0),this.disposeData(o.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=y.now();return e(),{kernelMs:y.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ee([e],"where");let t=this.readSync(e.dataId);return V6(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Pp.nextDataId=0;var qk={};et(qk,{addImpl:()=>JE,bincountImpl:()=>Hd,bincountReduceImpl:()=>Lk,ceilImpl:()=>eA,concatImpl:()=>qd,expImpl:()=>rA,expm1Impl:()=>nA,floorImpl:()=>iA,gatherV2Impl:()=>Bk,greaterImpl:()=>lA,lessImpl:()=>cA,linSpaceImpl:()=>Vk,logImpl:()=>mA,maxImpl:()=>Gk,maximumImpl:()=>dA,minimumImpl:()=>gA,multiplyImpl:()=>Tx,negImpl:()=>bA,notEqualImpl:()=>wA,prodImpl:()=>CA,rangeImpl:()=>Yd,rsqrtImpl:()=>NA,simpleAbsImpl:()=>HE,sliceImpl:()=>Zd,squaredDifferenceImpl:()=>EA,stridedSliceImpl:()=>Wk,subImpl:()=>DA,tileImpl:()=>Uk,topKImpl:()=>jk,transposeImpl:()=>Xd,uniqueImpl:()=>Hk});function HE(r){let e=new Float32Array(r.length);for(let t=0;t{let{x:e}=r.inputs,t=r.backend;ee(e,"abs");let o=new Float32Array(y.sizeFromShape(e.shape)),n=t.data.get(e.dataId).values;return o=HE(n),t.makeOutput(o,e.shape,"float32")},qE={kernelName:us,backendName:"cpu",kernelFunc:G6};function Ye(r){return(e,t,o,n,s)=>{let a=N.assertAndGetBroadcastShape(e,t),i=a.length,l=y.computeStrides(a),u=y.sizeFromShape(a),c=y.getTypedArrayFromDType(s,u),p=e.length,m=t.length,f=y.computeStrides(e),d=y.computeStrides(t),h=N.getBroadcastDims(e,a),g=N.getBroadcastDims(t,a);if(h.length+g.length===0)for(let x=0;x_[A]=0);let w=y.locToIndex(_,p,f),v=b.slice(-m);g.forEach(A=>v[A]=0);let $=y.locToIndex(v,m,d);c[x]=r(o[w],n[$])}return[c,a]}}function cr(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,i=t.makeTensorInfo(o.shape,"complex64"),l=t.data.get(i.dataId);return l.complexTensorInfos={real:t.makeTensorInfo(o.shape,"float32",s),imag:t.makeTensorInfo(n.shape,"float32",a)},i}var KE={kernelName:Hl,backendName:"cpu",kernelFunc:cr};function Mp(r,e,t="float32"){if(t==="complex64"){let n=Mp(r,e,"float32"),s=Mp(r,e,"float32");return cr({inputs:{real:n,imag:s},backend:r})}let o=y.makeZerosTypedArray(y.sizeFromShape(e),t);return r.makeTensorInfo(e,t,o)}function Tr(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var XE={kernelName:Do,backendName:"cpu",kernelFunc:Tr};function Jn(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.data.get(o.dataId).complexTensorInfos.real,s=t.data.get(n.dataId).values;return t.makeTensorInfo(n.shape,n.dtype,s)}var YE={kernelName:cu,backendName:"cpu",kernelFunc:Jn};function Qn(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return Tr({inputs:{x:n},backend:t});let a=Mp(t,n.shape,n.dtype),i=Qn({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=cr({inputs:{real:i,imag:a},backend:t});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=Jn({inputs:{input:n},backend:t}),i=Qn({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!y.hasEncodingLoss(n.dtype,s)){let a=Tr({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32"){let a=t.data.get(n.dataId).values,i=Int32Array.from(a);return t.makeTensorInfo(n.shape,"int32",i)}if(s==="bool"){let a=t.data.get(n.dataId).values,i=y.toTypedArray([0],n.dtype),[l,u]=Ye((c,p)=>c!==p?1:0)(n.shape,[],a,i,"bool");return t.makeTensorInfo(u,"bool",l)}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var ZE={kernelName:Eo,backendName:"cpu",kernelFunc:Qn};function ot(r,e,t,o){return t==null?({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;ee([a,i],r);let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}:({inputs:n,backend:s})=>{let{a,b:i}=n,l=s;if(a.dtype==="complex64"||i.dtype==="complex64"){let u=Qn({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),c=l.data.get(u.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=l.data.get(p.dataId).values,d=l.data.get(m.dataId).values,h=Qn({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,_=l.data.get(x.dataId).values,w=l.data.get(b.dataId).values,[v,$,A]=t(a.shape,i.shape,f,d,_,w),R=l.makeTensorInfo(A,"float32",v),M=l.makeTensorInfo(A,"float32",$),V=cr({inputs:{real:R,imag:M},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(h),l.disposeIntermediateTensorInfo(R),l.disposeIntermediateTensorInfo(M),V}else{let u=l.data.get(a.dataId).values,c=l.data.get(i.dataId).values,p=o||a.dtype,[m,f]=e(a.shape,i.shape,u,c,p);return l.makeTensorInfo(f,p,m)}}}function Lp(r){return(e,t,o,n,s,a)=>{let i=N.assertAndGetBroadcastShape(e,t),l=y.sizeFromShape(i),u=i.length,c=y.computeStrides(i),p=y.getTypedArrayFromDType("float32",l),m=y.getTypedArrayFromDType("float32",l),f=N.getBroadcastDims(e,i),d=N.getBroadcastDims(t,i),h=N.mergeRealAndImagArrays(o,n),g=N.mergeRealAndImagArrays(s,a),x=e.length,b=y.computeStrides(e),_=t.length,w=y.computeStrides(t);if(f.length+d.length===0)for(let v=0;vA[W]=0);let R=y.locToIndex(A,x,b),M=$.slice(-_);d.forEach(W=>M[W]=0);let V=y.locToIndex(M,_,w),G=r(h[R*2],h[R*2+1],g[V*2],g[V*2+1]);p[v]=G.real,m[v]=G.imag}return[p,m,i]}}var JE=Ye((r,e)=>r+e),W6=Lp((r,e,t,o)=>({real:r+t,imag:e+o})),Ga=ot(xo,JE,W6),QE={kernelName:xo,backendName:"cpu",kernelFunc:Ga};function Hd(r,e,t,o,n){let s=y.sizeFromShape(o),a=y.makeZerosTypedArray(n,t);for(let i=0;i=n||(s>0?a[l]+=e[i]:a[l]+=1)}return a}function Lk(r,e,t,o=!1){let n=r.shape[0],s=r.shape[1],a=Ce([n,t],e.dtype);for(let i=0;i=t||(o?a.set(1,i,u):e.size>0?a.set(a.get(i,u)+e.get(i,l),i,u):a.set(a.get(i,u)+1,i,u))}return a}function es(r){return(e,t,o)=>{let n=y.getTypedArrayFromDType(t,e.length);for(let s=0;s{let{x:a}=o;if(ee(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=y.sizeFromShape(a.shape),c=t||a.dtype,p=y.getArrayFromDType(c,u);for(let m=0;m{let{x:a}=o;if(ee(a,r),a.dtype==="string"||t==="string")throw new Error("unaryKernelFunc does not support string input/output");let i=s,l=i.data.get(a.dataId).values,u=t||a.dtype,c=e(l,u,n);return i.makeTensorInfo(a.shape,u,c)}}var eA=es(r=>Math.ceil(r)),U6=ts(Zo,eA),tA={kernelName:Zo,backendName:"cpu",kernelFunc:U6};function qd(r,e,t,o){let n=y.getArrayFromDType(t,y.sizeFromShape(e));if(o&&t!=="string"){let s=0;r.forEach(a=>{let i=y.sizeFromShape(a.shape);n.set(a.vals,s),s+=i})}else{let s=0;r.forEach(a=>{let i=t==="string"?N.fromUint8ToStringArray(a.vals):a.vals,l=0;for(let u=0;uMath.exp(r)),zk=ts(nn,rA),oA={kernelName:nn,backendName:"cpu",kernelFunc:zk};var nA=es(r=>Math.expm1(r)),j6=ts(ai,nA),sA={kernelName:ai,backendName:"cpu",kernelFunc:j6};var iA=es(r=>Math.floor(r)),H6=ts(sn,iA),aA={kernelName:sn,backendName:"cpu",kernelFunc:H6};function Bk(r,e,t){let o=Ce(t,r.dtype);for(let n=0;nr>e?1:0),q6=ot(ci,lA,null,"bool"),uA={kernelName:ci,backendName:"cpu",kernelFunc:q6};var cA=Ye((r,e)=>rMath.log(r)),X6=ts(pn,mA),fA={kernelName:pn,backendName:"cpu",kernelFunc:X6};function Gk(r,e,t,o){let n=y.getTypedArrayFromDType(o,y.sizeFromShape(t));for(let s=0;si&&(i=u)}n[s]=i}return n}var dA=Ye((r,e)=>Math.max(r,e)),Y6=ot(fn,dA),hA={kernelName:fn,backendName:"cpu",kernelFunc:Y6};var gA=Ye((r,e)=>Math.min(r,e)),Z6=ot(xn,gA),xA={kernelName:xn,backendName:"cpu",kernelFunc:Z6};var Tx=Ye((r,e)=>r*e),J6=Lp((r,e,t,o)=>({real:r*t-e*o,imag:r*o+e*t})),Kd=ot(yn,Tx,J6),yA={kernelName:yn,backendName:"cpu",kernelFunc:Kd};function bA(r,e,t){let o=y.createScalarValue(-1,t);return Tx([],e,o,r,t)}function Q6(r){let{inputs:e,backend:t}=r,{x:o}=e;ee(o,"neg");let n=t.data.get(o.dataId).values,[s,a]=bA(n,o.shape,o.dtype);return t.makeTensorInfo(a,o.dtype,s)}var _A={kernelName:fs,backendName:"cpu",kernelFunc:Q6};var wA=Ye((r,e)=>r!==e?1:0),e5=ot(bi,wA,null,"bool"),kA={kernelName:bi,backendName:"cpu",kernelFunc:e5};function Xd(r,e,t,o,n){let s=e.length,a=y.sizeFromShape(e),i=y.computeStrides(e),l=y.computeStrides(n),u=y.getTypedArrayFromDType(t,y.sizeFromShape(n));for(let c=0;ct.disposeIntermediateTensorInfo(b)),t.makeTensorInfo(x,g,d)}var IA={kernelName:vi,backendName:"cpu",kernelFunc:t5};function Yd(r,e,t,o){let n=r===e,s=r1;if(n||s||a)return y.makeZerosTypedArray(0,o);let i=Math.abs(Math.ceil((e-r)/t)),l=y.makeZerosTypedArray(i,o);e1/Math.sqrt(r)),r5=ts(Tn,NA),SA={kernelName:Tn,backendName:"cpu",kernelFunc:r5};function Zd(r,e,t,o,n){let s=or.isSliceContinous(o,e,t),a=y.sizeFromShape(t),i=y.computeStrides(o);if(s){let p=or.computeFlatOffset(e,i);return n==="string"?r.slice(p,p+a):r.subarray(p,p+a)}let l=n==="string"?N.fromUint8ToStringArray(r):r,u=Ce(o,n,l),c=Ce(t,n);for(let p=0;pd+e[h]);c.set(u.get(...f),...m)}return n==="string"?N.fromStringArrayToUint8(c.values):c.values}function rs(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o;ee(n,"slice");let[i,l]=or.parseSliceParams(n,s,a);or.assertParamsValid(n,i,l);let u=t.data.get(n.dataId).values,c=Zd(u,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,c)}var TA={kernelName:ys,backendName:"cpu",kernelFunc:rs};var EA=Ye((r,e)=>{let t=r-e;return t*t}),o5=ot(Fn,EA),AA={kernelName:Fn,backendName:"cpu",kernelFunc:o5};function Wk(r,e,t,o){let n=Ce(r,e.dtype);for(let s=0;sr-e),n5=Lp((r,e,t,o)=>({real:r-t,imag:e-o})),Jd=ot(On,DA,n5),$A={kernelName:On,backendName:"cpu",kernelFunc:Jd};function Uk(r,e){let t=new Array(r.rank);for(let n=0;n_.value-b.value);let h=p*o,g=l.subarray(h,h+o),x=u.subarray(h,h+o);for(let b=0;b{for(let g=0;gnew Pp,1);var Kk=Ae(ni,r=>r>=0?r:Math.exp(r)-1),FA={kernelName:ni,backendName:"cpu",kernelFunc:Kk};function Xk(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o;ee([n],"leakyRelu");let a=y.sizeFromShape(n.shape),i=t.data.get(n.dataId).values,l=y.getTypedArrayFromDType("float32",a);for(let u=0;ur<0?e*r:r);function Yk(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e;ee([o,n],"prelu");let s=t.data.get(o.dataId).values,a=t.data.get(n.dataId).values,[i,l]=s5(o.shape,n.shape,s,a,o.dtype);return t.makeTensorInfo(l,o.dtype,i)}var PA={kernelName:kn,backendName:"cpu",kernelFunc:Yk};var Zk=Ae(vn,r=>Math.max(0,r)),MA={kernelName:vn,backendName:"cpu",kernelFunc:Zk};var Jk=Ae(In,r=>Math.min(Math.max(0,r),6)),LA={kernelName:In,backendName:"cpu",kernelFunc:Jk};function zp(r,e,t,o,n){if(t==="linear")return Tr({inputs:{x:e},backend:r});if(t==="relu")return Zk({inputs:{x:e},backend:r});if(t==="elu")return Kk({inputs:{x:e},backend:r});if(t==="relu6")return Jk({inputs:{x:e},backend:r});if(t==="prelu")return Yk({inputs:{x:e,alpha:o},backend:r});if(t==="leakyrelu")return Xk({inputs:{x:e},backend:r,attrs:{alpha:n}});throw new Error(`Activation ${t} has not been implemented for the CPU backend.`)}function tt(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=y.sizeFromShape(n.shape),i=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(i);y.assert(a===l,()=>`The new shape (${i}) has ${l} elements and the old shape (${n.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`),t.incRef(n.dataId);let u=t.data.get(n.dataId);if(u.complexTensorInfos!=null){let c=u.complexTensorInfos.real,p=u.complexTensorInfos.imag;c.shape=i,p.shape=i}return{dataId:n.dataId,shape:i,dtype:n.dtype}}var zA={kernelName:gs,backendName:"cpu",kernelFunc:tt};function Qk(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;ee([n,s],"matMul");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),b=g===x||g===1||x===1;y.assert(l>=2&&u>=2&&b,()=>`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 (${d}) and (${h}).`);let w=(g>x?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let v=a?[g,c,m]:[g,m,c],$=i?[x,f,p]:[x,p,f],A=tt({inputs:{x:n},backend:t,attrs:{shape:v}}),R=tt({inputs:{x:s},backend:t,attrs:{shape:$}}),M=a?A.shape[1]:A.shape[2],V=a?A.shape[2]:A.shape[1],G=i?R.shape[1]:R.shape[2],W=Math.max(g,x),q=t.data.get(A.dataId).values,Z=t.data.get(R.dataId).values,X=y.computeStrides(A.shape),Y=y.computeStrides(R.shape),[te,K,re]=a?[X[0],1,X[1]]:[X[0],X[1],1],[ie,se,pe]=i?[1,Y[1],Y[0]]:[Y[1],1,Y[0]],ae=V*G,xe=Ce([W,V,G],A.dtype),ge=xe.values,_e=t.blockSize;for(let ke=0;keMath.acos(r)),GA={kernelName:Ks,backendName:"cpu",kernelFunc:a5};var l5=Ae(Xs,r=>Math.acosh(r)),WA={kernelName:Xs,backendName:"cpu",kernelFunc:l5};function u5(r){let{inputs:e,backend:t}=r,o=e;ee(e,"addN");let n=o.map(i=>t.data.get(i.dataId).values),s=Ce(o[0].shape,o[0].dtype),a=s.values;for(let i=0;ib&&(b=v,_=w)}f[g]=_}return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var qA={kernelName:Ko,backendName:"cpu",kernelFunc:m5};function f5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o;ee(n,"argMin");let a=y.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=tr({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),a=[a[0]],N.assertAxesAreInnerMostDims("argMin",a,l.shape.length);let[c,p]=N.computeOutAndReduceShapes(l.shape,a),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=t.data.get(l.dataId).values;for(let g=0;gt.disposeIntermediateTensorInfo(g)),t.makeTensorInfo(c,"int32",f)}var KA={kernelName:oa,backendName:"cpu",kernelFunc:f5};var d5=Ae(Ys,r=>Math.asin(r)),XA={kernelName:Ys,backendName:"cpu",kernelFunc:d5};var h5=Ae(Zs,r=>Math.asinh(r)),YA={kernelName:Zs,backendName:"cpu",kernelFunc:h5};var g5=Ae(Js,r=>Math.atan(r)),ZA={kernelName:Js,backendName:"cpu",kernelFunc:g5};var x5=Ye((r,e)=>Math.atan2(r,e)),y5=ot(ei,x5),JA={kernelName:ei,backendName:"cpu",kernelFunc:y5};var b5=Ae(Qs,r=>Math.atanh(r)),QA={kernelName:Qs,backendName:"cpu",kernelFunc:b5};function Bp(r,e,t,o,n,s){let a=n.strideHeight,i=n.strideWidth,l=n.dilationHeight,u=n.dilationWidth,c=n.effectiveFilterHeight,p=n.effectiveFilterWidth,m=n.padInfo.top,f=n.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=Ce(n.outShape,t),g=h.values,x=n.outShape[1]*n.outShape[2]*n.outShape[3],b=n.outShape[2]*n.outShape[3],_=n.outShape[3];for(let w=0;wte?te=ge:s==="avg"&&(K+=ge,re++)}if(isNaN(te))break}let ie=W+q*_+A;g[ie]=s==="avg"?K/re:te}}}return h}function Ex(r,e,t,o,n=!1,s=!1){let a=Ce(o.outShape,"int32"),i=o.strideHeight,l=o.strideWidth,u=o.dilationHeight,c=o.dilationWidth,p=o.effectiveFilterHeight,m=o.effectiveFilterWidth,f=o.padInfo.top,d=o.padInfo.left,h=Ce(e,t,r);for(let g=0;gV&&(V=Y,n?G=s?((g*o.inHeight+W)*o.inWidth+Z)*o.inChannels+x:(W*o.inWidth+Z)*o.inChannels+x:G=q*m+X)}}a.set(G,g,b,$,x)}}return a}function Ax(r,e,t,o,n,s){let a=n.strideDepth,i=n.strideHeight,l=n.strideWidth,u=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,m=n.effectiveFilterDepth,f=n.effectiveFilterHeight,d=n.effectiveFilterWidth,h=n.padInfo.front,g=n.padInfo.top,x=n.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,_=Ce(n.outShape,t),w=_.values,v=n.outShape[1]*n.outShape[2]*n.outShape[3]*n.outShape[4],$=n.outShape[2]*n.outShape[3]*n.outShape[4],A=n.outShape[3]*n.outShape[4],R=n.outShape[4];for(let M=0;MDe?De=Ft:s==="avg"&&($e+=Ft,Re++),isNaN(De))break}if(isNaN(De))break}if(isNaN(De))break}let He=ke+W;w[He]=s==="avg"?$e/Re:De}}}}return _}function e2(r,e){let t=Ce(e.outShape,"int32"),o=e.strideDepth,n=e.strideHeight,s=e.strideWidth,a=e.dilationDepth,i=e.dilationHeight,l=e.dilationWidth,u=e.effectiveFilterDepth,c=e.effectiveFilterHeight,p=e.effectiveFilterWidth,m=e.padInfo.front,f=e.padInfo.top,d=e.padInfo.left;for(let h=0;h=q&&(q=se,Z=Y*c*p+K*c+ie)}}}t.set(Z,h,x,v,M,g)}}}return t}function _5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;ee(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Tr({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=y.computeStrides(n.shape),d=Bp(m,n.shape,n.dtype,f,c,"avg");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var t2={kernelName:Xo,backendName:"cpu",kernelFunc:_5};function w5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;ee(n,"avgPool3d");let c=N.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=Ax(p,n.shape,n.dtype,y.computeStrides(n.shape),c,"avg");return t.makeTensorInfo(m.shape,"float32",m.values)}var r2={kernelName:na,backendName:"cpu",kernelFunc:w5};function k5(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;ee([n,s],"avgPool3DGrad");let c=N.computePool3DInfo(s.shape,a,i,1,l,u),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,_=c.dilationWidth,w=c.effectiveFilterDepth,v=c.effectiveFilterHeight,$=c.effectiveFilterWidth,A=w-1-c.padInfo.front,R=$-1-c.padInfo.left,M=v-1-c.padInfo.top,V=Ce(s.shape,"float32"),G=1/(d*h*g),W=t.bufferSync(n);for(let q=0;q=c.outDepth||Math.floor(ae)!==ae))for(let xe=0;xe=c.outHeight||Math.floor(ge)!==ge))for(let _e=0;_e<$;_e+=_){let ke=(ie+_e)/f;if(ke<0||ke>=c.outWidth||Math.floor(ke)!==ke)continue;se+=W.get(q,ae,ge,ke,Z)}}}V.set(se*G,q,X,Y,te,Z)}return t.makeTensorInfo(V.shape,V.dtype,V.values)}var o2={kernelName:Ul,backendName:"cpu",kernelFunc:k5};function v5(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;ee([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=N.computePool2DInfo(a.shape,i,l,1,u),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,_=b-1-c.padInfo.left,w=x-1-c.padInfo.top,v=Ce(a.shape,"float32"),$=1/(f*d),A=t.data.get(n.dataId).values,R=Ce(n.shape,"float32",A);for(let M=0;M=c.outHeight||Math.floor(te)!==te))for(let K=0;K=c.outWidth||Math.floor(re)!==re)continue;X+=R.get(M,te,re,V)}}v.set(X*$,M,G,W,V)}return t.makeTensorInfo(v.shape,v.dtype,v.values)}var n2={kernelName:Wl,backendName:"cpu",kernelFunc:v5};function C5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,scale:s,offset:a,mean:i,variance:l}=e;y.assert(i.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||i.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ee([n,i,l,s,a],"batchNorm");let{varianceEpsilon:u}=o;u==null&&(u=.001);let c=t.data.get(n.dataId).values,p=t.data.get(i.dataId).values,m=t.data.get(l.dataId).values,f=s?t.data.get(s.dataId).values:new Float32Array([1]),d=a?t.data.get(a.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,_=p.length,w=0,v=0,$=0,A=0;for(let R=0;R=g&&(w=0),v>=_&&(v=0),$>=x&&($=0),A>=b&&(A=0);return t.makeTensorInfo(n.shape,n.dtype,h)}var s2={kernelName:ln,backendName:"cpu",kernelFunc:C5};function I5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;ee([n],"batchToSpaceND");let i=s.reduce((x,b)=>x*b),l=N.getReshaped(n.shape,s,i),u=N.getPermuted(l.length,s.length),c=N.getReshapedPermuted(n.shape,s,i),p=N.getSliceBeginCoords(a,s.length),m=N.getSliceSize(c,a,s.length),f=tt({inputs:{x:n},backend:t,attrs:{shape:l}}),d=tr({inputs:{x:f},backend:t,attrs:{perm:u}}),h=tt({inputs:{x:d},backend:t,attrs:{shape:c}}),g=rs({inputs:{x:h},backend:t,attrs:{begin:p,size:m}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var i2={kernelName:sa,backendName:"cpu",kernelFunc:I5};function N5(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.data.get(n.dataId).values,l=t.data.get(s.dataId).values,u=Hd(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var a2={kernelName:jl,backendName:"cpu",kernelFunc:N5};var S5=Ae(Ao,(r,e)=>{let t=e;return r>t.clipValueMax?t.clipValueMax:r{let{x:e}=r.inputs,t=r.backend,o=new Float32Array(y.sizeFromShape(e.shape)),n=t.data.get(e.dataId),s=n.complexTensorInfos.real,a=n.complexTensorInfos.imag,i=t.data.get(s.dataId).values,l=t.data.get(a.dataId).values;for(let u=0;uh.shape),s);if(y.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(h=>y.sizeFromShape(h.shape)>0);if(i.length===1)return Tr({inputs:{x:i[0]},backend:t});let l=i.map(h=>h.shape);if(N.assertParamsConsistent(l,s),i[0].dtype==="complex64"){let h=i.map(w=>Jn({inputs:{input:w},backend:t})),g=i.map(w=>Ki({inputs:{input:w},backend:t})),x=vl({inputs:h,backend:t,attrs:{axis:s}}),b=vl({inputs:g,backend:t,attrs:{axis:s}}),_=cr({inputs:{real:x,imag:b},backend:t});return h.forEach(w=>t.disposeIntermediateTensorInfo(w)),g.forEach(w=>t.disposeIntermediateTensorInfo(w)),t.disposeIntermediateTensorInfo(x),t.disposeIntermediateTensorInfo(b),_}let u=i.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return tt({inputs:{x:h},backend:t,attrs:{shape:[-1,g]}})}),c=u.map(h=>({vals:t.data.get(h.dataId).values,shape:h.shape}));a=N.computeOutShape(u.map(h=>h.shape),1);let p=u[0].shape[0]===1,m=qd(c,a,e[0].dtype,p),f=N.computeOutShape(i.map(h=>h.shape),s),d=t.makeTensorInfo(f,e[0].dtype,m);return u.forEach(h=>t.disposeIntermediateTensorInfo(h)),d}var p2={kernelName:cs,backendName:"cpu",kernelFunc:vl};function ev(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o;ee([n,s],"conv2d");let p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,_=m.dataFormat==="channelsLast",w=new ct(m.outShape,n.dtype),v=y.computeStrides(n.shape),$=y.computeStrides(s.shape),A=v[0],R=_?v[1]:v[2],M=_?v[2]:1,V=_?1:v[1],G=w.strides[0],W=_?w.strides[1]:w.strides[2],q=_?w.strides[2]:1,Z=_?1:w.strides[1],X=t.data.get(n.dataId).values,Y=t.data.get(s.dataId).values,te=w.values;for(let K=0;K=m.inHeight)continue;let _e=xe*$[0],ke=re+ge*R;for(let De=0;De=m.inWidth)continue;let wt=_e+He*$[1],kt=ke+ut*M,pt=wt;for(let vt=0;vt=u.inDepth)continue;let K=Y*M[0],re=G+te*R[1];for(let ie=0;ie=u.inHeight)continue;let ge=K+ae*M[1],_e=re+xe*R[2];for(let ke=0;ke=u.inWidth)continue;let ut=ge+Re*M[2],wt=_e+He*u.inChannels,kt=ut;for(let pt=0;ptMath.cos(r)),y2={kernelName:en,backendName:"cpu",kernelFunc:F5};var O5=Ae(ti,r=>Math.cosh(r)),b2={kernelName:ti,backendName:"cpu",kernelFunc:O5};function P5(r){let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,[c,p,m,f]=n.shape,d=s.shape[0],[h,g]=i,x=Ce([d,h,g,f],"float32"),b=t.data.get(s.dataId).values,_=t.data.get(a.dataId).values,w=t.data.get(n.dataId).values,v=y.computeStrides(n.shape),$=y.computeStrides(x.shape);for(let A=0;A=c)continue;let Z=h>1?(G-M)*(p-1)/(h-1):0,X=g>1?(W-V)*(m-1)/(g-1):0;for(let Y=0;Y1?M*(p-1)+Y*Z:.5*(M+G)*(p-1);if(te<0||te>p-1){for(let K=0;K1?V*(m-1)+se*X:.5*(V+W)*(m-1);if(pe<0||pe>m-1){for(let _e=0;_e1?V*(m-1)+K*X:.5*(V+W)*(m-1);if(re<0||re>m-1){for(let pe=0;pex+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${a}`),y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=n.shape[1],u=n.shape[2],c=n.shape[3],p=l*s,m=u*s,f=c/(s*s),d=t.data.get(n.dataId).values,h=new Float32Array(i*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${m}'`);let f=N.computeConv2DInfo(n.shape,s.shape,a,m,i,u,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,_=b.left,w=b.top,v=f.outChannels/f.inChannels,$=new ct(f.outShape,n.dtype),A=t.data.get(n.dataId).values,R=t.data.get(s.dataId).values,M=$.values;for(let V=0;V=f.inHeight)continue;let K=Y*p[0],re=G+te*c[1];for(let ie=0;ie=f.inWidth)continue;let ge=K+ae*p[1],_e=re+xe*f.inChannels,ke=se,De=ge;for(let $e=0;$e{let{x:o,filter:n}=r,{strides:s,pad:a,dilations:i}=t,l=e,u=l.data.get(o.dataId).values,c=o.shape.length,p=l.data.get(n.dataId).values,m=n.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:_,strideHeight:w,strideWidth:v,filterHeight:$,filterWidth:A,dilationHeight:R,dilationWidth:M,outShape:V}=N.computeDilation2DInfo(o.shape,n.shape,s,a,"NHWC",i),G=y.sizeFromShape(V),W=V.length,q=y.getArrayFromDType(o.dtype,G);for(let X=0;X=0&&xe=0&&_ese&&(se=$e)}}}let pe=y.locToIndex([X,Y,K,ie],W,y.computeStrides(V));q[pe]=se}}}return{dataId:l.write(y.toTypedArray(q,o.dtype),V,o.dtype),shape:V,dtype:o.dtype}}};var E2={kernelName:Fc,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=y.toNestedArray(o.shape,u.data.get(o.dataId).values),p=y.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:_,strideWidth:w,filterHeight:v,filterWidth:$,dilationHeight:A,dilationWidth:R,outShape:M}=N.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);y.assert(s.rank===M.length,()=>`Error in ${Fc}, dy must have the same rank as output ${M.length}, but got ${s.rank}`);let V=y.toNestedArray(M,u.data.get(s.dataId).values),G=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let q=0;q=0&&ae=0&&gere&&(re=_e,ie=pe,se=xe)}}}G[ie][se][K]+=V[q][Z][Y][K]}}}return{dataId:u.write(y.toTypedArray(G,o.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};var A2={kernelName:Rc,backendName:"cpu",kernelFunc:({inputs:r,backend:e,attrs:t})=>{let{x:o,filter:n,dy:s}=r,{strides:a,pad:i,dilations:l}=t,u=e,c=y.toNestedArray(o.shape,u.data.get(o.dataId).values),p=y.toNestedArray(n.shape,u.data.get(n.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:_,strideWidth:w,filterHeight:v,filterWidth:$,dilationHeight:A,dilationWidth:R,outShape:M}=N.computeDilation2DInfo(o.shape,n.shape,a,i,"NHWC",l);y.assert(s.rank===M.length,()=>`Error in ${Rc}, dy must have the same rank as output ${M.length}, but got ${s.rank}`);let V=y.toNestedArray(M,u.data.get(s.dataId).values),G=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let q=0;q=0&&ae=0&&gere&&(re=_e,ie=ae,se=ge)}}}G[q][ie][se][K]+=V[q][Z][Y][K]}}}return{dataId:u.write(y.toTypedArray(G,o.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};function W5(r){let{inputs:e,backend:t}=r,{dy:o,y:n}=e;ee([o,n],"eluGrad");let s=new Float32Array(y.sizeFromShape(n.shape)),a=t.data.get(n.dataId).values,i=t.data.get(o.dataId).values;for(let l=0;l=1?s[l]=i[l]:s[l]=i[l]*(u+1)}return t.makeTensorInfo(n.shape,"float32",s)}var D2={kernelName:eu,backendName:"cpu",kernelFunc:W5};var U5=Ye((r,e)=>r===e?1:0),rv=ot(ii,U5,null,"bool"),$2={kernelName:ii,backendName:"cpu",kernelFunc:rv};var j5=N.ERF_P,H5=N.ERF_A1,q5=N.ERF_A2,K5=N.ERF_A3,X5=N.ERF_A4,Y5=N.ERF_A5,Z5=Ae(si,r=>{let e=Math.sign(r),t=Math.abs(r),o=1/(1+j5*t);return e*(1-((((Y5*o+X5)*o+K5)*o+q5)*o+H5)*o*Math.exp(-t*t))}),R2={kernelName:si,backendName:"cpu",kernelFunc:Z5};function Vp(r){let{inputs:e,backend:t,attrs:o}=r,{input:n}=e,{dim:s}=o,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(y.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),tt({inputs:{x:n},backend:t,attrs:{shape:i}})}var F2={kernelName:ps,backendName:"cpu",kernelFunc:Vp};var J5=Ye((r,e)=>r/e),Qd=ot(on,J5),eh={kernelName:on,backendName:"cpu",kernelFunc:Qd};function Dx(r,e,t){let o=r.shape,n=o[0],s=o[1],a=t.data.get(r.dataId),i=a.complexTensorInfos.real,l=a.complexTensorInfos.imag,u=[n,s],c=y.sizeFromShape(u),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:o}=r,n=t,s=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(o.shape)),[a,i,l,u]=o.shape,c=n.data.get(o.dataId).values;for(let m=0;m=0&&vMath.floor(r/e)),sX=ot(an,nX,null,"int32"),L2={kernelName:an,backendName:"cpu",kernelFunc:sX};function iX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=ev({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=Ga({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=zp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var z2={kernelName:vs,backendName:"cpu",kernelFunc:iX};function aX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=tv({inputs:{x:n,filter:s},backend:t,attrs:{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m}});if(a){let g=h;h=Ga({inputs:{a:h,b:a},backend:t}),t.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=zp(t,h,f,i,d),t.disposeIntermediateTensorInfo(g)}return h}var B2={kernelName:Cs,backendName:"cpu",kernelFunc:aX};function lX(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=y.sizeFromShape(o.shape),a=n.shape,i=a[a.length-1],[l,u,c,p]=N.prepareAndValidate(o,n);if(u===0)return t.makeTensorInfo(l,o.dtype,[]);let m=Ce([u,c],o.dtype),f=t.data.get(n.dataId).values,d=t.data.get(o.dataId).values;for(let h=0;h=s/c)throw new Error(`Invalid indices: ${g} does not index into ${o.shape}`);for(let b=0;br>=e?1:0),pX=ot(un,cX,null,"bool"),W2={kernelName:un,backendName:"cpu",kernelFunc:pX};function mX(r){let{inputs:e,backend:t}=r,{input:o}=e,n=y.sizeFromShape(o.shape),s=o.shape[o.shape.length-1],a=n/s,i=tt({inputs:{x:o},backend:t,attrs:{shape:[a,s]}}),l=Dx(i,!0,t),u=tt({inputs:{x:l},backend:t,attrs:{shape:o.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(l),u}var U2={kernelName:ru,backendName:"cpu",kernelFunc:mX};var fX=Ae(pi,r=>Number.isFinite(r)?1:0,"bool"),j2={kernelName:pi,backendName:"cpu",kernelFunc:fX};var dX=Ae(mi,r=>Math.abs(r)===Infinity?1:0,"bool"),H2={kernelName:mi,backendName:"cpu",kernelFunc:dX};var hX=Ae(fi,r=>Number.isNaN(r)?1:0,"bool"),q2={kernelName:fi,backendName:"cpu",kernelFunc:hX};var gX=Ye((r,e)=>r<=e?1:0),xX=ot(hi,gX,null,"bool"),K2={kernelName:hi,backendName:"cpu",kernelFunc:xX};function yX(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=Vk(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var X2={kernelName:nu,backendName:"cpu",kernelFunc:yX};var bX=Ae(gi,r=>Math.log1p(r)),Y2={kernelName:gi,backendName:"cpu",kernelFunc:bX};var _X=Ye((r,e)=>r&&e),wX=ot(xi,_X,null,"bool"),Z2={kernelName:xi,backendName:"cpu",kernelFunc:wX};var kX=Ae(Za,r=>r?0:1,"bool"),J2={kernelName:Za,backendName:"cpu",kernelFunc:kX};var vX=Ye((r,e)=>r||e),CX=ot(Ja,vX,null,"bool"),Q2={kernelName:Ja,backendName:"cpu",kernelFunc:CX};function IX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o;ee(n,"LRN");let u=n.shape[3],c=u-1,p=t.data.get(n.dataId).values,m=y.sizeFromShape(n.shape),f=new Float32Array(m);function d(h){let g=h%u,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),_=0;for(;x<=b;x++){let w=p[x];_+=w*w}return _}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Tr({inputs:{x:n},backend:t});else{let m=t.data.get(n.dataId).values,f=y.computeStrides(n.shape),d=Bp(m,n.shape,n.dtype,f,c,"max");p=t.makeTensorInfo(c.outShape,n.dtype,d.values)}return p}var oD={kernelName:dn,backendName:"cpu",kernelFunc:SX};function TX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o;ee(n,"maxPool3d");let c=N.computePool3DInfo(n.shape,s,a,1,i,l,u),p=t.data.get(n.dataId).values,m=Ax(p,n.shape,n.dtype,y.computeStrides(n.shape),c,"max");return t.makeTensorInfo(m.shape,"float32",m.values)}var nD={kernelName:pa,backendName:"cpu",kernelFunc:TX};function EX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=o;ee([n,s],"maxPool3DGrad");let c=N.computePool3DInfo(s.shape,a,i,1,l,u),p=t.bufferSync(s),m=e2(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,_=c.effectiveFilterDepth,w=c.effectiveFilterHeight,v=c.effectiveFilterWidth,$=_-1-c.padInfo.front,A=v-1-c.padInfo.left,R=w-1-c.padInfo.top,M=Ce(s.shape,"float32"),V=t.bufferSync(n);for(let G=0;G=c.outDepth||Math.floor(se)!==se))for(let pe=0;pe=c.outHeight||Math.floor(ae)!==ae))for(let xe=0;xe=c.outWidth||Math.floor(ge)!==ge)continue;let _e=_*w*v-1-m.get(G,se,ae,ge,W),ke=ie*w*v+pe*v+xe,De=_e===ke?1:0;if(De===0)continue;re+=V.get(G,se,ae,ge,W)*De}}}M.set(re,G,q,Z,X,W)}return t.makeTensorInfo(M.shape,M.dtype,M.values)}var sD={kernelName:au,backendName:"cpu",kernelFunc:EX};function AX(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s,output:a}=e,i=s;ee([s,a],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=o,m=N.computePool2DInfo(i.shape,l,u,1,c,p),f=t.data.get(i.dataId).values,d=Ce(m.outShape,i.dtype,Ex(f,i.shape,i.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,_=m.effectiveFilterHeight,w=m.effectiveFilterWidth,v=w-1-m.padInfo.left,$=_-1-m.padInfo.top,A=Ce(i.shape,"float32"),R=t.data.get(n.dataId).values,M=Ce(n.shape,"float32",R);for(let V=0;V=m.outHeight||Math.floor(K)!==K))for(let re=0;re=m.outWidth||Math.floor(ie)!==ie)continue;let se=_*w-1-d.get(V,K,ie,G),pe=te*w+re,ae=se===pe?1:0;if(ae===0)continue;Y+=M.get(V,K,ie,G)*ae}}A.set(Y,V,W,q,G)}return t.makeTensorInfo(A.shape,A.dtype,A.values)}var iD={kernelName:iu,backendName:"cpu",kernelFunc:AX};function aD(r,e,t,o,n){let s=y.computeStrides(e),a=Bp(r,e,t,s,n,"max"),i=Ex(r,e,t,n,!0,o);return[a.values,i.values]}var lD={kernelName:lu,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;ee(o,"MaxPoolWithArgmax");let u=l.data.get(o.dataId).values,c=N.computePool2DInfo(o.shape,n,s,[1,1],a),[p,m]=aD(u,o.shape,o.dtype,i,c),f=l.write(p,c.outShape,o.dtype),d=l.write(m,c.outShape,o.dtype);return[{dataId:f,shape:c.outShape,dtype:o.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function sc(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;ee(n,"sum");let i;n.dtype==="bool"?i=Qn({inputs:{x:n},backend:t,attrs:{dtype:"int32"}}):i=Tr({inputs:{x:n},backend:t});let l=i.shape.length,u=y.parseAxisParam(s,i.shape),c=N.getAxesPermutation(u,l),p=u,m=i;c!=null&&(m=tr({inputs:{x:i},backend:t,attrs:{perm:c}}),p=N.getInnerMostAxes(p.length,l)),N.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=N.computeOutAndReduceShapes(m.shape,p),h=N.upcastType(m.dtype,"int32"),g=Mp(t,f,h),x=y.sizeFromShape(d),b=t.data.get(g.dataId).values,_=t.data.get(m.dataId).values;for(let w=0;wt.disposeIntermediateTensorInfo(g)),h}var cD={kernelName:hn,backendName:"cpu",kernelFunc:DX};function $X(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;ee(n,"min");let i=y.parseAxisParam(s,n.shape),l=i,u=N.getAxesPermutation(l,n.shape.length),c=n;u!=null&&(c=tr({inputs:{x:n},backend:t,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,n.shape.length)),N.assertAxesAreInnerMostDims("min",l,c.shape.length);let[p,m]=N.computeOutAndReduceShapes(c.shape,l),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=t.data.get(c.dataId).values;for(let x=0;x_[0]+n.shape[w]+_[1]),l=s.map(_=>_[0]),u=s.map((_,w)=>_[0]+n.shape[w]),c=a==="reflect"?0:1,p=t.data.get(n.dataId).values,m=n.shape.length,f=y.computeStrides(n.shape),d=y.sizeFromShape(i),h=i.length,g=y.computeStrides(i),x=y.getTypedArrayFromDType(n.dtype,d);for(let _=0;_=u[$]&&(w[$]=(u[$]-1)*2-w[$]+c);w=w.map(($,A)=>$-l[A]);let v=y.locToIndex(w,m,f);x[_]=p[v]}return{dataId:t.write(x,i,n.dtype),shape:i,dtype:n.dtype}}var mD={kernelName:ma,backendName:"cpu",kernelFunc:RX};var FX=Ye((r,e)=>{let t=r%e;return r<0&&e<0||r>=0&&e>=0?t:(t+e)%e}),OX=ot(yi,FX),fD={kernelName:yi,backendName:"cpu",kernelFunc:OX};var hD=Tc(Km());function sv(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=n.shape.length,i=s;if(i===-1&&(i=a-1),i!==a-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${a} and dim was ${i}`);let l=y.parseAxisParam([i],n.shape),u=nv({inputs:{x:n},backend:t,attrs:{reductionIndices:l,keepDims:!1}}),c=N.expandShapeToKeepDim(u.shape,l),p=tt({inputs:{x:u},backend:t,attrs:{shape:c}}),m=Jd({inputs:{a:n,b:p},backend:t}),f=zk({inputs:{x:m},backend:t}),d=sc({inputs:{x:f},backend:t,attrs:{axis:l,keepDims:!1}}),h=tt({inputs:{x:d},backend:t,attrs:{shape:c}}),g=Qd({inputs:{a:f,b:h},backend:t});return t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(h),g}var dD={kernelName:Rn,backendName:"cpu",kernelFunc:sv};function PX(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o;ee(n,"multinomial");let l=i?n:sv({inputs:{logits:n},backend:t,attrs:{dim:-1}}),u=l.shape[0],c=l.shape[1],p=t.data.get(l.dataId).values,m=[u,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&c[p]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Vp({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=vl({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var CD={kernelName:hs,backendName:"cpu",kernelFunc:iv};function UX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o;ee(n,"pad");let i=s.map((b,_)=>b[0]+n.shape[_]+b[1]),l=s.map(b=>b[0]),u=t.data.get(n.dataId).values,c=y.sizeFromShape(n.shape),p=n.shape.length,m=y.computeStrides(n.shape),f=y.sizeFromShape(i),d=i.length,h=y.computeStrides(i),g=y.getTypedArrayFromDType(n.dtype,f);a!==0&&g.fill(a);for(let b=0;b$+l[A]),v=y.locToIndex(w,d,h);g[v]=u[b]}return{dataId:t.write(g,i,n.dtype),shape:i,dtype:n.dtype}}var $x={kernelName:_n,backendName:"cpu",kernelFunc:UX};var jX=Ye((r,e)=>Math.pow(r,e)),HX=ot(wn,jX),ID={kernelName:wn,backendName:"cpu",kernelFunc:HX};function qX(r){let{backend:e,attrs:t}=r,{start:o,stop:n,dtype:s,step:a}=t,i=Yd(o,n,a,s);return e.makeTensorInfo([i.length],s,i)}var ND={kernelName:fa,backendName:"cpu",kernelFunc:qX};var KX=Ae(Ci,r=>1/r),SD={kernelName:Ci,backendName:"cpu",kernelFunc:KX};function XX(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o;ee(n,"resizeBilinear");let l=y.computeStrides(n.shape),[u,c]=i,[p,m,f,d]=n.shape,h=t.data.get(n.dataId).values,g=new Float32Array(y.sizeFromShape([p,u,c,d])),x=[s&&u>1?m-1:m,s&&c>1?f-1:f],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],_=0,w=x[0]/b[0],v=x[1]/b[1];for(let $=0;$1?u-1:u,a&&f>1?c-1:c],g=[a&&m>1?m-1:m,a&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],_=t.data.get(s.dataId).values,w=0;for(let v=0;v1?m-1:m,s&&c>1?f-1:f],b=[s&&u>1?u-1:u,s&&c>1?c-1:c],_=x[0]/b[0],w=x[1]/b[1],v=0;for(let $=0;$1?c-1:c,a&&d>1?p-1:p],b=[a&&f>1?f-1:f,a&&d>1?d-1:d],_=x[0]/b[0],w=x[1]/b[1],v=1/_,$=1/w,A=Math.ceil(v)*2+2,R=Math.ceil($)*2+2;for(let M=0;M=f)continue;let ae=V+pe*l[1],xe=pe*_,ge=Math.min(c-1,a?Math.round(xe):Math.floor(xe));if(G===ge)for(let _e=0;_e=d)continue;let De=ae+ke*l[2],$e=ke*w,Re=Math.min(p-1,a?Math.round($e):Math.floor($e));X===Re&&(ie+=g[De+re])}}h[Y+re]=ie}}}}return t.makeTensorInfo(n.shape,n.dtype,h)}var DD={kernelName:pu,backendName:"cpu",kernelFunc:JX};function QX(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o;ee(n,"reverse");let a=n.shape.length,i=y.parseAxisParam(s,n.shape);if(a===0)return Tr({inputs:{x:n},backend:t});let l=new ct(n.shape,n.dtype),u=t.bufferSync(n);for(let c=0;cm[f]=n.shape[f]-1-m[f]),l.set(u.get(...m),...p)}return t.makeTensorInfo(l.shape,l.dtype,l.values)}var $D={kernelName:Nn,backendName:"cpu",kernelFunc:QX};var RD={kernelName:Ri,backendName:"cpu",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(o.shape)),[u,c,p,m]=o.shape,[f,d]=N.getImageCenter(a,c,p),h=255,g=Math.sin(n),x=Math.cos(n),b=i.data.get(o.dataId).values;for(let w=0;w=0&&Z=0&&X{let e=Math.floor(r);return r-e<.5?Math.floor(r):r-e>.5?Math.ceil(r):e%2==0?e:e+1}),FD={kernelName:Sn,backendName:"cpu",kernelFunc:e8};function Rx(r,e,t,o,n,s,a,i,l,u){let c=[o/n,n],p=r.values,m=e.values;if(o===0)return Ce(t,e.dtype);let f=Ce(c,e.dtype);f.values.fill(l);for(let d=0;d=o/n)throw new Error(`Invalid indices: ${h} does not index into ${t}`);for(let x=0;x1||n.shape.length===1?1:y.sizeFromShape(n.shape.slice(1));for(let d=0;dr>=0?n8*r:o8*(Math.exp(r)-1)),MD={kernelName:Ni,backendName:"cpu",kernelFunc:s8};var i8=Ae(An,r=>1/(1+Math.exp(-r))),LD={kernelName:An,backendName:"cpu",kernelFunc:i8};var a8=Ae(Ti,r=>r<0?-1:r>0?1:0),zD={kernelName:Ti,backendName:"cpu",kernelFunc:a8};var l8=Ae(En,r=>Math.sin(r)),BD={kernelName:En,backendName:"cpu",kernelFunc:l8};var u8=Ae(Si,r=>Math.sinh(r)),VD={kernelName:Si,backendName:"cpu",kernelFunc:u8};var c8=11920928955078125e-23,GD=Math.log(c8)+2,p8=Ae(Ei,r=>{let e=r>-GD,t=r{let m=[...c];m[i]=p;let f=rs({inputs:{x:n},backend:t,attrs:{begin:u,size:m}});return u[i]+=p,f})}var HD={kernelName:bs,backendName:"cpu",kernelFunc:d8};var h8=Ae(Dn,r=>Math.sqrt(r)),qD={kernelName:Dn,backendName:"cpu",kernelFunc:h8};var KD={kernelName:ga,backendName:"cpu",kernelFunc:({inputs:r,backend:e})=>{let{x:t}=r,o=e;ee(t,"square");let n=o.data.get(t.dataId).values,s=new Float32Array(n.length);for(let i=0;i{let t=e;return isNaN(r)?NaN:r>0?1:t.alpha}),XD={kernelName:$o,backendName:"cpu",kernelFunc:g8};function x8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o;ee(n,"stridedSlice");let{nonStrided:f,$begin:d,$strides:h,size:g,newShape:x,outShape:b}=or.sliceInfo(n.shape,s,a,i,l,u,c,p,m),_=tt({inputs:{x:n},backend:t,attrs:{shape:x}}),w;if(f){let $=rs({inputs:{x:_},backend:t,attrs:{begin:d,size:g}});w=tt({inputs:{x:$},backend:t,attrs:{shape:b}}),t.disposeIntermediateTensorInfo($)}else if(b.some($=>$===0))w=t.makeTensorInfo(b,n.dtype,[]);else{let $=t.bufferSync(_),A=Wk(b,$,h,d);w=t.makeTensorInfo(A.shape,A.dtype,A.values)}let v=tt({inputs:{x:w},backend:t,attrs:{shape:b}});return t.disposeIntermediateTensorInfo(_),t.disposeIntermediateTensorInfo(w),v}var YD={kernelName:Ai,backendName:"cpu",kernelFunc:x8};var y8=Ae(Di,r=>Math.tan(r)),ZD={kernelName:Di,backendName:"cpu",kernelFunc:y8};var b8=Ae(Pn,r=>Math.tanh(r)),JD={kernelName:Pn,backendName:"cpu",kernelFunc:b8};function _8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reps:s}=o;ee(n,"tile");let a=Uk(t.bufferSync(n),s);return t.makeTensorInfo(a.shape,a.dtype,a.values)}var QD={kernelName:yo,backendName:"cpu",kernelFunc:_8};function w8(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o;ee(n,"topk");let i=t.data.get(n.dataId).values,[l,u]=jk(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var e$={kernelName:$i,backendName:"cpu",kernelFunc:w8};function k8(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;ee(s,"unique");let a=o.data.get(s.dataId).values,{outputValues:i,outputShape:l,indices:u}=Hk(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var t$={kernelName:du,backendName:"cpu",kernelFunc:k8};function v8(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape.length,i=n.shape[s],l=new Array(a-1),u=0;for(let f=0;ft.disposeIntermediateTensorInfo(d)),f}var o$={kernelName:xa,backendName:"cpu",kernelFunc:C8};var I8=[VA,qE,GA,WA,QE,UA,jA,HA,qA,KA,XA,YA,ZA,JA,QA,t2,r2,o2,n2,BA,s2,i2,a2,ZE,tA,l2,KE,u2,p2,f2,d2,m2,g2,x2,h2,y2,b2,_2,w2,k2,v2,C2,I2,N2,S2,T2,A2,E2,eh,FA,D2,$2,R2,oA,F2,sA,O2,P2,M2,aA,L2,z2,B2,V2,G2,uA,W2,XE,U2,c2,j2,H2,q2,OA,pA,K2,X2,fA,Y2,Z2,J2,Q2,eD,tD,hA,oD,nD,sD,iD,lD,rD,cD,pD,xA,mD,fD,gD,yA,_A,xD,yD,bD,kA,_D,vD,CD,$x,ID,PA,IA,ND,YE,SD,MA,LA,zA,TD,ED,AD,DD,$D,RD,FD,SA,OD,PD,MD,LD,zD,BD,VD,TA,dD,WD,UD,jD,HD,qD,KD,AA,XD,YD,$A,uD,ZD,JD,QD,e$,vA,t$,r$,o$,wD];for(let r of I8)Qa(r);var ic={},av={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function n$(r,e){ic[r]=e}function Bo(r){if(!(r in ic)){let t=N8(r);if(t!==null)ic[r]=t;else return console.log("Could not get context for WebGL version",r),null}let e=ic[r];return e.isContextLost()?(delete ic[r],Bo(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),ic[r])}function S8(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function N8(r){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=S8(r);return e.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete ic[r]},!1),r===1?e.getContext("webgl",av)||e.getContext("experimental-webgl",av):e.getContext("webgl2",av)}var Cl;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(Cl||(Cl={}));var Er;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Er||(Er={}));var br;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(br||(br={}));function ac(r,e){return[e,r]}function s$(r,e){return r*e}function Il(r){let e=y.sizeFromShape(r),t=Math.ceil(e/4);return y.sizeToSquarishShape(t)}function Xi(r,e){return[Math.max(1,Math.ceil(e/2)),Math.max(1,Math.ceil(r/2))]}function i$(r,e){let[t,o]=Xi(r,e);return t*o*4}function oh(r,e){let t=r,o,n,s,a,i,l,u,c,p,m;return U().getNumber("WEBGL_VERSION")===2?(o=t.R32F,n=t.R16F,s=t.RGBA16F,a=t.RGBA32F,i=t.RED,u=4,c=1,p=t.HALF_FLOAT,m=t.FLOAT):(o=r.RGBA,n=r.RGBA,s=r.RGBA,a=t.RGBA,i=r.RGBA,u=4,c=4,p=e!=null?e.HALF_FLOAT_OES:null,m=r.FLOAT),l=r.RGBA,{internalFormatFloat:o,internalFormatHalfFloat:n,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:a,textureFormatFloat:i,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function Ee(r,e){let t=e();return U().getBool("DEBUG")&&T8(r),t}function T8(r){let e=r.getError();if(e!==r.NO_ERROR)throw new Error("WebGL Error: "+E8(r,e))}var A8=596e-10,D8=65504;function a$(r){return!!(U().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||A8r.getExtension(e),'Extension "'+e+'" not supported on this browser.')}function l$(r,e){let t=Wa(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(Ee(r,()=>r.shaderSource(t,e)),Ee(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(t)),new Error("Failed to compile vertex shader.");return t}function u$(r,e){let t=Wa(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(Ee(r,()=>r.shaderSource(t,e)),Ee(r,()=>r.compileShader(t)),r.getShaderParameter(t,r.COMPILE_STATUS)===!1)throw $8(e,r.getShaderInfoLog(t)),new Error("Failed to compile fragment shader.");return t}var R8=/ERROR: [0-9]+:([0-9]+):/g;function $8(r,e){let t=R8.exec(e);if(t==null){console.log(`Couldn't parse line number in error: ${e}`),console.log(r);return}let o=+t[1],n=r.split(` `),s=n.length.toString().length+2,a=n.map((p,m)=>y.rightPad((m+1).toString(),s)+p),i=0;for(let p=0;pr.createProgram(),"Unable to create WebGLProgram.")}function a$(r,e){if(Ee(r,()=>r.linkProgram(e)),r.getProgramParameter(e,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Failed to link vertex and fragment shaders.")}function Tx(r,e){if(Ee(r,()=>r.validateProgram(e)),r.getProgramParameter(e,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Shader program validation failed.")}function l$(r,e){let t=Wa(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ee(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),Ee(r,()=>r.bufferData(r.ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function u$(r,e){let t=Wa(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ee(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t)),Ee(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function c$(r){return Wa(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function p$(r,e){let t=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||e<=0){let o=`[${r}x${e}]`;throw new Error("Requested texture size "+o+" is invalid.")}if(r>t||e>t){let o=`[${r}x${e}]`,n=`[${t}x${t}]`;throw new Error("Requested texture size "+o+" greater than WebGL maximum on this browser / GPU "+n+".")}}function m$(r){return Wa(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function nv(r,e,t,o,n,s,a){let i=r.getAttribLocation(e,t);return i===-1?!1:(Ee(r,()=>r.bindBuffer(r.ARRAY_BUFFER,o)),Ee(r,()=>r.vertexAttribPointer(i,n,r.FLOAT,!1,s,a)),Ee(r,()=>r.enableVertexAttribArray(i)),!0)}function D8(r,e,t){A8(r,t),Ee(r,()=>r.activeTexture(r.TEXTURE0+t)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,e))}function f$(r,e,t){return Wa(r,()=>r.getUniformLocation(e,t),'uniform "'+t+'" not present in program.')}function d$(r,e,t){return r.getUniformLocation(e,t)}function h$(r,e,t,o){Ee(r,()=>D8(r,e,o)),Ee(r,()=>r.uniform1i(t,o))}function Ex(r,e,t){Ee(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),Ee(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0))}function sv(r,e){Ee(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),Ee(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function rh(r){let e=r.checkFramebufferStatus(r.FRAMEBUFFER);if(e!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+$8(r,e))}function $8(r,e){switch(e){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${e}`}}function Wa(r,e,t){let o=Ee(r,()=>e());if(o==null)throw new Error(t);return o}function A8(r,e){let t=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,o=e+r.TEXTURE0;if(ot){let n=`[gl.TEXTURE0, gl.TEXTURE${t}]`;throw new Error(`textureUnit must be in ${n}.`)}}function Nl(r,e=2){return y.sizeFromShape(r.slice(0,r.length-e))}function Sl(r){if(r.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function Ax(r){let e=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(e=[Nl(r),...Sl(r)]),e}function g$(r,e=!1){let t=G().getNumber("WEBGL_MAX_TEXTURE_SIZE");e&&(t=t*2,r=r.map((n,s)=>s>=r.length-2?y.nearestLargerEven(r[s]):r[s]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r);if(r.length<=1&&o<=t)return[1,o];if(r.length===2&&r[0]<=t&&r[1]<=t)return r;if(r.length===3&&r[0]*r[1]<=t&&r[2]<=t)return[r[0]*r[1],r[2]];if(r.length===3&&r[0]<=t&&r[1]*r[2]<=t)return[r[0],r[1]*r[2]];if(r.length===4&&r[0]*r[1]*r[2]<=t&&r[3]<=t)return[r[0]*r[1]*r[2],r[3]];if(r.length===4&&r[0]<=t&&r[1]*r[2]*r[3]<=t)return[r[0],r[1]*r[2]*r[3]];if(e){let n=Nl(r),s=2,a=2;return r.length&&([s,a]=Sl(r)),o=n*(s/2)*(a/2),y.sizeToSquarishShape(o).map(i=>i*2)}return y.sizeToSquarishShape(o)}function Dx(r){return r%2==0}function ac(r,e){if(r=r.slice(-2),e=e.slice(-2),y.arraysEqual(r,e)||!r.length||!e.length||r[0]===0||r[1]===0||e[0]===0||e[1]===0)return!0;if(r.length!==e.length){let t=r.slice(-1)[0],o=e.slice(-1)[0];if(t===o||Dx(t)&&Dx(o)&&(r[0]===1||e[0]===1))return!0}return r[1]===e[1]&&Dx(r[0])&&Dx(e[0])}var iv,av;function x$(r){if(iv==null){let e=Lo(r);iv=e.getParameter(e.MAX_TEXTURE_SIZE)}return iv}function y$(r){if(av==null){let e=Lo(r);av=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,av)}function b$(r){if(r===0)return 0;let e,t=Lo(r);return zo(t,"EXT_disjoint_timer_query_webgl2")&&r===2?e=2:zo(t,"EXT_disjoint_timer_query")?e=1:e=0,e}function zo(r,e){return r.getExtension(e)!=null}function lv(r){try{if(Lo(r)!=null)return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function _$(r){if(r===0)return!1;let e=Lo(r);if(r===1){if(!zo(e,"OES_texture_float"))return!1}else if(!zo(e,"EXT_color_buffer_float"))return!1;return uv(e)}function w$(r){if(r===0)return!1;let e=Lo(r);if(r===1){if(!zo(e,"OES_texture_float")||!zo(e,"WEBGL_color_buffer_float"))return!1}else{if(zo(e,"EXT_color_buffer_float"))return uv(e);let o="EXT_color_buffer_half_float";if(zo(e,o)){let n=e.getExtension(o);return R8(e,n)}return!1}return uv(e)}function uv(r){let e=eh(r),t=r.createTexture();r.bindTexture(r.TEXTURE_2D,t);let o=1,n=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatFloat,o,n,0,e.textureFormatFloat,e.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(t),r.deleteFramebuffer(s),a}function R8(r,e){let t=eh(r,e),o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o);let n=1,s=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatHalfFloat,n,s,0,t.textureFormatFloat,t.textureTypeHalfFloat,null);let a=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,a),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(o),r.deleteFramebuffer(a),i}function k$(r){return r!==2?!1:Lo(r).fenceSync!=null}function Yi(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&y.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the WebGL backend.`)})}var Be=G();Be.registerFlag("HAS_WEBGL",()=>Be.getNumber("WEBGL_VERSION")>0);Be.registerFlag("WEBGL_VERSION",()=>lv(2)?2:lv(1)?1:0);Be.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Be.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Be.get("WEBGL_VERSION")===2);Be.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Be.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Be.registerFlag("WEBGL_PACK",()=>Be.getBool("HAS_WEBGL"));Be.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_CLIP",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Be.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_REDUCE",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_LAZILY_UNPACK",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_CONV_IM2COL",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>x$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>y$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Be.getNumber("WEBGL_VERSION");return r===0?0:b$(r)});Be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Be.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Bc.isMobile());Be.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>_$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Be.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Be.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Be.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>w$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_FENCE_API_ENABLED",()=>k$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Be.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Be.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});function Mt(){let r,e,t,o,n,s,a,i,l,u;return G().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",e="in",t="out",o="in",n="texture",s="outputColor",a="out vec4 outputColor;",i=` +`))}function c$(r){return Wa(r,()=>r.createProgram(),"Unable to create WebGLProgram.")}function p$(r,e){if(Ee(r,()=>r.linkProgram(e)),r.getProgramParameter(e,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Failed to link vertex and fragment shaders.")}function Fx(r,e){if(Ee(r,()=>r.validateProgram(e)),r.getProgramParameter(e,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(e)),new Error("Shader program validation failed.")}function m$(r,e){let t=Wa(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ee(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),Ee(r,()=>r.bufferData(r.ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function f$(r,e){let t=Wa(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return Ee(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t)),Ee(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,e,r.STATIC_DRAW)),t}function d$(r){return Wa(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function h$(r,e){let t=U().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||e<=0){let o=`[${r}x${e}]`;throw new Error("Requested texture size "+o+" is invalid.")}if(r>t||e>t){let o=`[${r}x${e}]`,n=`[${t}x${t}]`;throw new Error("Requested texture size "+o+" greater than WebGL maximum on this browser / GPU "+n+".")}}function g$(r){return Wa(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function lv(r,e,t,o,n,s,a){let i=r.getAttribLocation(e,t);return i===-1?!1:(Ee(r,()=>r.bindBuffer(r.ARRAY_BUFFER,o)),Ee(r,()=>r.vertexAttribPointer(i,n,r.FLOAT,!1,s,a)),Ee(r,()=>r.enableVertexAttribArray(i)),!0)}function O8(r,e,t){F8(r,t),Ee(r,()=>r.activeTexture(r.TEXTURE0+t)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,e))}function x$(r,e,t){return Wa(r,()=>r.getUniformLocation(e,t),'uniform "'+t+'" not present in program.')}function y$(r,e,t){return r.getUniformLocation(e,t)}function b$(r,e,t,o){Ee(r,()=>O8(r,e,o)),Ee(r,()=>r.uniform1i(t,o))}function Ox(r,e,t){Ee(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),Ee(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0))}function uv(r,e){Ee(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),Ee(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function sh(r){let e=r.checkFramebufferStatus(r.FRAMEBUFFER);if(e!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+P8(r,e))}function P8(r,e){switch(e){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${e}`}}function Wa(r,e,t){let o=Ee(r,()=>e());if(o==null)throw new Error(t);return o}function F8(r,e){let t=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,o=e+r.TEXTURE0;if(ot){let n=`[gl.TEXTURE0, gl.TEXTURE${t}]`;throw new Error(`textureUnit must be in ${n}.`)}}function Nl(r,e=2){return y.sizeFromShape(r.slice(0,r.length-e))}function Sl(r){if(r.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function Px(r){let e=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(e=[Nl(r),...Sl(r)]),e}function _$(r,e=!1){let t=U().getNumber("WEBGL_MAX_TEXTURE_SIZE");e&&(t=t*2,r=r.map((n,s)=>s>=r.length-2?y.nearestLargerEven(r[s]):r[s]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r);if(r.length<=1&&o<=t)return[1,o];if(r.length===2&&r[0]<=t&&r[1]<=t)return r;if(r.length===3&&r[0]*r[1]<=t&&r[2]<=t)return[r[0]*r[1],r[2]];if(r.length===3&&r[0]<=t&&r[1]*r[2]<=t)return[r[0],r[1]*r[2]];if(r.length===4&&r[0]*r[1]*r[2]<=t&&r[3]<=t)return[r[0]*r[1]*r[2],r[3]];if(r.length===4&&r[0]<=t&&r[1]*r[2]*r[3]<=t)return[r[0],r[1]*r[2]*r[3]];if(e){let n=Nl(r),s=2,a=2;return r.length&&([s,a]=Sl(r)),o=n*(s/2)*(a/2),y.sizeToSquarishShape(o).map(i=>i*2)}return y.sizeToSquarishShape(o)}function Mx(r){return r%2==0}function lc(r,e){if(r=r.slice(-2),e=e.slice(-2),y.arraysEqual(r,e)||!r.length||!e.length||r[0]===0||r[1]===0||e[0]===0||e[1]===0)return!0;if(r.length!==e.length){let t=r.slice(-1)[0],o=e.slice(-1)[0];if(t===o||Mx(t)&&Mx(o)&&(r[0]===1||e[0]===1))return!0}return r[1]===e[1]&&Mx(r[0])&&Mx(e[0])}var cv,pv;function w$(r){if(cv==null){let e=Bo(r);cv=e.getParameter(e.MAX_TEXTURE_SIZE)}return cv}function k$(r){if(pv==null){let e=Bo(r);pv=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,pv)}function v$(r){if(r===0)return 0;let e,t=Bo(r);return Vo(t,"EXT_disjoint_timer_query_webgl2")&&r===2?e=2:Vo(t,"EXT_disjoint_timer_query")?e=1:e=0,e}function Vo(r,e){return r.getExtension(e)!=null}function mv(r){try{if(Bo(r)!=null)return!0}catch(e){return console.log("Error when getting WebGL context: ",e),!1}return!1}function C$(r){if(r===0)return!1;let e=Bo(r);if(r===1){if(!Vo(e,"OES_texture_float"))return!1}else if(!Vo(e,"EXT_color_buffer_float"))return!1;return fv(e)}function I$(r){if(r===0)return!1;let e=Bo(r);if(r===1){if(!Vo(e,"OES_texture_float")||!Vo(e,"WEBGL_color_buffer_float"))return!1}else{if(Vo(e,"EXT_color_buffer_float"))return fv(e);let o="EXT_color_buffer_half_float";if(Vo(e,o)){let n=e.getExtension(o);return M8(e,n)}return!1}return fv(e)}function fv(r){let e=oh(r),t=r.createTexture();r.bindTexture(r.TEXTURE_2D,t);let o=1,n=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatFloat,o,n,0,e.textureFormatFloat,e.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(t),r.deleteFramebuffer(s),a}function M8(r,e){let t=oh(r,e),o=r.createTexture();r.bindTexture(r.TEXTURE_2D,o);let n=1,s=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatHalfFloat,n,s,0,t.textureFormatFloat,t.textureTypeHalfFloat,null);let a=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,a),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,o,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(o),r.deleteFramebuffer(a),i}function N$(r){return r!==2?!1:Bo(r).fenceSync!=null}function Yi(r,e){Array.isArray(r)||(r=[r]),r.forEach(t=>{t!=null&&y.assert(t.dtype!=="complex64",()=>`${e} does not support complex64 tensors in the WebGL backend.`)})}var Be=U();Be.registerFlag("HAS_WEBGL",()=>Be.getNumber("WEBGL_VERSION")>0);Be.registerFlag("WEBGL_VERSION",()=>mv(2)?2:mv(1)?1:0);Be.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Be.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Be.get("WEBGL_VERSION")===2);Be.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Be.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Be.registerFlag("WEBGL_PACK",()=>Be.getBool("HAS_WEBGL"));Be.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_CLIP",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);Be.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_PACK_REDUCE",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_LAZILY_UNPACK",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_CONV_IM2COL",()=>Be.getBool("WEBGL_PACK"));Be.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>w$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>k$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Be.getNumber("WEBGL_VERSION");return r===0?0:v$(r)});Be.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Be.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Vc.isMobile());Be.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>C$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Be.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Be.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Be.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>I$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_FENCE_API_ENABLED",()=>N$(Be.getNumber("WEBGL_VERSION")));Be.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Be.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Be.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});function Mt(){let r,e,t,o,n,s,a,i,l,u;return U().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",e="in",t="out",o="in",n="texture",s="outputColor",a="out vec4 outputColor;",i=` bool isnan_custom(float val) { return (val > 0.0 || val < 0.0) ? false : val != 0.0; } @@ -86,11 +86,11 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:r,attribute:e,varyingVs:t,varyingFs:o,texture2D:n,output:s,defineOutput:a,defineSpecialNaN:i,defineSpecialInf:l,defineRound:u}}function zs(r,e,t="index"){let o=y.computeStrides(e);return o.map((n,s)=>{let a=`int ${r[s]} = ${t} / ${n}`,i=s===o.length-1?`int ${r[s+1]} = ${t} - ${r[s]} * ${n}`:`index -= ${r[s]} * ${n}`;return`${a}; ${i};`}).join("")}function zp(r){let e=y.computeStrides(r).map(t=>t.toString());return` + `),{version:r,attribute:e,varyingVs:t,varyingFs:o,texture2D:n,output:s,defineOutput:a,defineSpecialNaN:i,defineSpecialInf:l,defineRound:u}}function Vs(r,e,t="index"){let o=y.computeStrides(e);return o.map((n,s)=>{let a=`int ${r[s]} = ${t} / ${n}`,i=s===o.length-1?`int ${r[s+1]} = ${t} - ${r[s]} * ${n}`:`index -= ${r[s]} * ${n}`;return`${a}; ${i};`}).join("")}function Gp(r){let e=y.computeStrides(r).map(t=>t.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${e[0]} + coords.y * ${e[1]} + coords.z; } -`}var $x=` +`}var Lx=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -129,9 +129,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return c / 255.0; } -`;var cv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Cl.DENSE;let t=Il(e),o=Mt();this.outputShape=e,this.userCode=` +`;var dv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Cl.DENSE;let t=Il(e),o=Mt();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${zs(["r","c","d"],e)} + ${Vs(["r","c","d"],e)} return ivec3(r, c, d); } @@ -150,9 +150,9 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${o.output} = result; } - `}};var pv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Cl.DENSE;let t=Il(e),o=Mt();this.outputShape=e,this.userCode=` + `}};var hv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Cl.DENSE;let t=Il(e),o=Mt();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${zs(["r","c","d"],e)} + ${Vs(["r","c","d"],e)} return ivec3(r, c, d); } @@ -171,23 +171,23 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${o.output} = result; } - `}};var mv=class{constructor(e){this.variableNames=["A"],this.outTexUsage=Er.DOWNLOAD;let t=Mt();this.outputShape=e,this.userCode=` - ${$x} + `}};var gv=class{constructor(e){this.variableNames=["A"],this.outTexUsage=Er.DOWNLOAD;let t=Mt();this.outputShape=e,this.userCode=` + ${Lx} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}};var fv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Er.DOWNLOAD;let t=Mt();this.outputShape=e,this.userCode=` - ${$x} + `}};var xv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Er.DOWNLOAD;let t=Mt();this.outputShape=e,this.userCode=` + ${Lx} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}};var dv=class{constructor(e,t,o=!1){this.variableNames=["A"];let n=Mt(),[s,a]=t;this.outputShape=e;let i="result";o&&(i="floor(result * 255. + 0.5)"),this.userCode=` - ${zp(e)} + `}};var yv=class{constructor(e,t,o=!1){this.variableNames=["A"];let n=Mt(),[s,a]=t;this.outputShape=e;let i="result";o&&(i="floor(result * 255. + 0.5)"),this.userCode=` + ${Gp(e)} void main() { ivec3 coords = getOutputCoords(); @@ -216,7 +216,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = vec4(${i}, 0., 0., 0.); } - `}};var hv=class{constructor(e,t,o=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let n=Mt(),[s,a]=t;this.outputShape=e;let i="",l="result";o&&(l="floor(result * 255. + 0.5)");for(let u=0;u<=1;u++)for(let c=0;c<=1;c++){let p=u*2+c;i+=` + `}};var bv=class{constructor(e,t,o=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let n=Mt(),[s,a]=t;this.outputShape=e;let i="",l="result";o&&(l="floor(result * 255. + 0.5)");for(let u=0;u<=1;u++)for(let c=0;c<=1;c++){let p=u*2+c;i+=` localCoords = coords; if(localCoords[2] + ${c} < ${e[2]}) { localCoords[2] += ${c}; @@ -245,7 +245,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee } } `}this.userCode=` - ${zp(e)} + ${Gp(e)} void main() { ivec3 coords = getOutputCoords(); @@ -260,7 +260,7 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee ${n.output} = ${l}; } - `}};function v$(r){let e=Mt(),t=`${e.version} + `}};function S$(r){let e=Mt(),t=`${e.version} precision highp float; ${e.attribute} vec3 clipSpacePos; ${e.attribute} vec2 uv; @@ -269,22 +269,22 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return n$(r,t)}function C$(r){let e=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return l$(r,e)}function I$(r){let e=new Uint16Array([0,1,2,2,1,3]);return u$(r,e)}function oh(r,e,t,o,n,s){p$(e,t);let a=c$(r),i=r.TEXTURE_2D;return Ee(r,()=>r.bindTexture(i,a)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_MIN_FILTER,r.NEAREST)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_MAG_FILTER,r.NEAREST)),Ee(r,()=>r.texImage2D(i,0,o,e,t,0,n,s,null)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,null)),a}function gv(r){return r.internalFormatFloat}function N$(r,e,t,o){let[n,s]=ic(e,t);return oh(r,n,s,gv(o),o.textureFormatFloat,r.FLOAT)}function xv(r){return r.internalFormatHalfFloat}function S$(r,e,t,o){let[n,s]=ic(e,t);return oh(r,n,s,xv(o),o.textureFormatFloat,o.textureTypeHalfFloat)}function yv(r){return r.downloadTextureFormat}function T$(r,e,t,o){let[n,s]=ic(e,t);return oh(r,n,s,yv(o),r.RGBA,r.UNSIGNED_BYTE)}function bv(r){return r.internalFormatPackedFloat}function E$(r,e,t,o){let[n,s]=Xi(e,t);return oh(r,n,s,bv(o),r.RGBA,r.FLOAT)}function _v(r){return r.internalFormatPackedHalfFloat}function A$(r,e,t,o){let[n,s]=Xi(e,t);return oh(r,n,s,_v(o),r.RGBA,o.textureTypeHalfFloat)}function D$(r,e,t){let o=0,n=3*4,s=3*4+2*4;return Ee(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),nv(r,e,"clipSpacePos",t,3,s,o)&&nv(r,e,"uv",t,2,s,n)}function $$(r,e,t,o,n,s){Ee(r,()=>r.bindTexture(r.TEXTURE_2D,e));let a,i,l;n instanceof Uint8Array?(a=new Uint8Array(t*o*4),i=r.UNSIGNED_BYTE,l=r.RGBA):(a=new Float32Array(t*o*4),i=r.FLOAT,l=s.internalFormatPackedFloat),a.set(n),Ee(r,()=>r.texImage2D(r.TEXTURE_2D,0,l,t,o,0,r.RGBA,i,a)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function R$(r,e,t){Ee(r,()=>r.bindTexture(r.TEXTURE_2D,e)),t.data instanceof Uint8Array?Ee(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t.width,t.height,0,r.RGBA,r.UNSIGNED_BYTE,t.data)):Ee(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function F$(r,e,t,o){let n=r.createBuffer();Ee(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,n));let i=4*4*e*t;return Ee(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,i,r.STREAM_READ)),Ee(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,0)),Ee(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),n}function O$(r,e,t){let o=r,n=new Float32Array(t);return o.bindBuffer(o.PIXEL_PACK_BUFFER,e),o.getBufferSubData(o.PIXEL_PACK_BUFFER,0,n),o.bindBuffer(o.PIXEL_PACK_BUFFER,null),n}function P$(r,e,t,o){let[n,s]=ic(e,t),a=4,i=new Uint8Array(t$(e*t,a));return Ee(r,()=>r.readPixels(0,0,n,s,o.downloadTextureFormat,r.UNSIGNED_BYTE,i)),new Float32Array(i.buffer)}function M$(r,e,t,o,n,s,a,i){let l=r,u=new Float32Array(r$(s,a));return l.bindBuffer(l.PIXEL_PACK_BUFFER,e),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function L$(r,e,t){let o=new Float32Array(e*t*4);return Ee(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,o)),o}var wv=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=G().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,e$(t,e)):this.gl=Lo(t);let o="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(G().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",a="OES_texture_half_float";if(this.textureFloatExtension=th(this.gl,s),zo(this.gl,a))this.textureHalfFloatExtension=th(this.gl,a);else if(G().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(o),zo(this.gl,n))this.colorBufferHalfFloatExtension=th(this.gl,n);else if(G().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(o="EXT_color_buffer_float",zo(this.gl,o))this.colorBufferFloatExtension=this.gl.getExtension(o);else if(zo(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=C$(this.gl),this.indexBuffer=I$(this.gl),this.framebuffer=m$(this.gl),this.textureConfig=eh(this.gl,this.textureHalfFloatExtension)}get debug(){return G().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ee(e,()=>e.finish()),Ee(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ee(e,()=>e.deleteFramebuffer(this.framebuffer)),Ee(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ee(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ee(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),N$(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),S$(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),T$(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),R$(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,o,n){this.throwIfDisposed(),$$(this.gl,e,t,o,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),A$(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),E$(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(sv(this.gl,this.framebuffer),this.outputTexture=null),Ee(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,o){return this.downloadMatrixDriver(e,()=>P$(this.gl,t,o,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,o,n,s,a){return M$(this.gl,e,t,o,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return O$(this.gl,e,t)}createBufferFromTexture(e,t,o){this.bindTextureToFrameBuffer(e);let n=F$(this.gl,t,o,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,o;if(G().getBool("WEBGL_FENCE_API_ENABLED")){let n=e,s=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),o=()=>{let a=n.clientWaitSync(s,0,0);return a===n.ALREADY_SIGNALED||a===n.CONDITION_SATISFIED},t=s}else G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),o=()=>this.isQueryAvailable(t,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):o=()=>!0;return{query:t,isFencePassed:o}}downloadMatrixFromPackedTexture(e,t,o){return this.downloadMatrixDriver(e,()=>L$(this.gl,t,o))}createProgram(e){this.throwIfDisposed();let t=this.gl,o=s$(t,e),n=v$(t),s=i$(t);return Ee(t,()=>t.attachShader(s,n)),Ee(t,()=>t.attachShader(s,o)),a$(t,s),this.debug&&Tx(t,s),this.vertexAttrsAreBound||(this.setProgram(s),this.vertexAttrsAreBound=D$(t,this.program,this.vertexBuffer)),s}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ee(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Tx(this.gl,this.program),Ee(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,o=!0){return this.throwIfDisposed(),o?f$(this.gl,e,t):d$(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ee(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,o){this.throwIfDisposed(),this.throwIfNoProgram(),h$(this.gl,e,t,o)}setOutputMatrixTexture(e,t,o){this.setOutputMatrixTextureDriver(e,o,t)}setOutputPackedMatrixTexture(e,t,o){this.throwIfDisposed();let[n,s]=Xi(t,o);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,o,n){this.setOutputMatrixWriteRegionDriver(o,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,o,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Tx(this.gl,this.program),rh(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ee(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ee(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=th(this.gl,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.createQuery();return o.beginQuery(n.TIME_ELAPSED_EXT,s),s}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,o=this.getQueryTimerExtensionWebGL2();t.endQuery(o.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let o=this.gl;return o.getQueryParameter(e,o.QUERY_RESULT)/1e6}else{let o=this.getQueryTimerExtensionWebGL1();return o.getQueryObjectEXT(e,o.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.getQueryParameter(e,o.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let o=this.getQueryTimerExtensionWebGL1(),n=o.getQueryObjectEXT(e,o.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=F8(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:o}=this.itemsToPoll[t];o()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ex(this.gl,e,this.framebuffer),this.debug&&rh(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ex(this.gl,this.outputTexture,this.framebuffer),this.debug&&rh(this.gl)):sv(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let o=t();return this.unbindTextureToFrameBuffer(),o}setOutputMatrixTextureDriver(e,t,o){this.throwIfDisposed();let n=this.gl;Ex(n,e,this.framebuffer),this.debug&&rh(n),this.outputTexture=e,Ee(n,()=>n.viewport(0,0,t,o)),Ee(n,()=>n.scissor(0,0,t,o))}setOutputMatrixWriteRegionDriver(e,t,o,n){this.throwIfDisposed(),Ee(this.gl,()=>this.gl.scissor(e,t,o,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function F8(r){let e=0;for(;e{let h=y.sizeFromShape(d.shapeInfo.logicalShape);d.shapeInfo.isUniform?n.push(`uniform float ${d.name}${h>1?`[${h}]`:""};`):(n.push(`uniform sampler2D ${d.name};`),n.push(`uniform int offset${d.name};`))});let s=n.join(` -`),a=r.map(d=>O8(d,e,o)).join(` -`),i=e.texShape,l=Mt(),u=L8(l),c,p,m=V8(l);return e.isPacked?(c=P8(e.logicalShape,i),p=B8(l)):(c=M8(e.logicalShape,i),p=z8(l)),o&&(m+=G8),[m,u,p,s,c,a,t].join(` -`)}function Bp(r){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return W8(r);case 1:return U8(r);case 2:return j8(r);case 3:return H8(r);case 4:return q8(r);case 5:return K8(r);case 6:return X8(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function V$(r){switch(r.shapeInfo.logicalShape.length){case 0:return Y8(r);case 1:return Z8(r);case 2:return J8(r);case 3:return Q8(r);default:return eY(r)}}function O8(r,e,t=!1){let o="";t?o+=V$(r):o+=Bp(r);let n=r.shapeInfo.logicalShape,s=e.logicalShape;return n.length<=s.length&&(t?o+=tY(r,e):o+=rY(r,e)),o}function P8(r,e){switch(r.length){case 0:return G$();case 1:return oY(r,e);case 2:return iY(r,e);case 3:return nY(r,e);default:return sY(r,e)}}function M8(r,e){switch(r.length){case 0:return G$();case 1:return aY(r,e);case 2:return mY(r,e);case 3:return lY(r,e);case 4:return uY(r,e);case 5:return cY(r,e);case 6:return pY(r,e);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function L8(r){return` + }`;return l$(r,t)}function T$(r){let e=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return m$(r,e)}function E$(r){let e=new Uint16Array([0,1,2,2,1,3]);return f$(r,e)}function ih(r,e,t,o,n,s){h$(e,t);let a=d$(r),i=r.TEXTURE_2D;return Ee(r,()=>r.bindTexture(i,a)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_MIN_FILTER,r.NEAREST)),Ee(r,()=>r.texParameteri(i,r.TEXTURE_MAG_FILTER,r.NEAREST)),Ee(r,()=>r.texImage2D(i,0,o,e,t,0,n,s,null)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,null)),a}function _v(r){return r.internalFormatFloat}function A$(r,e,t,o){let[n,s]=ac(e,t);return ih(r,n,s,_v(o),o.textureFormatFloat,r.FLOAT)}function wv(r){return r.internalFormatHalfFloat}function D$(r,e,t,o){let[n,s]=ac(e,t);return ih(r,n,s,wv(o),o.textureFormatFloat,o.textureTypeHalfFloat)}function kv(r){return r.downloadTextureFormat}function $$(r,e,t,o){let[n,s]=ac(e,t);return ih(r,n,s,kv(o),r.RGBA,r.UNSIGNED_BYTE)}function vv(r){return r.internalFormatPackedFloat}function R$(r,e,t,o){let[n,s]=Xi(e,t);return ih(r,n,s,vv(o),r.RGBA,r.FLOAT)}function Cv(r){return r.internalFormatPackedHalfFloat}function F$(r,e,t,o){let[n,s]=Xi(e,t);return ih(r,n,s,Cv(o),r.RGBA,o.textureTypeHalfFloat)}function O$(r,e,t){let o=0,n=3*4,s=3*4+2*4;return Ee(r,()=>r.bindBuffer(r.ARRAY_BUFFER,t)),lv(r,e,"clipSpacePos",t,3,s,o)&&lv(r,e,"uv",t,2,s,n)}function P$(r,e,t,o,n,s){Ee(r,()=>r.bindTexture(r.TEXTURE_2D,e));let a,i,l;n instanceof Uint8Array?(a=new Uint8Array(t*o*4),i=r.UNSIGNED_BYTE,l=r.RGBA):(a=new Float32Array(t*o*4),i=r.FLOAT,l=s.internalFormatPackedFloat),a.set(n),Ee(r,()=>r.texImage2D(r.TEXTURE_2D,0,l,t,o,0,r.RGBA,i,a)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function M$(r,e,t){Ee(r,()=>r.bindTexture(r.TEXTURE_2D,e)),t.data instanceof Uint8Array?Ee(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t.width,t.height,0,r.RGBA,r.UNSIGNED_BYTE,t.data)):Ee(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t)),Ee(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function L$(r,e,t,o){let n=r.createBuffer();Ee(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,n));let i=4*4*e*t;return Ee(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,i,r.STREAM_READ)),Ee(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,0)),Ee(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),n}function z$(r,e,t){let o=r,n=new Float32Array(t);return o.bindBuffer(o.PIXEL_PACK_BUFFER,e),o.getBufferSubData(o.PIXEL_PACK_BUFFER,0,n),o.bindBuffer(o.PIXEL_PACK_BUFFER,null),n}function B$(r,e,t,o){let[n,s]=ac(e,t),a=4,i=new Uint8Array(s$(e*t,a));return Ee(r,()=>r.readPixels(0,0,n,s,o.downloadTextureFormat,r.UNSIGNED_BYTE,i)),new Float32Array(i.buffer)}function V$(r,e,t,o,n,s,a,i){let l=r,u=new Float32Array(i$(s,a));return l.bindBuffer(l.PIXEL_PACK_BUFFER,e),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function G$(r,e,t){let o=new Float32Array(e*t*4);return Ee(r,()=>r.readPixels(0,0,t,e,r.RGBA,r.FLOAT,o)),o}var Iv=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=U().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,n$(t,e)):this.gl=Bo(t);let o="WEBGL_color_buffer_float",n="EXT_color_buffer_half_float";if(U().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",a="OES_texture_half_float";if(this.textureFloatExtension=nh(this.gl,s),Vo(this.gl,a))this.textureHalfFloatExtension=nh(this.gl,a);else if(U().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(o),Vo(this.gl,n))this.colorBufferHalfFloatExtension=nh(this.gl,n);else if(U().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(o="EXT_color_buffer_float",Vo(this.gl,o))this.colorBufferFloatExtension=this.gl.getExtension(o);else if(Vo(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=T$(this.gl),this.indexBuffer=E$(this.gl),this.framebuffer=g$(this.gl),this.textureConfig=oh(this.gl,this.textureHalfFloatExtension)}get debug(){return U().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;Ee(e,()=>e.finish()),Ee(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),Ee(e,()=>e.deleteFramebuffer(this.framebuffer)),Ee(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),Ee(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),Ee(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),A$(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),D$(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),$$(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),M$(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,o,n){this.throwIfDisposed(),P$(this.gl,e,t,o,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),F$(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),R$(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(uv(this.gl,this.framebuffer),this.outputTexture=null),Ee(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,o){return this.downloadMatrixDriver(e,()=>B$(this.gl,t,o,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,o,n,s,a){return V$(this.gl,e,t,o,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return z$(this.gl,e,t)}createBufferFromTexture(e,t,o){this.bindTextureToFrameBuffer(e);let n=L$(this.gl,t,o,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,o;if(U().getBool("WEBGL_FENCE_API_ENABLED")){let n=e,s=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),o=()=>{let a=n.clientWaitSync(s,0,0);return a===n.ALREADY_SIGNALED||a===n.CONDITION_SATISFIED},t=s}else U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),o=()=>this.isQueryAvailable(t,U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):o=()=>!0;return{query:t,isFencePassed:o}}downloadMatrixFromPackedTexture(e,t,o){return this.downloadMatrixDriver(e,()=>G$(this.gl,t,o))}createProgram(e){this.throwIfDisposed();let t=this.gl,o=u$(t,e),n=S$(t),s=c$(t);return Ee(t,()=>t.attachShader(s,n)),Ee(t,()=>t.attachShader(s,o)),p$(t,s),this.debug&&Fx(t,s),this.vertexAttrsAreBound||(this.setProgram(s),this.vertexAttrsAreBound=O$(t,this.program,this.vertexBuffer)),s}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&Ee(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&Fx(this.gl,this.program),Ee(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,o=!0){return this.throwIfDisposed(),o?x$(this.gl,e,t):y$(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),Ee(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,o){this.throwIfDisposed(),this.throwIfNoProgram(),b$(this.gl,e,t,o)}setOutputMatrixTexture(e,t,o){this.setOutputMatrixTextureDriver(e,o,t)}setOutputPackedMatrixTexture(e,t,o){this.throwIfDisposed();let[n,s]=Xi(t,o);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,o,n){this.setOutputMatrixWriteRegionDriver(o,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,o,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Fx(this.gl,this.program),sh(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),Ee(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),Ee(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=nh(this.gl,U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.createQuery();return o.beginQuery(n.TIME_ELAPSED_EXT,s),s}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,o=this.getQueryTimerExtensionWebGL2();t.endQuery(o.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let o=this.gl;return o.getQueryParameter(e,o.QUERY_RESULT)/1e6}else{let o=this.getQueryTimerExtensionWebGL1();return o.getQueryObjectEXT(e,o.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let o=this.gl,n=this.getQueryTimerExtensionWebGL2(),s=o.getQueryParameter(e,o.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let o=this.getQueryTimerExtensionWebGL1(),n=o.getQueryObjectEXT(e,o.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=L8(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:o}=this.itemsToPoll[t];o()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),!(this.itemsToPoll.length>1)&&y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ox(this.gl,e,this.framebuffer),this.debug&&sh(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ox(this.gl,this.outputTexture,this.framebuffer),this.debug&&sh(this.gl)):uv(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let o=t();return this.unbindTextureToFrameBuffer(),o}setOutputMatrixTextureDriver(e,t,o){this.throwIfDisposed();let n=this.gl;Ox(n,e,this.framebuffer),this.debug&&sh(n),this.outputTexture=e,Ee(n,()=>n.viewport(0,0,t,o)),Ee(n,()=>n.scissor(0,0,t,o))}setOutputMatrixWriteRegionDriver(e,t,o,n){this.throwIfDisposed(),Ee(this.gl,()=>this.gl.scissor(e,t,o,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function L8(r){let e=0;for(;e{let h=y.sizeFromShape(d.shapeInfo.logicalShape);d.shapeInfo.isUniform?n.push(`uniform float ${d.name}${h>1?`[${h}]`:""};`):(n.push(`uniform sampler2D ${d.name};`),n.push(`uniform int offset${d.name};`))});let s=n.join(` +`),a=r.map(d=>z8(d,e,o)).join(` +`),i=e.texShape,l=Mt(),u=G8(l),c,p,m=j8(l);return e.isPacked?(c=B8(e.logicalShape,i),p=U8(l)):(c=V8(e.logicalShape,i),p=W8(l)),o&&(m+=H8),[m,u,p,s,c,a,t].join(` +`)}function Wp(r){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return q8(r);case 1:return K8(r);case 2:return X8(r);case 3:return Y8(r);case 4:return Z8(r);case 5:return J8(r);case 6:return Q8(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function j$(r){switch(r.shapeInfo.logicalShape.length){case 0:return eY(r);case 1:return tY(r);case 2:return rY(r);case 3:return oY(r);default:return nY(r)}}function z8(r,e,t=!1){let o="";t?o+=j$(r):o+=Wp(r);let n=r.shapeInfo.logicalShape,s=e.logicalShape;return n.length<=s.length&&(t?o+=sY(r,e):o+=iY(r,e)),o}function B8(r,e){switch(r.length){case 0:return H$();case 1:return aY(r,e);case 2:return cY(r,e);case 3:return lY(r,e);default:return uY(r,e)}}function V8(r,e){switch(r.length){case 0:return H$();case 1:return pY(r,e);case 2:return gY(r,e);case 3:return mY(r,e);case 4:return fY(r,e);case 5:return dY(r,e);case 6:return hY(r,e);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function G8(r){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${r.texture2D}(textureSampler, uv).r; } - `}function z8(r){return` + `}function W8(r){return` void setOutput(float val) { ${r.output} = vec4(val, 0, 0, 0); } - `}function B8(r){return` + `}function U8(r){return` void setOutput(vec4 val) { ${r.output} = val; } - `}function V8(r){return`${r.version} + `}function j8(r){return`${r.version} precision highp float; precision highp int; precision highp sampler2D; @@ -339,10 +339,10 @@ Hi there \u{1F44B}. Looks like you are running TensorFlow.js in Node.js. To spee return fract((p3.x + p3.y) * p3.z); } - ${fY} - ${dY} - ${hY} - `}var fY=` + ${xY} + ${yY} + ${bY} + `}var xY=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -354,7 +354,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,dY=` +`,yY=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -362,7 +362,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,hY=` +`,bY=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -371,7 +371,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,G8=` +`,H8=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -382,11 +382,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function G$(){return` +`;function H$(){return` int getOutputCoords() { return 0; } - `}function oY(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return t[0]===1?` + `}function aY(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)];return t[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${t[1]}.0); } @@ -400,7 +400,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return 2 * (resTexRC.x * ${t[1]} + resTexRC.y); } - `}function aY(r,e){return e[0]===1?` + `}function pY(r,e){return e[0]===1?` int getOutputCoords() { return int(resultUV.x * ${e[1]}.0); } @@ -414,7 +414,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${e[0]}, ${e[1]})); return resTexRC.x * ${e[1]} + resTexRC.y; } - `}function nY(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],o=Math.ceil(r[2]/2),n=o*Math.ceil(r[1]/2);return` + `}function lY(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],o=Math.ceil(r[2]/2),n=o*Math.ceil(r[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -428,7 +428,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function lY(r,e){let t=zs(["r","c","d"],r);return` + `}function mY(r,e){let t=Vs(["r","c","d"],r);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${e[0]}, ${e[1]})); @@ -436,7 +436,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t} return ivec3(r, c, d); } - `}function sY(r,e){let t=[Math.ceil(e[0]/2),Math.ceil(e[1]/2)],o=Math.ceil(r[r.length-1]/2),n=o*Math.ceil(r[r.length-2]/2),s=n,a="",i="b, r, c";for(let l=2;l=1?c="coords = 0;":c=i.map(b=>`coords.${p[b+u]} = 0;`).join(` + `}function sY(r,e){let t=r.name,o=t.charAt(0).toUpperCase()+t.slice(1),n="get"+o+"AtOutCoords",s=r.shapeInfo.logicalShape.length,a=e.logicalShape.length,i=W$(r.shapeInfo.logicalShape,e.logicalShape),l=Le(a),u=a-s,c,p=["x","y","z","w","u","v"];s===0?c="":a<2&&i.length>=1?c="coords = 0;":c=i.map(b=>`coords.${p[b+u]} = 0;`).join(` `);let m="";a<2&&s>0?m="coords":m=r.shapeInfo.logicalShape.map((b,_)=>`coords.${p[_+u]}`).join(", ");let f="return outputValue;",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(e.logicalShape)===1;if(s===1&&!h&&!x)f=` return vec4(outputValue.xy, outputValue.xy); `;else if(h&&!x)a===1?f=` @@ -816,22 +816,22 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${o}(${m}); ${f} } - `}function rY(r,e){let t=r.name,o=t.charAt(0).toUpperCase()+t.slice(1),n="get"+o+"AtOutCoords",s=e.texShape,a=r.shapeInfo.texShape,i=r.shapeInfo.logicalShape.length,l=e.logicalShape.length;if(!r.shapeInfo.isUniform&&i===l&&r.shapeInfo.flatOffset==null&&y.arraysEqual(a,s))return` + `}function iY(r,e){let t=r.name,o=t.charAt(0).toUpperCase()+t.slice(1),n="get"+o+"AtOutCoords",s=e.texShape,a=r.shapeInfo.texShape,i=r.shapeInfo.logicalShape.length,l=e.logicalShape.length;if(!r.shapeInfo.isUniform&&i===l&&r.shapeInfo.flatOffset==null&&y.arraysEqual(a,s))return` float ${n}() { return sampleTexture(${t}, resultUV); } - `;let u=Le(l),c=z$(r.shapeInfo.logicalShape,e.logicalShape),p=l-i,m,f=["x","y","z","w","u","v"];i===0?m="":l<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` + `;let u=Le(l),c=W$(r.shapeInfo.logicalShape,e.logicalShape),p=l-i,m,f=["x","y","z","w","u","v"];i===0?m="":l<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` `);let d="";return l<2&&i>0?d="coords":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(", "),` float ${n}() { ${u} coords = getOutputCoords(); ${m} return get${o}(${d}); } - `}function Le(r){if(r<=1)return"int";if(r===2)return"ivec2";if(r===3)return"ivec3";if(r===4)return"ivec4";if(r===5)return"ivec5";if(r===6)return"ivec6";throw Error(`GPU for rank ${r} is not yet supported`)}function Gp(r,e){let t=JSON.parse(JSON.stringify(r));return t.shapeInfo.logicalShape=e,t}function Wp(r,e){return e.map(t=>r[t]).join(", ")}function W$(r,e,t,o){let n=e.userCode,s=t.map((f,d)=>{let h={logicalShape:f.shape,texShape:f.isUniform?null:f.texData.texShape,isUniform:f.isUniform,isPacked:f.isUniform?!1:f.texData.isPacked,flatOffset:null};return f.texData!=null&&f.texData.slice!=null&&f.texData.slice.flatOffset>0&&(h.flatOffset=f.texData.slice.flatOffset),{name:e.variableNames[d],shapeInfo:h}}),a=s.map(f=>f.shapeInfo),i={logicalShape:o.shape,texShape:o.texData.texShape,isUniform:!1,isPacked:o.texData.isPacked,flatOffset:null},l=B$(s,i,n,e.packedInputs),u=r.createProgram(l),c=null,p=r.getUniformLocation(u,"NAN",!1);G().getNumber("WEBGL_VERSION")===1&&(c=r.getUniformLocation(u,"INFINITY",!1));let m={};for(let f=0;f{let n=t.logicalShape,s=e[o],a=s.shape;if(!y.arraysEqual(n,a))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${a} must match`);if(t.isUniform&&s.isUniform)return;let i=t.texShape,l=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(i,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${l} must match`)})}function j$(r,e,t,o,n){U$(e.inShapeInfos,t),U$([e.outShapeInfo],[o]);let s=o.texData.texture,a=o.texData.texShape;o.texData.isPacked?r.setOutputPackedMatrixTexture(s,a[0],a[1]):r.setOutputMatrixTexture(s,a[0],a[1]),r.setProgram(e.webGLProgram),G().getNumber("WEBGL_VERSION")===1&&e.infLoc!==null&&r.gl.uniform1f(e.infLoc,Infinity),e.nanLoc!==null&&r.gl.uniform1f(e.nanLoc,NaN),t.forEach((i,l)=>{let u=e.program.variableNames[l],c=e.uniformLocations[u],p=e.uniformLocations[`offset${u}`];if(c!=null){if(i.isUniform){if(y.sizeFromShape(i.shape)<2)r.gl.uniform1f(c,i.uniformValues[0]);else{let m=i.uniformValues;m instanceof Float32Array||(m=new Float32Array(m)),r.gl.uniform1fv(c,m)}return}i.texData.slice!=null&&p!=null&&r.gl.uniform1i(p,i.texData.slice.flatOffset),r.setInputMatrixTexture(i.texData.texture,c,l)}}),n!=null&&n(r,e.webGLProgram),r.executeProgram()}function H$(r,e,t){let o="";e.concat(t).forEach(a=>{let i=a.texData!=null&&a.texData.slice!=null&&a.texData.slice.flatOffset>0,l=a.isUniform?"uniform":a.texData.texShape;o+=`${a.shape}_${l}_${i}`});let n=r.userCode,s=r.constructor.name;return s+="_"+o+"_"+n,s}var{addImpl:q$,bincountImpl:Rx,bincountReduceImpl:K$,ceilImpl:X$,concatImpl:Y$,expImpl:Z$,expm1Impl:J$,floorImpl:Q$,gatherV2Impl:eR,greaterImpl:tR,lessImpl:rR,linSpaceImpl:oR,logImpl:nR,maxImpl:sR,maximumImpl:iR,minimumImpl:aR,multiplyImpl:lR,negImpl:uR,prodImpl:cR,rangeImpl:pR,rsqrtImpl:mR,simpleAbsImpl:Fx,sliceImpl:fR,stridedSliceImpl:dR,subImpl:hR,tileImpl:gR,topKImpl:xR,transposeImpl:Up,uniqueImpl:yR}=Wk;function kv(r,e){return["x","y","z","w","u","v"].slice(0,e).map(t=>`${r}.${t}`)}function Ut(r,e){return e===1?[r]:kv(r,e)}function bR(r,e){if(r===1)return"rc";let t="";for(let o=0;or[t]).join(", ")}function q$(r,e,t,o){let n=e.userCode,s=t.map((f,d)=>{let h={logicalShape:f.shape,texShape:f.isUniform?null:f.texData.texShape,isUniform:f.isUniform,isPacked:f.isUniform?!1:f.texData.isPacked,flatOffset:null};return f.texData!=null&&f.texData.slice!=null&&f.texData.slice.flatOffset>0&&(h.flatOffset=f.texData.slice.flatOffset),{name:e.variableNames[d],shapeInfo:h}}),a=s.map(f=>f.shapeInfo),i={logicalShape:o.shape,texShape:o.texData.texShape,isUniform:!1,isPacked:o.texData.isPacked,flatOffset:null},l=U$(s,i,n,e.packedInputs),u=r.createProgram(l),c=null,p=r.getUniformLocation(u,"NAN",!1);U().getNumber("WEBGL_VERSION")===1&&(c=r.getUniformLocation(u,"INFINITY",!1));let m={};for(let f=0;f{let n=t.logicalShape,s=e[o],a=s.shape;if(!y.arraysEqual(n,a))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${a} must match`);if(t.isUniform&&s.isUniform)return;let i=t.texShape,l=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(i,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${i} and ${l} must match`)})}function X$(r,e,t,o,n){K$(e.inShapeInfos,t),K$([e.outShapeInfo],[o]);let s=o.texData.texture,a=o.texData.texShape;o.texData.isPacked?r.setOutputPackedMatrixTexture(s,a[0],a[1]):r.setOutputMatrixTexture(s,a[0],a[1]),r.setProgram(e.webGLProgram),U().getNumber("WEBGL_VERSION")===1&&e.infLoc!==null&&r.gl.uniform1f(e.infLoc,Infinity),e.nanLoc!==null&&r.gl.uniform1f(e.nanLoc,NaN),t.forEach((i,l)=>{let u=e.program.variableNames[l],c=e.uniformLocations[u],p=e.uniformLocations[`offset${u}`];if(c!=null){if(i.isUniform){if(y.sizeFromShape(i.shape)<2)r.gl.uniform1f(c,i.uniformValues[0]);else{let m=i.uniformValues;m instanceof Float32Array||(m=new Float32Array(m)),r.gl.uniform1fv(c,m)}return}i.texData.slice!=null&&p!=null&&r.gl.uniform1i(p,i.texData.slice.flatOffset),r.setInputMatrixTexture(i.texData.texture,c,l)}}),n!=null&&n(r,e.webGLProgram),r.executeProgram()}function Y$(r,e,t){let o="";e.concat(t).forEach(a=>{let i=a.texData!=null&&a.texData.slice!=null&&a.texData.slice.flatOffset>0,l=a.isUniform?"uniform":a.texData.texShape;o+=`${a.shape}_${l}_${i}`});let n=r.userCode,s=r.constructor.name;return s+="_"+o+"_"+n,s}var{addImpl:Z$,bincountImpl:zx,bincountReduceImpl:J$,ceilImpl:Q$,concatImpl:eR,expImpl:tR,expm1Impl:rR,floorImpl:oR,gatherV2Impl:nR,greaterImpl:sR,lessImpl:iR,linSpaceImpl:aR,logImpl:lR,maxImpl:uR,maximumImpl:cR,minimumImpl:pR,multiplyImpl:mR,negImpl:fR,prodImpl:dR,rangeImpl:hR,rsqrtImpl:gR,simpleAbsImpl:Bx,sliceImpl:xR,stridedSliceImpl:yR,subImpl:bR,tileImpl:_R,topKImpl:wR,transposeImpl:qp,uniqueImpl:kR}=qk;function Nv(r,e){return["x","y","z","w","u","v"].slice(0,e).map(t=>`${r}.${t}`)}function Ut(r,e){return e===1?[r]:Nv(r,e)}function vR(r,e){if(r===1)return"rc";let t="";for(let o=0;o ${e[0]}`;let o="";for(let n=r-2;n= ${e[n]}`,n ${e[0]}`;let o="";for(let n=r-2;n= ${e[n]}`,n= ${e}; bool rEdge = rp1 >= ${t}; - `}function yY(r,e){let t=r.length,o=bY(t,e);return t===1?`getA(rc), + `}function kY(r,e){let t=r.length,o=vY(t,e);return t===1?`getA(rc), rc + 1 >= ${r[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${o[0]}), cEdge ? 0. : getA(${o[1]}), rEdge ? 0. : getA(${o[2]}), - rEdge || cEdge ? 0. : getA(${o[3]})`}var nh=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let o="";for(let n=0;n<4;n++){let s="thisRC = rc;";n%2==1&&(s+="thisRC.z += 1;"),n>1&&(s+="thisRC.y += 1;"),o+=` + rEdge || cEdge ? 0. : getA(${o[3]})`}var ah=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let o="";for(let n=0;n<4;n++){let s="thisRC = rc;";n%2==1&&(s+="thisRC.z += 1;"),n>1&&(s+="thisRC.y += 1;"),o+=` ${s} ${n>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -868,8 +868,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${n>0?"}":""} `}this.userCode=` - ${_Y(t)} - ${zp(e)} + ${CY(t)} + ${Gp(e)} void main() { ivec3 rc = getOutputCoords(); @@ -884,12 +884,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function _Y(r){return` + `}};function CY(r){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${zs(["r","c","d"],r)} + ${Vs(["r","c","d"],r)} return ivec3(r, c, d); } - `}var Cv=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,o){let n=wR(t,o),s=kR(e,n,o);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let a=_R(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,o);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=a,this.log();let l=this.freeTextures[s].shift();return this.usedTextures[s].push(l),l}let i;return n===br.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===br.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===br.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===br.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===br.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[s].push(i),this.numUsedTextures++,this._numBytesAllocated+=a,this.log(),i}releaseTexture(e,t,o,n){if(this.freeTextures==null)return;let s=wR(o,n),a=kR(t,s,n);a in this.freeTextures||(this.freeTextures[a]=[]);let i=_R(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),l=G().get("WEBGL_DELETE_TEXTURE_THRESHOLD");l!==-1&&this._numBytesAllocated>l?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[a].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let u=this.usedTextures[a],c=u.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");u.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function wY(r,e){let t=r;if(e===t.R32F)return 4;if(e===t.R16F)return 2;if(e===t.RGBA32F)return 16;if(e===r.RGBA)return 16;if(e===t.RGBA16F)return 8;throw new Error(`Unknown internal format ${e}`)}function _R(r,e,t,o,n){let s=kY(e,o),a;if(n){let[l,u]=Xi(r[0],r[1]);a=l*u}else{let[l,u]=ic(r[0],r[1]);a=l*u}let i=wY(t,s);return a*i}function kY(r,e){switch(r){case br.PACKED_2X2_FLOAT32:return bv(e);case br.PACKED_2X2_FLOAT16:return _v(e);case br.UNPACKED_FLOAT32:return gv(e);case br.UNPACKED_FLOAT16:return xv(e);case br.PACKED_4X1_UNSIGNED_BYTE:return yv(e);default:throw new Error(`Unknown physical texture type ${r}`)}}function vY(r){return G().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?br.PACKED_2X2_FLOAT32:br.UNPACKED_FLOAT32:r?br.PACKED_2X2_FLOAT16:br.UNPACKED_FLOAT16}function wR(r,e){if(r===Er.UPLOAD)return br.PACKED_2X2_FLOAT32;if(r===Er.RENDER||r==null)return vY(e);if(r===Er.DOWNLOAD||r===Er.PIXELS)return br.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function kR(r,e,t){return`${r[0]}_${r[1]}_${e}_${t}`}var uo=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}var Tv=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,o){let n=IR(t,o),s=NR(e,n,o);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let a=CR(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,o);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=a,this.log();let l=this.freeTextures[s].shift();return this.usedTextures[s].push(l),l}let i;return n===br.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===br.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===br.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===br.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===br.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[s].push(i),this.numUsedTextures++,this._numBytesAllocated+=a,this.log(),i}releaseTexture(e,t,o,n){if(this.freeTextures==null)return;let s=IR(o,n),a=NR(t,s,n);a in this.freeTextures||(this.freeTextures[a]=[]);let i=CR(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),l=U().get("WEBGL_DELETE_TEXTURE_THRESHOLD");l!==-1&&this._numBytesAllocated>l?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=i):(this.freeTextures[a].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let u=this.usedTextures[a],c=u.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");u.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function IY(r,e){let t=r;if(e===t.R32F)return 4;if(e===t.R16F)return 2;if(e===t.RGBA32F)return 16;if(e===r.RGBA)return 16;if(e===t.RGBA16F)return 8;throw new Error(`Unknown internal format ${e}`)}function CR(r,e,t,o,n){let s=NY(e,o),a;if(n){let[l,u]=Xi(r[0],r[1]);a=l*u}else{let[l,u]=ac(r[0],r[1]);a=l*u}let i=IY(t,s);return a*i}function NY(r,e){switch(r){case br.PACKED_2X2_FLOAT32:return vv(e);case br.PACKED_2X2_FLOAT16:return Cv(e);case br.UNPACKED_FLOAT32:return _v(e);case br.UNPACKED_FLOAT16:return wv(e);case br.PACKED_4X1_UNSIGNED_BYTE:return kv(e);default:throw new Error(`Unknown physical texture type ${r}`)}}function SY(r){return U().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?br.PACKED_2X2_FLOAT32:br.UNPACKED_FLOAT32:r?br.PACKED_2X2_FLOAT16:br.UNPACKED_FLOAT16}function IR(r,e){if(r===Er.UPLOAD)return br.PACKED_2X2_FLOAT32;if(r===Er.RENDER||r==null)return SY(e);if(r===Er.DOWNLOAD||r===Er.PIXELS)return br.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function NR(r,e,t){return`${r[0]}_${r[1]}_${e}_${t}`}var uo=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.userCode=` float unaryOperation(float x) { ${t} } @@ -900,11 +900,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},gr="if (isnan(x)) return x;",vR="return x;",Iv="return abs(x);";var CR="return (x >= 0.0) ? x : (exp(x) - 1.0);",IR=gr+` + `}},gr="if (isnan(x)) return x;",SR="return x;",Ev="return abs(x);";var TR="return (x >= 0.0) ? x : (exp(x) - 1.0);",ER=gr+` return (x < 0.0) ? 0.0 : x; -`,NR=gr+` +`,AR=gr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,sh="return x;";var SR="return x;",TR=` +`,lh="return x;";var DR="return x;",$R=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -913,7 +913,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,ER=` +`,RR=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -923,7 +923,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,AR=` +`,FR=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -933,7 +933,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,Bs=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` +`,Gs=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -944,17 +944,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}};var Nv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,o=Ut("rc",t),n=Le(t),s=bR(t,o),a=o.slice(-2),i=t<=1?"rc":`vec2(${a.join(",")})`;this.userCode=` + `}};var Av=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;let t=e.length,o=Ut("rc",t),n=Le(t),s=vR(t,o),a=o.slice(-2),i=t<=1?"rc":`vec2(${a.join(",")})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${i})); } - `}};var CY=Sr.whereImpl,IY=1e-7,NY=1e-4,Ox={};function SY(r){return r in Ox||(Ox[r]={}),Ox[r]}var TY=128,EY=600;function AY(){return G().global.screen==null?1024:G().global.screen.height*G().global.screen.width*window.devicePixelRatio*EY/1024/1024}var Sv=class extends Ws{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!G().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=Lo(G().getNumber("WEBGL_VERSION"));this.binaryCache=SY(G().getNumber("WEBGL_VERSION")),this.gpgpu=new wv(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new Cv(this.gpgpu),this.numMBBeforeWarning=AY(),this.texData=new Ya(this,vs())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,o){if((G().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||G().getBool("DEBUG"))&&this.checkNumericalProblems(e),o==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={};return this.texData.set(n,{shape:t,dtype:o,values:e,usage:Er.UPLOAD,refCount:1,complexParentRefCount:0}),n}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}decComplexRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.complexParentRefCount>0&&t.refCount--}}move(e,t,o,n){if(G().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:o,dtype:n,values:t,usage:Er.UPLOAD,refCount:1,complexParentRefCount:0})}disposeIntermediateTensorInfo(e){let t=e.dataId;if(this.texData.has(t)){let o=this.texData.get(t);o.refCount--,o.refCount<1&&this.disposeData(t)}}readSync(e){let t=this.texData.get(e),{values:o,dtype:n,complexTensorInfos:s,slice:a,shape:i,isPacked:l}=t;if(a!=null){let m;l?m=new Bs(i,sh):m=new uo(i,sh);let f=this.runWebGLProgram(m,[{dataId:e,shape:i,dtype:n}],n),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(o!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return o;let u=this.activeTimers!=null,c;u&&(c=y.now());let p;if(n==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=N.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(e);return u&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let d=this.pendingRead.get(e);return new Promise(h=>d.push(h))}let t=this.texData.get(e),{values:o,shape:n,slice:s,dtype:a,complexTensorInfos:i,isPacked:l}=t;if(s!=null){let d;l?d=new Bs(n,sh):d=new uo(n,sh);let h=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:a}],a),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(o!=null)return this.convertAndCacheOnCPU(e);if(!G().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&G().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let u=null,c;if(a!=="complex64"&&G().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let d=this.texData.get(c.dataId);u=this.gpgpu.createBufferFromTexture(d.texture,...Il(n))}this.pendingRead.set(e,[]),a!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(a==="complex64"){let d=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),h=d[0],g=d[1];p=N.mergeRealAndImagArrays(h,g)}else if(u==null)p=this.getValuesFromTexture(e);else{let d=y.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(u,d)}c!=null&&this.disposeIntermediateTensorInfo(c);let m=this.convertAndCacheOnCPU(e,p),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach(d=>d(m)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),m}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>y.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ce(e.shape,e.dtype,o)}checkNumericalProblems(e){if(e!=null)for(let t=0;tl.query)).filter(l=>l!=null),a=y.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=t,n&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);i.kernelMs=y.sum(l),i.getExtraProfileInfo=()=>l.map((u,c)=>({name:a[c],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(e){return G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=y.now(),e)}async getQueryTime(e){if(G().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;if(this.texData.get(e).complexParentRefCount>0){this.texData.get(e).refCount--;return}this.releaseGPUData(e);let{complexTensorInfos:t}=this.texData.get(e);t!=null&&(this.texData.get(t.real.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.real),this.texData.get(t.imag.dataId).complexParentRefCount--,this.disposeIntermediateTensorInfo(t.imag)),this.texData.delete(e)}releaseGPUData(e){let{texture:t,dtype:o,texShape:n,usage:s,isPacked:a,slice:i}=this.texData.get(e),l=i&&i.origDataId||e,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,o),this.textureManager.releaseTexture(t,n,s,a)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return G().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=vs().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=TY){let o=this.getCPUBackend();return!G().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&o==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),o!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(o[0])){let s=o.map(a=>y.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,o){let{dataId:n}=this.makeTensorInfo(e,t,o);return vs().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){let t=new Nv(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new vv(e.shape),o=!0;return this.runWebGLProgram(t,[e],e.dtype,null,o)}packedReshape(e,t){let o=[Nl(e.shape),...Sl(e.shape)],n={dtype:e.dtype,shape:o,dataId:e.dataId},s=[Nl(t),...Sl(t)],a=new nh(s,o),i=!0,l=this.runWebGLProgram(a,[n],e.dtype,null,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e){let t=this.texData.get(e),{isPacked:o,shape:n,dtype:s}=t,a=Ax(n),i;o?i=new pv(a):i=new cv(a);let l=!0,u=this.runWebGLProgram(i,[{shape:a,dtype:s,dataId:e}],s,null,l);return{dtype:s,shape:n,dataId:u.dataId}}runWebGLProgram(e,t,o,n,s=!1){let a=this.makeTensorInfo(e.outputShape,o),i=this.texData.get(a.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===Cl.DENSE){let h=Il(e.outputShape);i.texShape=h.map(g=>g*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),y.sizeFromShape(a.shape)===0)return i.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],u=t.map(h=>{if(h.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let g=this.texData.get(h.dataId);if(g.texture==null){if(!e.packedInputs&&y.sizeFromShape(h.shape)<=G().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:h.shape,texData:null,isUniform:!0,uniformValues:g.values};e.packedInputs&&(g.isPacked=!0,g.shape=h.shape)}else if(!!g.isPacked!=!!e.packedInputs)h=g.isPacked?this.unpackTensor(h):this.packTensor(h),l.push(h),g=this.texData.get(h.dataId);else if(g.isPacked&&!ac(g.shape,h.shape)){let x=h,b=h.shape;h.shape=g.shape,h=this.packedReshape(h,b),l.push(h),g=this.texData.get(h.dataId),x.shape=b}return this.uploadToGPU(h.dataId),{shape:h.shape,texData:g,isUniform:!1}});this.uploadToGPU(a.dataId);let c={shape:a.shape,texData:i,isUniform:!1},p=H$(e,u,c),m=this.getAndSaveBinary(p,()=>W$(this.gpgpu,e,u,c)),f=this.activeTimers!=null,d;if(f&&(d=this.startTimer()),j$(this.gpgpu,m,u,c,n),l.forEach(h=>this.disposeIntermediateTensorInfo(h)),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!G().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&s===!1){let h=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),h}return a}compileAndRun(e,t,o,n,s=!1){o=o||t[0].dtype;let a=this.runWebGLProgram(e,t,o,n,s);return vs().makeTensorFromDataId(a.dataId,a.shape,a.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(G().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=V(()=>{if(!G().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=G().getBool("DEBUG");G().set("DEBUG",!1);let t=this.abs(le(1e-8)).dataSync()[0];if(G().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?IY:NY}uploadToGPU(e){let t=this.texData.get(e),{shape:o,dtype:n,values:s,texture:a,usage:i,isPacked:l}=t;if(a!=null)return;let u=this.activeTimers!=null,c;u&&(c=y.now());let p=t.texShape;if(p==null&&(p=g$(o,l),t.texShape=p),s!=null){let m=Ax(o),f,d=p[1],h=p[0],g=s instanceof Uint8Array;l?([d,h]=Xi(p[0],p[1]),f=new hv(m,[h,d],g)):f=new dv(m,[h,d],g);let x=this.makeTensorInfo([h,d],n);g?this.texData.get(x.dataId).usage=Er.PIXELS:this.texData.get(x.dataId).usage=Er.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),d,h,s);let b=!0,_=this.runWebGLProgram(f,[x],n,null,b),w=this.texData.get(_.dataId);t.texture=w.texture,t.texShape=w.texShape,t.isPacked=w.isPacked,t.usage=w.usage,this.disposeIntermediateTensorInfo(x),this.texData.delete(_.dataId),t.values=null,u&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,i,n,l);t.texture=m}}convertAndCacheOnCPU(e,t){let o=this.texData.get(e),{dtype:n}=o;return this.releaseGPUData(e),t!=null&&(o.values=DY(t,n)),o.values}acquireTexture(e,t,o,n){if(this.numBytesInGPU+=this.computeBytes(e,o),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*y.bytesPerElement(t)}};function DY(r,e){if(e==="float32"||e==="complex64")return r;if(e==="int32"||e==="bool"){let t=e==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let o=0;onew Sv,2);var Px=` + `}};var TY=Sr.whereImpl,EY=1e-7,AY=1e-4,Vx={};function DY(r){return r in Vx||(Vx[r]={}),Vx[r]}var $Y=128,RY=600;function FY(){return U().global.screen==null?1024:U().global.screen.height*U().global.screen.width*window.devicePixelRatio*RY/1024/1024}var Kp=class extends js{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!U().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){let t=Bo(U().getNumber("WEBGL_VERSION"));this.binaryCache=DY(U().getNumber("WEBGL_VERSION")),this.gpgpu=new Iv(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new Tv(this.gpgpu),this.numMBBeforeWarning=FY(),this.texData=new Ya(this,Fo())}nextDataId(){return Kp.nextDataId++}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,o){if((U().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||U().getBool("DEBUG"))&&this.checkNumericalProblems(e),o==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let n={id:this.nextDataId()};return this.texData.set(n,{shape:t,dtype:o,values:e,usage:Er.UPLOAD,refCount:1}),n}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,o,n,s){if(U().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:o,dtype:n,values:t,usage:Er.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:o,dtype:n,complexTensorInfos:s,slice:a,shape:i,isPacked:l}=t;if(a!=null){let m;l?m=new Gs(i,lh):m=new uo(i,lh);let f=this.runWebGLProgram(m,[{dataId:e,shape:i,dtype:n}],n),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(o!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return o;let u=this.activeTimers!=null,c;u&&(c=y.now());let p;if(n==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=N.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(e);return u&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let d=this.pendingRead.get(e);return new Promise(h=>d.push(h))}let t=this.texData.get(e),{values:o,shape:n,slice:s,dtype:a,complexTensorInfos:i,isPacked:l}=t;if(s!=null){let d;l?d=new Gs(n,lh):d=new uo(n,lh);let h=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:a}],a),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(o!=null)return this.convertAndCacheOnCPU(e);if(!U().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&U().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let u=null,c;if(a!=="complex64"&&U().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);let d=this.texData.get(c.dataId);u=this.gpgpu.createBufferFromTexture(d.texture,...Il(n))}this.pendingRead.set(e,[]),a!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(a==="complex64"){let d=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),h=d[0],g=d[1];p=N.mergeRealAndImagArrays(h,g)}else if(u==null)p=this.getValuesFromTexture(e);else{let d=y.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(u,d)}c!=null&&this.disposeIntermediateTensorInfo(c);let m=this.convertAndCacheOnCPU(e,p),f=this.pendingRead.get(e);return this.pendingRead.delete(e),f.forEach(d=>d(m)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Fo().removeDataId(e,this),this.pendingDeletes--),m}bufferSync(e){let t=this.readSync(e.dataId),o=t;if(e.dtype==="string")try{o=t.map(n=>y.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Ce(e.shape,e.dtype,o)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}async time(e){let t=this.activeTimers,o=[],n=!1;this.programTimersStack==null?(this.programTimersStack=o,n=!0):this.activeTimers.push(o),this.activeTimers=o,e();let s=y.flatten(this.activeTimers.map(l=>l.query)).filter(l=>l!=null),a=y.flatten(this.activeTimers.map(l=>l.name)).filter(l=>l!=null);this.activeTimers=t,n&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let l=await Promise.all(s);i.kernelMs=y.sum(l),i.getExtraProfileInfo=()=>l.map((u,c)=>({name:a[c],ms:u})).map(u=>`${u.name}: ${u.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(e){return U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=y.now(),e)}async getQueryTime(e){if(U().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:o}=this.texData.get(e);return o!=null&&(this.disposeData(o.real.dataId,t),this.disposeData(o.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:o,texShape:n,usage:s,isPacked:a,slice:i}=this.texData.get(e),l=i&&i.origDataId||e,u=this.dataRefCount.get(l);u>1?this.dataRefCount.set(l,u-1):(this.dataRefCount.delete(l),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,o),this.textureManager.releaseTexture(t,n,s,a)));let c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return U().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Fo().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=$Y){let o=this.getCPUBackend();return!U().getBool("IS_TEST")&&!this.warnedAboutCPUBackend&&o==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),o!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(o[0])){let s=o.map(a=>y.encodeString(a));n=this.write(s,e,t)}else n=this.write(o,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,o){let{dataId:n}=this.makeTensorInfo(e,t,o);return Fo().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){let t=new Av(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new Sv(e.shape),o=!0;return this.runWebGLProgram(t,[e],e.dtype,null,o)}packedReshape(e,t){let o=[Nl(e.shape),...Sl(e.shape)],n={dtype:e.dtype,shape:o,dataId:e.dataId},s=[Nl(t),...Sl(t)],a=new ah(s,o),i=!0,l=this.runWebGLProgram(a,[n],e.dtype,null,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e){let t=this.texData.get(e),{isPacked:o,shape:n,dtype:s}=t,a=Px(n),i;o?i=new hv(a):i=new dv(a);let l=!0,u=this.runWebGLProgram(i,[{shape:a,dtype:s,dataId:e}],s,null,l);return{dtype:s,shape:n,dataId:u.dataId}}runWebGLProgram(e,t,o,n,s=!1){let a=this.makeTensorInfo(e.outputShape,o),i=this.texData.get(a.dataId);if(e.packedOutput&&(i.isPacked=!0),e.outPackingScheme===Cl.DENSE){let h=Il(e.outputShape);i.texShape=h.map(g=>g*2)}if(e.outTexUsage!=null&&(i.usage=e.outTexUsage),y.sizeFromShape(a.shape)===0)return i.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],u=t.map(h=>{if(h.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let g=this.texData.get(h.dataId);if(g.texture==null){if(!e.packedInputs&&y.sizeFromShape(h.shape)<=U().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:h.shape,texData:null,isUniform:!0,uniformValues:g.values};e.packedInputs&&(g.isPacked=!0,g.shape=h.shape)}else if(!!g.isPacked!=!!e.packedInputs)h=g.isPacked?this.unpackTensor(h):this.packTensor(h),l.push(h),g=this.texData.get(h.dataId);else if(g.isPacked&&!lc(g.shape,h.shape)){let x=h,b=h.shape;h.shape=g.shape,h=this.packedReshape(h,b),l.push(h),g=this.texData.get(h.dataId),x.shape=b}return this.uploadToGPU(h.dataId),{shape:h.shape,texData:g,isUniform:!1}});this.uploadToGPU(a.dataId);let c={shape:a.shape,texData:i,isUniform:!1},p=Y$(e,u,c),m=this.getAndSaveBinary(p,()=>q$(this.gpgpu,e,u,c)),f=this.activeTimers!=null,d;if(f&&(d=this.startTimer()),X$(this.gpgpu,m,u,c,n),l.forEach(h=>this.disposeIntermediateTensorInfo(h)),f&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!U().getBool("WEBGL_LAZILY_UNPACK")&&i.isPacked&&s===!1){let h=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),h}return a}compileAndRun(e,t,o,n,s=!1){return o=o||t[0].dtype,this.runWebGLProgram(e,t,o,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(U().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!U().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=U().getBool("DEBUG");U().set("DEBUG",!1);let t=this.abs(le(1e-8)).dataSync()[0];if(U().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?EY:AY}uploadToGPU(e){let t=this.texData.get(e),{shape:o,dtype:n,values:s,texture:a,usage:i,isPacked:l}=t;if(a!=null)return;let u=this.activeTimers!=null,c;u&&(c=y.now());let p=t.texShape;if(p==null&&(p=_$(o,l),t.texShape=p),s!=null){let m=Px(o),f,d=p[1],h=p[0],g=s instanceof Uint8Array;l?([d,h]=Xi(p[0],p[1]),f=new bv(m,[h,d],g)):f=new yv(m,[h,d],g);let x=this.makeTensorInfo([h,d],n);g?this.texData.get(x.dataId).usage=Er.PIXELS:this.texData.get(x.dataId).usage=Er.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),d,h,s);let b=!0,_=this.runWebGLProgram(f,[x],n,null,b),w=this.texData.get(_.dataId);t.texture=w.texture,t.texShape=w.texShape,t.isPacked=w.isPacked,t.usage=w.usage,this.disposeIntermediateTensorInfo(x),this.texData.delete(_.dataId),t.values=null,u&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,i,n,l);t.texture=m}}convertAndCacheOnCPU(e,t){let o=this.texData.get(e),{dtype:n}=o;return this.releaseGPUData(e),t!=null&&(o.values=OY(t,n)),o.values}acquireTexture(e,t,o,n){if(this.numBytesInGPU+=this.computeBytes(e,o),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*y.bytesPerElement(t)}};Kp.nextDataId=0;function OY(r,e){if(e==="float32"||e==="complex64")return r;if(e==="int32"||e==="bool"){let t=e==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let o=0;onew Kp,2);var Gx=` if (isnan(a)) return a; if (isnan(b)) return b; -`;var Qn=class{constructor(e,t,o){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,o),this.userCode=` +`;var os=class{constructor(e,t,o){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,o),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -969,7 +969,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;var Vs=class{constructor(e,t,o,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,o);let s=this.outputShape.length,a="";if(n)if(s===0||y.sizeFromShape(this.outputShape)===1)a=` +`;var Ws=class{constructor(e,t,o,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,o);let s=this.outputShape.length,a="";if(n)if(s===0||y.sizeFromShape(this.outputShape)===1)a=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1001,21 +1001,21 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function jt(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var $R={kernelName:us,backendName:"webgl",kernelFunc:jt};function co(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.makeTensorInfo(o.shape,"complex64"),a=t.texData.get(s.dataId),i=jt({inputs:{x:o},backend:t}),l=t.texData.get(i.dataId);l.complexParentRefCount++;let u=jt({inputs:{x:n},backend:t}),c=t.texData.get(u.dataId);return c.complexParentRefCount++,a.complexTensorInfos={real:i,imag:u},s}var RR={kernelName:Hl,backendName:"webgl",kernelFunc:co};var Tv="return (a < 0.) ? b * a : a;",Ev=` + `}};function jt(r){let{inputs:e,backend:t}=r,{x:o}=e;return t.incRef(o.dataId),{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}var PR={kernelName:Do,backendName:"webgl",kernelFunc:jt};function co(r){let{inputs:e,backend:t}=r,{real:o,imag:n}=e,s=t.makeTensorInfo(o.shape,"complex64"),a=t.texData.get(s.dataId),i=jt({inputs:{x:o},backend:t}),l=jt({inputs:{x:n},backend:t});return a.complexTensorInfos={real:i,imag:l},s}var MR={kernelName:Hl,backendName:"webgl",kernelFunc:co};var Dv="return (a < 0.) ? b * a : a;",$v=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function $Y(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o,a=t.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),i=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Vs(Ev,n.shape,a.shape):new Qn(Tv,n.shape,a.shape),l=t.runWebGLProgram(i,[n,a],n.dtype);return t.disposeIntermediateTensorInfo(a),l}var FR={kernelName:sn,backendName:"webgl",kernelFunc:$Y};var Av="return (a < 0.) ? b * a : a;",Dv=` +`;function PY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{alpha:s}=o,a=t.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),i=U().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ws($v,n.shape,a.shape):new os(Dv,n.shape,a.shape),l=t.runWebGLProgram(i,[n,a],n.dtype);return t.disposeIntermediateTensorInfo(a),l}var LR={kernelName:cn,backendName:"webgl",kernelFunc:PY};var Rv="return (a < 0.) ? b * a : a;",Fv=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function RY(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Vs(Dv,o.shape,n.shape):new Qn(Av,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)}var OR={kernelName:yn,backendName:"webgl",kernelFunc:RY};var Mx="if (isnan(x)) return x;",PR=` +`;function MY(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=U().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ws(Fv,o.shape,n.shape):new os(Rv,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)}var zR={kernelName:kn,backendName:"webgl",kernelFunc:MY};var Wx="if (isnan(x)) return x;",BR=` if (isnan(a)) return a; if (isnan(b)) return b; -`,MR=` +`,VR=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function ve({opSnippet:r,packedOpSnippet:e,cpuKernelImpl:t,dtype:o}){return({inputs:n,backend:s})=>{let{x:a}=n,i=s,l=o||a.dtype;if(i.shouldExecuteOnCPU([a])&&t!=null){let p=i.texData.get(a.dataId),m=t(p.values,l);return i.makeTensorInfo(a.shape,l,m)}let u=G().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&e!=null,c;return u?c=new Bs(a.shape,e):c=new uo(a.shape,r),i.runWebGLProgram(c,[a],l)}}function it({opSnippet:r,packedOpSnippet:e,checkOutOfBounds:t=!1,supportsComplex:o=!1,cpuKernelImpl:n,dtype:s}){return({inputs:a,backend:i})=>{let{a:l,b:u}=a,c=i;if(o&&l.dtype==="complex64"){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(_=>{let[w,v]=_,$={dataId:w.dataId,dtype:w.dtype,shape:l.shape},A={dataId:v.dataId,dtype:v.dtype,shape:u.shape},R=new Qn(r,l.shape,u.shape);return c.runWebGLProgram(R,[$,A],mr(w.dtype,v.dtype))}),b=co({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||mr(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&n!=null){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,x]=n(l.shape,u.shape,d.values,h.values,p),b=c.makeTensorInfo(x,p),_=c.texData.get(b.dataId);return _.values=g,b}let m=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&e!=null,f;return m?f=new Vs(e,l.shape,u.shape,t):f=new Qn(r,l.shape,u.shape),c.runWebGLProgram(f,[l,u],p)}}function El(r,e=!1){if(r==="linear")return e?SR:vR;if(r==="relu")return e?ER:IR;if(r==="elu")return e?TR:CR;if(r==="relu6")return e?AR:NR;if(r==="prelu")return e?Dv:Av;if(r==="leakyrelu")return e?Ev:Tv;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var ih=class{constructor(e,t,o,n=!1,s=!1,a=!1,i=null,l=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let c=n?e[1]:e[2],p=Math.ceil(c/2),m=n?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";i&&(l?g=`vec4 activation(vec4 a) { +`;function ve({opSnippet:r,packedOpSnippet:e,cpuKernelImpl:t,dtype:o}){return({inputs:n,backend:s})=>{let{x:a}=n,i=s,l=o||a.dtype;if(i.shouldExecuteOnCPU([a])&&t!=null){let p=i.texData.get(a.dataId),m=t(p.values,l);return i.makeTensorInfo(a.shape,l,m)}let u=U().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&e!=null,c;return u?c=new Gs(a.shape,e):c=new uo(a.shape,r),i.runWebGLProgram(c,[a],l)}}function it({opSnippet:r,packedOpSnippet:e,checkOutOfBounds:t=!1,supportsComplex:o=!1,cpuKernelImpl:n,dtype:s}){return({inputs:a,backend:i})=>{let{a:l,b:u}=a,c=i;if(o&&l.dtype==="complex64"){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(_=>{let[w,v]=_,$={dataId:w.dataId,dtype:w.dtype,shape:l.shape},A={dataId:v.dataId,dtype:v.dtype,shape:u.shape},R=new os(r,l.shape,u.shape);return c.runWebGLProgram(R,[$,A],mr(w.dtype,v.dtype))}),b=co({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||mr(l.dtype,u.dtype);if(c.shouldExecuteOnCPU([l,u])&&n!=null){let d=c.texData.get(l.dataId),h=c.texData.get(u.dataId),[g,x]=n(l.shape,u.shape,d.values,h.values,p),b=c.makeTensorInfo(x,p),_=c.texData.get(b.dataId);return _.values=g,b}let m=U().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&e!=null,f;return m?f=new Ws(e,l.shape,u.shape,t):f=new os(r,l.shape,u.shape),c.runWebGLProgram(f,[l,u],p)}}function El(r,e=!1){if(r==="linear")return e?DR:SR;if(r==="relu")return e?RR:ER;if(r==="elu")return e?$R:TR;if(r==="relu6")return e?FR:AR;if(r==="prelu")return e?Fv:Rv;if(r==="leakyrelu")return e?$v:Dv;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var uh=class{constructor(e,t,o,n=!1,s=!1,a=!1,i=null,l=!1,u=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;let c=n?e[1]:e[2],p=Math.ceil(c/2),m=n?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";i&&(l?g=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:u?g=`vec4 activation(vec4 a) { @@ -1054,7 +1054,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};var $v={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},Lx=class{constructor(e,t,o){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,o),this.userCode=` + `}};var Ov={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},Ux=class{constructor(e,t,o){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,o),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1067,7 +1067,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}};var LR="return a * b;";function Rv(r){let{inputs:e,backend:t}=r,{a:o,b:n}=e,s=N.upcastType(o.dtype,n.dtype);if(o.dtype==="complex64"){let i=t.texData.get(o.dataId),l=t.texData.get(n.dataId),u=new Lx($v.REAL,o.shape,n.shape),c=new Lx($v.IMAG,o.shape,n.shape),p=[{dataId:i.complexTensorInfos.real.dataId,dtype:i.complexTensorInfos.real.dtype,shape:o.shape},{dataId:i.complexTensorInfos.imag.dataId,dtype:i.complexTensorInfos.imag.dtype,shape:o.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:n.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:n.shape}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=co({inputs:{real:m,imag:f},backend:t});return t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}if(t.shouldExecuteOnCPU([o,n])){let i=t.texData.get(o.dataId),l=t.texData.get(n.dataId),[u,c]=lR(o.shape,n.shape,i.values,l.values,s),p=t.makeTensorInfo(c,s),m=t.texData.get(p.dataId);return m.values=u,p}let a;return G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?a=new Vs(LR,o.shape,n.shape):a=new Qn(LR,o.shape,n.shape),t.runWebGLProgram(a,[o,n],s)}var zR={kernelName:dn,backendName:"webgl",kernelFunc:Rv};function BR(r,e,t){let o=[Nl(r.shape),...Sl(r.shape)],n={dtype:r.dtype,shape:o,dataId:r.dataId},s=[Nl(e),...Sl(e)],a=new nh(s,o),i=!0,l=t.runWebGLProgram(a,[n],r.dtype,null,i);return{dataId:l.dataId,shape:e,dtype:l.dtype}}function ce(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=t,i=y.sizeFromShape(n.shape),l=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(l);y.assert(i===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${n.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`);let c=a.texData.get(n.dataId);return c.isPacked&&!ac(n.shape,l)&&!(c.texture!==null&&ac(c.shape,l))?BR(n,l,a):(a.incRef(n.dataId),{dataId:n.dataId,shape:l,dtype:n.dtype})}var VR={kernelName:fs,backendName:"webgl",kernelFunc:ce};var zx=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i=Math.floor(o/4)*4,l=o%4,u="sumValue += dot(values, ones);";if(t!=null){let p=1/t;u=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%o>0&&(c=` + `}};var GR="return a * b;";function Pv(r){let{inputs:e,backend:t}=r,{a:o,b:n}=e,s=N.upcastType(o.dtype,n.dtype);if(o.dtype==="complex64"){let i=t.texData.get(o.dataId),l=t.texData.get(n.dataId),u=new Ux(Ov.REAL,o.shape,n.shape),c=new Ux(Ov.IMAG,o.shape,n.shape),p=[{dataId:i.complexTensorInfos.real.dataId,dtype:i.complexTensorInfos.real.dtype,shape:o.shape},{dataId:i.complexTensorInfos.imag.dataId,dtype:i.complexTensorInfos.imag.dtype,shape:o.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:n.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:n.shape}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=co({inputs:{real:m,imag:f},backend:t});return t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}if(t.shouldExecuteOnCPU([o,n])){let i=t.texData.get(o.dataId),l=t.texData.get(n.dataId),[u,c]=mR(o.shape,n.shape,i.values,l.values,s),p=t.makeTensorInfo(c,s),m=t.texData.get(p.dataId);return m.values=u,p}let a;return U().getBool("WEBGL_PACK_BINARY_OPERATIONS")?a=new Ws(GR,o.shape,n.shape):a=new os(GR,o.shape,n.shape),t.runWebGLProgram(a,[o,n],s)}var WR={kernelName:yn,backendName:"webgl",kernelFunc:Pv};function UR(r,e,t){let o=[Nl(r.shape),...Sl(r.shape)],n={dtype:r.dtype,shape:o,dataId:r.dataId},s=[Nl(e),...Sl(e)],a=new ah(s,o),i=!0,l=t.runWebGLProgram(a,[n],r.dtype,null,i);return{dataId:l.dataId,shape:e,dtype:l.dtype}}function ce(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{shape:s}=o,a=t,i=y.sizeFromShape(n.shape),l=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(l);y.assert(i===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${n.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`);let c=a.texData.get(n.dataId);return c.isPacked&&!lc(n.shape,l)&&!(c.texture!==null&&lc(c.shape,l))?UR(n,l,a):(a.incRef(n.dataId),{dataId:n.dataId,shape:l,dtype:n.dtype})}var jR={kernelName:gs,backendName:"webgl",kernelFunc:ce};var jx=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i=Math.floor(o/4)*4,l=o%4,u="sumValue += dot(values, ones);";if(t!=null){let p=1/t;u=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%o>0&&(c=` if (inIdx < 0 || inIdx >= ${s}) { return 0.0; } @@ -1120,7 +1120,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}};var Fv=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i="0.0",l="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",l="min"):t==="max"&&(i="-1.0 / 1e-20",l="max");let u=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?u="sumValue":t==="prod"?u="prodValue":t==="all"?u="allValue":t==="any"&&(u="anyValue");let c=Math.floor(o/4)*4,p=o%4,m=` + `}};var Mv=class{constructor(e,t){this.variableNames=["x"];let{windowSize:o,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let i="0.0",l="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",l="min"):t==="max"&&(i="-1.0 / 1e-20",l="max");let u=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?u="sumValue":t==="prod"?u="prodValue":t==="all"?u="allValue":t==="any"&&(u="anyValue");let c=Math.floor(o/4)*4,p=o%4,m=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1205,12 +1205,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${u}); } - `}};function FY(r){let e=[];for(;e.length===0||e[e.length-1].outSize!==1;){let t=e.length?e[e.length-1].outSize:r[1],o=N.computeOptimalWindowSize(t);e.push({inSize:t,windowSize:o,outSize:Math.ceil(t/o)})}return e}function Io(r,e,t,o){let n=FY(r.shape),s=r;for(let a=0;a6)throw Error(`Transpose for rank ${e} is not yet supported`);let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],o=new Array(e);for(let n=0;n6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=Le(this.rank),s=kv("rc",this.rank),a=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${e} is not yet supported`);let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],o=new Array(e);for(let n=0;n6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let n=Le(this.rank),s=Nv("rc",this.rank),a=new Array(this.rank);for(let c=0;c=2&&c>=2&&_,()=>`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 (${h}) and (${g}).`);let v=(x>b?r.shape.slice(0,-2):e.shape.slice(0,-2)).concat([f,d]);y.assert(p===m,()=>`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${e.shape} and transposeA=${t} and transposeB=${o} must match.`);let $=t?[x,p,f]:[x,f,p],A=o?[b,d,m]:[b,m,d],R=ce({inputs:{x:r},backend:n,attrs:{shape:$}}),M=ce({inputs:{x:e},backend:n,attrs:{shape:A}}),z=[R,M],W=Math.max(x,b),U=t?R.shape[1]:R.shape[2],q=s!=null,Z=a!=null,X=l==="leakyrelu",Y=l!=null?El(l,!0):null,te=q||Z||X||Y!=null,K;if((f===1||d===1)&&U>Mv&&te===!1){let ie=R,se=M;t&&(ie=Lt({inputs:{x:R},backend:n,attrs:{perm:[0,2,1]}}),z.push(ie)),o&&(se=Lt({inputs:{x:M},backend:n,attrs:{perm:[0,2,1]}}),z.push(se));let pe=d!==1,ae=d===1,xe=ie;pe&&(xe=ce({inputs:{x:ie},backend:n,attrs:{shape:[W,U,1]}}),z.push(xe));let ge=d===1?2:1,_e=se;ae&&(_e=ce({inputs:{x:se},backend:n,attrs:{shape:[W,1,U]}}),z.push(_e));let ke=Rv({inputs:{a:xe,b:_e},backend:n});K=ah({inputs:{x:ke},backend:n,attrs:{axis:ge,keepDims:!0}}),z.push(ke)}else{let ie=mr(r.dtype,e.dtype),se=new ih($,A,[W,f,d],t,o,q,Y,Z,X),pe=[R,M];if(s!=null&&pe.push(s),Z&&pe.push(a),X){let ae=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));pe.push(ae),z.push(ae)}K=n.runWebGLProgram(se,pe,ie)}let re=ce({inputs:{x:K},backend:n,attrs:{shape:v}});z.push(K);for(let ie of z)n.disposeIntermediateTensorInfo(ie);return re}function PY(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o;return uc({a:n,b:s,transposeA:l,transposeB:u,backend:t,bias:a,preluActivationWeights:i,leakyreluAlpha:p,activation:c})}var jR={kernelName:bs,backendName:"webgl",kernelFunc:PY};var HR="return abs(x);";function MY(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])&&o.dtype!=="complex64"){let s=t.texData.get(o.dataId),a=Fx(s.values);return t.makeTensorInfo(o.shape,o.dtype,a)}let n;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Bs(o.shape,HR):n=new uo(o.shape,HR),t.runWebGLProgram(n,[o],o.dtype)}var qR={kernelName:ss,backendName:"webgl",kernelFunc:MY};var LY=gr+` + `}};function Al(r,e,t){let o=U().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new zv(r.shape,e):new Lv(r.shape,e);return t.runWebGLProgram(o,[r],r.dtype)}function HR(r,e,t,o){let n=e,s=r.shape.length,a=y.parseAxisParam(n,r.shape),i=a,l=N.getAxesPermutation(i,s),u=l!=null,c=r;u&&(c=Al(r,l,o),i=N.getInnerMostAxes(i.length,s)),N.assertAxesAreInnerMostDims("sum",i,s);let[p,m]=N.computeOutAndReduceShapes(c.shape,i),f=p;t&&(f=N.expandShapeToKeepDim(p,a));let d=y.sizeFromShape(m),g=y.sizeFromShape(r.shape)/d,x=ce({inputs:{x:c},attrs:{shape:[g,d]},backend:o}),b=gu(r.dtype),_=Io(x,b,"sum",o),w=ce({inputs:{x:_},attrs:{shape:f},backend:o});return o.disposeIntermediateTensorInfo(x),o.disposeIntermediateTensorInfo(_),u&&o.disposeIntermediateTensorInfo(c),w}function ch(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o;return HR(n,s,a,t)}var qR={kernelName:$n,backendName:"webgl",kernelFunc:ch};function Lt(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{perm:s}=o,a=t,i=n.shape.length,l=new Array(i);for(let c=0;c=2&&c>=2&&_,()=>`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 (${h}) and (${g}).`);let v=(x>b?r.shape.slice(0,-2):e.shape.slice(0,-2)).concat([f,d]);y.assert(p===m,()=>`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${e.shape} and transposeA=${t} and transposeB=${o} must match.`);let $=t?[x,p,f]:[x,f,p],A=o?[b,d,m]:[b,m,d],R=ce({inputs:{x:r},backend:n,attrs:{shape:$}}),M=ce({inputs:{x:e},backend:n,attrs:{shape:A}}),V=[R,M],G=Math.max(x,b),W=t?R.shape[1]:R.shape[2],q=s!=null,Z=a!=null,X=l==="leakyrelu",Y=l!=null?El(l,!0):null,te=q||Z||X||Y!=null,K;if((f===1||d===1)&&W>Bv&&te===!1){let ie=R,se=M;t&&(ie=Lt({inputs:{x:R},backend:n,attrs:{perm:[0,2,1]}}),V.push(ie)),o&&(se=Lt({inputs:{x:M},backend:n,attrs:{perm:[0,2,1]}}),V.push(se));let pe=d!==1,ae=d===1,xe=ie;pe&&(xe=ce({inputs:{x:ie},backend:n,attrs:{shape:[G,W,1]}}),V.push(xe));let ge=d===1?2:1,_e=se;ae&&(_e=ce({inputs:{x:se},backend:n,attrs:{shape:[G,1,W]}}),V.push(_e));let ke=Pv({inputs:{a:xe,b:_e},backend:n});K=ch({inputs:{x:ke},backend:n,attrs:{axis:ge,keepDims:!0}}),V.push(ke)}else{let ie=mr(r.dtype,e.dtype),se=new uh($,A,[G,f,d],t,o,q,Y,Z,X),pe=[R,M];if(s!=null&&pe.push(s),Z&&pe.push(a),X){let ae=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));pe.push(ae),V.push(ae)}K=n.runWebGLProgram(se,pe,ie)}let re=ce({inputs:{x:K},backend:n,attrs:{shape:v}});V.push(K);for(let ie of V)n.disposeIntermediateTensorInfo(ie);return re}function BY(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e,{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o;return cc({a:n,b:s,transposeA:l,transposeB:u,backend:t,bias:a,preluActivationWeights:i,leakyreluAlpha:p,activation:c})}var XR={kernelName:ks,backendName:"webgl",kernelFunc:BY};var YR="return abs(x);";function VY(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])&&o.dtype!=="complex64"){let s=t.texData.get(o.dataId),a=Bx(s.values);return t.makeTensorInfo(o.shape,o.dtype,a)}let n;return U().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Gs(o.shape,YR):n=new uo(o.shape,YR),t.runWebGLProgram(n,[o],o.dtype)}var ZR={kernelName:us,backendName:"webgl",kernelFunc:VY};var GY=gr+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,zY=ve({opSnippet:LY}),KR={kernelName:qs,backendName:"webgl",kernelFunc:zY};var BY=gr+` +`,WY=ve({opSnippet:GY}),JR={kernelName:Ks,backendName:"webgl",kernelFunc:WY};var UY=gr+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,VY=ve({opSnippet:BY}),XR={kernelName:Ks,backendName:"webgl",kernelFunc:VY};var YR="return a + b;",GY=it({opSnippet:YR,packedOpSnippet:YR,supportsComplex:!0,cpuKernelImpl:q$}),ZR={kernelName:xo,backendName:"webgl",kernelFunc:GY};var Lv=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`float v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,jY=ve({opSnippet:UY}),QR={kernelName:Xs,backendName:"webgl",kernelFunc:jY};var eF="return a + b;",HY=it({opSnippet:eF,packedOpSnippet:eF,supportsComplex:!0,cpuKernelImpl:Z$}),tF={kernelName:xo,backendName:"webgl",kernelFunc:HY};var Vv=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`float v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${o.join(` `)} @@ -1242,7 +1242,7 @@ return log(x + sqrt(x * x - 1.0));`,VY=ve({opSnippet:BY}),XR={kernelName:Ks,back float result = ${n}; setOutput(result); } - `}};var zv=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`vec4 v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` + `}};var Gv=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((s,a)=>`T${a}`);let o=[];this.variableNames.forEach(s=>{o.push(`vec4 v${s} = get${s}AtOutCoords();`)});let n=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${o.join(` `)} @@ -1250,7 +1250,7 @@ return log(x + sqrt(x * x - 1.0));`,VY=ve({opSnippet:BY}),XR={kernelName:Ks,back vec4 result = ${n}; setOutput(result); } - `}};function Bx(r){let{inputs:e,backend:t}=r,o=e;if(o.length===1)return jt({inputs:{x:o[0]},backend:t});if(o.length>G().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let l=Math.floor(o.length/2),u=Bx({inputs:o.slice(0,l),backend:t}),c=Bx({inputs:o.slice(l),backend:t});return Bx({inputs:[u,c],backend:t})}let n=o.map(l=>l.dtype).reduce((l,u)=>mr(l,u)),s=o.map(l=>l.shape),i=G().getBool("WEBGL_PACK")?new zv(o[0].shape,s):new Lv(o[0].shape,s);return t.runWebGLProgram(i,o,n)}var JR={kernelName:Uo,backendName:"webgl",kernelFunc:Bx};function WY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=N.getInnerMostAxes(u.length,i)),N.assertAxesAreInnerMostDims("all",u,i);let[m,f]=N.computeOutAndReduceShapes(p.shape,u),d=y.sizeFromShape(f),h=ce({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=Io(h,h.dtype,"all",t),x;if(a){let b=N.expandShapeToKeepDim(m,l);x=ce({inputs:{x:g},backend:t,attrs:{shape:b}})}else x=ce({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),x}var QR={kernelName:Vl,backendName:"webgl",kernelFunc:WY};function UY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=N.getInnerMostAxes(u.length,i)),N.assertAxesAreInnerMostDims("any",u,i);let[m,f]=N.computeOutAndReduceShapes(p.shape,u),d=y.sizeFromShape(f),h=ce({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=Io(h,h.dtype,"any",t),x;if(a){let b=N.expandShapeToKeepDim(m,l);x=ce({inputs:{x:g},backend:t,attrs:{shape:b}})}else x=ce({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),x}var eF={kernelName:Gl,backendName:"webgl",kernelFunc:UY};var Bv=class{constructor(e,t,o){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;o||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a];let i=t==="max"?">":"<",l=o?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Hx(r){let{inputs:e,backend:t}=r,o=e;if(o.length===1)return jt({inputs:{x:o[0]},backend:t});if(o.length>U().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let l=Math.floor(o.length/2),u=Hx({inputs:o.slice(0,l),backend:t}),c=Hx({inputs:o.slice(l),backend:t});return Hx({inputs:[u,c],backend:t})}let n=o.map(l=>l.dtype).reduce((l,u)=>mr(l,u)),s=o.map(l=>l.shape),i=U().getBool("WEBGL_PACK")?new Gv(o[0].shape,s):new Vv(o[0].shape,s);return t.runWebGLProgram(i,o,n)}var rF={kernelName:qo,backendName:"webgl",kernelFunc:Hx};function qY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=N.getInnerMostAxes(u.length,i)),N.assertAxesAreInnerMostDims("all",u,i);let[m,f]=N.computeOutAndReduceShapes(p.shape,u),d=y.sizeFromShape(f),h=ce({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=Io(h,h.dtype,"all",t),x;if(a){let b=N.expandShapeToKeepDim(m,l);x=ce({inputs:{x:g},backend:t,attrs:{shape:b}})}else x=ce({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),x}var oF={kernelName:Vl,backendName:"webgl",kernelFunc:qY};function KY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),u=N.getInnerMostAxes(u.length,i)),N.assertAxesAreInnerMostDims("any",u,i);let[m,f]=N.computeOutAndReduceShapes(p.shape,u),d=y.sizeFromShape(f),h=ce({inputs:{x:p},backend:t,attrs:{shape:[-1,d]}}),g=Io(h,h.dtype,"any",t),x;if(a){let b=N.expandShapeToKeepDim(m,l);x=ce({inputs:{x:g},backend:t,attrs:{shape:b}})}else x=ce({inputs:{x:g},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(h),t.disposeIntermediateTensorInfo(g),c!=null&&t.disposeIntermediateTensorInfo(p),x}var nF={kernelName:Gl,backendName:"webgl",kernelFunc:KY};var Wv=class{constructor(e,t,o){this.variableNames=["A"];let{windowSize:n,batchSize:s,outSize:a}=e;o||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a];let i=t==="max"?">":"<",l=o?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1270,7 +1270,7 @@ return log(x + sqrt(x * x - 1.0));`,VY=ve({opSnippet:BY}),XR={kernelName:Ks,back } setOutput(float(bestIndex)); } - `}};var Vv=class{constructor(e,t,o,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(e.length>2,()=>`Packed arg${o.charAt(0).toUpperCase()+o.slice(1)} supports only inputs with rank above 2.`);let s=e[e.length-1],a=Math.ceil(s/t);this.outputShape=e.slice(0,-1),a>1&&this.outputShape.push(a),n||this.variableNames.push("bestIndicesA");let i=this.outputShape,l=i.length,u=Le(l),c=Ut("coords",l),p,m;if(a===1){m=l+1;let R=Le(m);p=` + `}};var Uv=class{constructor(e,t,o,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(e.length>2,()=>`Packed arg${o.charAt(0).toUpperCase()+o.slice(1)} supports only inputs with rank above 2.`);let s=e[e.length-1],a=Math.ceil(s/t);this.outputShape=e.slice(0,-1),a>1&&this.outputShape.push(a),n||this.variableNames.push("bestIndicesA");let i=this.outputShape,l=i.length,u=Le(l),c=Ut("coords",l),p,m;if(a===1){m=l+1;let R=Le(m);p=` ${R} sourceLocR = ${R}(${c.join()}, 0); ++${c[l-1]}; ${R} sourceLocG = ${R}(${c.join()}, 0); @@ -1332,23 +1332,23 @@ return log(x + sqrt(x * x - 1.0));`,VY=ve({opSnippet:BY}),XR={kernelName:Ks,back } setOutput(bestIndex); } - `}};function tF(r,e,t,o=null){let n=e.shape[0],s=e.shape[1];o!=null&&(n=o.shape[0],s=o.shape[1]);let a=N.computeOptimalWindowSize(s),i={windowSize:a,inSize:s,batchSize:n,outSize:Math.ceil(s/a)},l=new Bv(i,t,o==null),u=[e];o!=null&&u.push(o);let c=r.runWebGLProgram(l,u,"int32");if(c.shape[1]===1)return c;let p=tF(r,e,t,c);return r.disposeIntermediateTensorInfo(c),p}function rF(r,e,t,o=null){let n=o!=null?o.shape:e.shape,s=n[n.length-1],a=N.computeOptimalWindowSize(s),i=new Vv(n,a,t,o==null),l=o==null?[e]:[e,o],u=r.runWebGLProgram(i,l,"int32");if(u.shape.length===e.shape.length){let c=rF(r,e,t,u);return r.disposeIntermediateTensorInfo(u),c}return u}function Vx(r,e,t,o){let n=[t];if(N.assertAxesAreInnerMostDims("arg"+o.charAt(0).toUpperCase()+o.slice(1),n,e.shape.length),!G().getBool("WEBGL_PACK_REDUCE")||e.shape.length<=2){let s=[],[a,i]=N.computeOutAndReduceShapes(e.shape,n),l=y.sizeFromShape(i),u=ce({inputs:{x:e},backend:r,attrs:{shape:[-1,l]}});s.push(u);let c=tF(r,u,o);s.push(c);let p=ce({inputs:{x:c},backend:r,attrs:{shape:a}});return s.forEach(m=>r.disposeIntermediateTensorInfo(m)),p}return rF(r,e,o)}function jY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=y.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Lt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[a[0]],l.shape.length);let c=Vx(t,l,a[0],"max");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var oF={kernelName:jo,backendName:"webgl",kernelFunc:jY};function HY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=y.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Lt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[a[0]],l.shape.length);let c=Vx(t,l,a[0],"min");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var nF={kernelName:oa,backendName:"webgl",kernelFunc:HY};var qY=gr+` + `}};function sF(r,e,t,o=null){let n=e.shape[0],s=e.shape[1];o!=null&&(n=o.shape[0],s=o.shape[1]);let a=N.computeOptimalWindowSize(s),i={windowSize:a,inSize:s,batchSize:n,outSize:Math.ceil(s/a)},l=new Wv(i,t,o==null),u=[e];o!=null&&u.push(o);let c=r.runWebGLProgram(l,u,"int32");if(c.shape[1]===1)return c;let p=sF(r,e,t,c);return r.disposeIntermediateTensorInfo(c),p}function iF(r,e,t,o=null){let n=o!=null?o.shape:e.shape,s=n[n.length-1],a=N.computeOptimalWindowSize(s),i=new Uv(n,a,t,o==null),l=o==null?[e]:[e,o],u=r.runWebGLProgram(i,l,"int32");if(u.shape.length===e.shape.length){let c=iF(r,e,t,u);return r.disposeIntermediateTensorInfo(u),c}return u}function qx(r,e,t,o){let n=[t];if(N.assertAxesAreInnerMostDims("arg"+o.charAt(0).toUpperCase()+o.slice(1),n,e.shape.length),!U().getBool("WEBGL_PACK_REDUCE")||e.shape.length<=2){let s=[],[a,i]=N.computeOutAndReduceShapes(e.shape,n),l=y.sizeFromShape(i),u=ce({inputs:{x:e},backend:r,attrs:{shape:[-1,l]}});s.push(u);let c=sF(r,u,o);s.push(c);let p=ce({inputs:{x:c},backend:r,attrs:{shape:a}});return s.forEach(m=>r.disposeIntermediateTensorInfo(m)),p}return iF(r,e,o)}function XY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=y.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Lt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[a[0]],l.shape.length);let c=qx(t,l,a[0],"max");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var aF={kernelName:Ko,backendName:"webgl",kernelFunc:XY};function YY(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s}=o,a=y.parseAxisParam(s,n.shape),i=N.getAxesPermutation(a,n.shape.length),l=n,u=[];i!=null&&(l=Lt({inputs:{x:n},backend:t,attrs:{perm:i}}),u.push(l),a=N.getInnerMostAxes(a.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[a[0]],l.shape.length);let c=qx(t,l,a[0],"min");return u.forEach(p=>t.disposeIntermediateTensorInfo(p)),c}var lF={kernelName:oa,backendName:"webgl",kernelFunc:YY};var ZY=gr+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,KY=ve({opSnippet:qY}),sF={kernelName:Xs,backendName:"webgl",kernelFunc:KY};var XY=gr+"return log(x + sqrt(x * x + 1.0));",YY=ve({opSnippet:XY}),iF={kernelName:Ys,backendName:"webgl",kernelFunc:YY};var ZY=gr+` +`,JY=ve({opSnippet:ZY}),uF={kernelName:Ys,backendName:"webgl",kernelFunc:JY};var QY=gr+"return log(x + sqrt(x * x + 1.0));",e7=ve({opSnippet:QY}),cF={kernelName:Zs,backendName:"webgl",kernelFunc:e7};var t7=gr+` return atan(x); -`,JY=ve({opSnippet:ZY}),aF={kernelName:Zs,backendName:"webgl",kernelFunc:JY};var QY=PR+` +`,r7=ve({opSnippet:t7}),pF={kernelName:Js,backendName:"webgl",kernelFunc:r7};var o7=BR+` return atan(a, b); -`,e7=` +`,n7=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+MR+` + `+VR+` return result; -`,t7=it({opSnippet:QY,packedOpSnippet:e7}),lF={kernelName:Qs,backendName:"webgl",kernelFunc:t7};var r7=gr+` +`,s7=it({opSnippet:o7,packedOpSnippet:n7}),mF={kernelName:ei,backendName:"webgl",kernelFunc:s7};var i7=gr+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelName:Js,backendName:"webgl",kernelFunc:o7};var Zi=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;let h=t==="avg",g=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,x=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),o){let R=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,a7=ve({opSnippet:i7}),fF={kernelName:Qs,backendName:"webgl",kernelFunc:a7};var Zi=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.top,d=e.padInfo.left;this.outputShape=e.outShape;let h=t==="avg",g=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,x=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),o){let R=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${l}); const ivec2 pads = ivec2(${f}, ${d}); @@ -1489,7 +1489,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(${w}); } - `}},cc=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideDepth,l=e.strideHeight,u=e.strideWidth,c=e.dilationDepth,p=e.dilationHeight,m=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,h=e.effectiveFilterWidth,g=e.padInfo.front,x=e.padInfo.top,b=e.padInfo.left;this.outputShape=e.outShape;let _=t==="avg",w="0.0";if(_||(w="-1.0 / 1e-20"),o){let z=">=";this.userCode=` + `}},pc=class{constructor(e,t,o,n=!1,s=!1){if(this.variableNames=["x"],t==="avg"&&o)throw new Error("Cannot compute positions for average pool.");let a=e.filterWidth,i=e.strideDepth,l=e.strideHeight,u=e.strideWidth,c=e.dilationDepth,p=e.dilationHeight,m=e.dilationWidth,f=e.effectiveFilterDepth,d=e.effectiveFilterHeight,h=e.effectiveFilterWidth,g=e.padInfo.front,x=e.padInfo.top,b=e.padInfo.left;this.outputShape=e.outShape;let _=t==="avg",w="0.0";if(_||(w="-1.0 / 1e-20"),o){let V=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${l}, ${u}); const ivec3 pads = ivec3(${g}, ${x}, ${b}); @@ -1540,7 +1540,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${z} currMinMaxValue) { + if (value ${V} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${n?s?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${h} + @@ -1652,7 +1652,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam setOutput(${$}); } } - `}};function n7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;Yi(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return jt({inputs:{x:n},backend:t});let p=new Zi(c,"avg",!1);return t.runWebGLProgram(p,[n],"float32")}var cF={kernelName:Ho,backendName:"webgl",kernelFunc:n7};function s7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o,c=[1,1,1],p=N.computePool3DInfo(n.shape,s,a,c,i,l,u),m=new cc(p,"avg",!1);return t.runWebGLProgram(m,[n],"float32")}var pF={kernelName:na,backendName:"webgl",kernelFunc:s7};var Gv=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=l-1-e.padInfo.top,p=u-1-e.padInfo.left,m=1/(t*o);this.userCode=` + `}};function l7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;Yi(n,"avgPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return jt({inputs:{x:n},backend:t});let p=new Zi(c,"avg",!1);return t.runWebGLProgram(p,[n],"float32")}var dF={kernelName:Xo,backendName:"webgl",kernelFunc:l7};function u7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dimRoundingMode:l,dataFormat:u}=o,c=[1,1,1],p=N.computePool3DInfo(n.shape,s,a,c,i,l,u),m=new pc(p,"avg",!1);return t.runWebGLProgram(m,[n],"float32")}var hF={kernelName:na,backendName:"webgl",kernelFunc:u7};var jv=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,c=l-1-e.padInfo.top,p=u-1-e.padInfo.left,m=1/(t*o);this.userCode=` const ivec2 pads = ivec2(${c}, ${p}); const float avgMultiplier = float(${m}); @@ -1694,7 +1694,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}},Wv=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,m=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=p-1-e.padInfo.front,h=m-1-e.padInfo.top,g=f-1-e.padInfo.left,x=1/(t*o*n);this.userCode=` + `}},Hv=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,m=e.effectiveFilterHeight,f=e.effectiveFilterWidth,d=p-1-e.padInfo.front,h=m-1-e.padInfo.top,g=f-1-e.padInfo.left,x=1/(t*o*n);this.userCode=` const ivec3 pads = ivec3(${d}, ${h}, ${g}); const float avgMultiplier = float(${x}); @@ -1750,7 +1750,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}};function i7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s,{filterSize:i,strides:l,pad:u,dimRoundingMode:c}=o,p=[1,1,1],m=N.computePool3DInfo(a.shape,i,l,p,u,c),f=new Wv(m);return t.runWebGLProgram(f,[n],a.dtype)}var mF={kernelName:Ul,backendName:"webgl",kernelFunc:i7};function a7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;Yi([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=N.computePool2DInfo(a.shape,i,l,1,u),p=new Gv(c);return t.runWebGLProgram(p,[n],a.dtype)}var fF={kernelName:Wl,backendName:"webgl",kernelFunc:a7};function l7(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;return uc({a:n,b:s,transposeA:a,transposeB:i,backend:t})}var dF={kernelName:qo,backendName:"webgl",kernelFunc:l7};var Uv=class{constructor(e,t,o,n,s,a){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,o);let i="0.0";n!=null&&(N.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="1.0";s!=null&&(N.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function c7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s,{filterSize:i,strides:l,pad:u,dimRoundingMode:c}=o,p=[1,1,1],m=N.computePool3DInfo(a.shape,i,l,p,u,c),f=new Hv(m);return t.runWebGLProgram(f,[n],a.dtype)}var gF={kernelName:Ul,backendName:"webgl",kernelFunc:c7};function p7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s;Yi([n,s],"avgPoolGrad");let{filterSize:i,strides:l,pad:u}=o,c=N.computePool2DInfo(a.shape,i,l,1,u),p=new jv(c);return t.runWebGLProgram(p,[n],a.dtype)}var xF={kernelName:Wl,backendName:"webgl",kernelFunc:p7};function m7(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;return cc({a:n,b:s,transposeA:a,transposeB:i,backend:t})}var yF={kernelName:Yo,backendName:"webgl",kernelFunc:m7};var qv=class{constructor(e,t,o,n,s,a){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,o);let i="0.0";n!=null&&(N.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="1.0";s!=null&&(N.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -1760,7 +1760,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam float inv = scale * inversesqrt(variance + float(${a})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}};var jv=class{constructor(e,t,o,n,s,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,o);let i="vec4(0.0)";n!=null&&(N.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="vec4(1.0)";s!=null&&(N.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};var Kv=class{constructor(e,t,o,n,s,a){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,o);let i="vec4(0.0)";n!=null&&(N.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let l="vec4(1.0)";s!=null&&(N.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),l="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${l}; @@ -1773,7 +1773,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam setOutput((x - mean) * inv + offset); } - `}};var u7=({inputs:r,backend:e,attrs:t})=>{let{x:o,mean:n,variance:s,offset:a,scale:i}=r;y.assert(n.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(a==null||n.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(i==null||n.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=t;l==null&&(l=.001);let u=[o,n,s],c=null;a!=null&&(c=a.shape,u.push(a));let p=null;i!=null&&(p=i.shape,u.push(i));let m=G().getBool("WEBGL_PACK_NORMALIZATION")?new jv(o.shape,n.shape,s.shape,c,p,l):new Uv(o.shape,n.shape,s.shape,c,p,l);return e.runWebGLProgram(m,u,u[0].dtype)},hF={kernelName:on,backendName:"webgl",kernelFunc:u7};var Hv=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=`uniform int start[${this.rank}];`,n=c7(this.rank),s,a=e.map((i,l)=>`sourceLoc.${qv[l]} = start[${l}] + coords.${qv[l]};`);s=` + `}};var f7=({inputs:r,backend:e,attrs:t})=>{let{x:o,mean:n,variance:s,offset:a,scale:i}=r;y.assert(n.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(a==null||n.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(i==null||n.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=t;l==null&&(l=.001);let u=[o,n,s],c=null;a!=null&&(c=a.shape,u.push(a));let p=null;i!=null&&(p=i.shape,u.push(i));let m=U().getBool("WEBGL_PACK_NORMALIZATION")?new Kv(o.shape,n.shape,s.shape,c,p,l):new qv(o.shape,n.shape,s.shape,c,p,l);return e.runWebGLProgram(m,u,u[0].dtype)},bF={kernelName:ln,backendName:"webgl",kernelFunc:f7};var Xv=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=`uniform int start[${this.rank}];`,n=d7(this.rank),s,a=e.map((i,l)=>`sourceLoc.${Yv[l]} = start[${l}] + coords.${Yv[l]};`);s=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${a.join(` @@ -1784,7 +1784,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${s} setOutput(getSource(${n})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},qv=["x","y","z","w","u","v"];function c7(r){if(r===1)return"sourceLoc";if(r<=6)return qv.slice(0,r).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var Kv=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=Ut("coords",this.rank),n=Ut("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,a=`getChannel(getSource(${n.join()}), ${s})`,i=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}},Yv=["x","y","z","w","u","v"];function d7(r){if(r===1)return"sourceLoc";if(r<=6)return Yv.slice(0,r).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var Zv=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;let t=Le(this.rank),o=Ut("coords",this.rank),n=Ut("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,a=`getChannel(getSource(${n.join()}), ${s})`,i=` result.x = ${a}; if (++${o[this.rank-1]} < ${e[this.rank-1]}) { ++${n[this.rank-1]}; @@ -1814,7 +1814,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${l} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function p7(r,e,t,o){let n=o.texData.get(r.dataId),s=o.makeTensorInfo(t,r.dtype),a=o.texData.get(s.dataId);Object.assign(a,n),a.complexParentRefCount=0,a.refCount=1,a.shape=t,a.dtype=r.dtype;let i=or.computeFlatOffset(e,y.computeStrides(r.shape));n.slice&&(i+=n.slice.flatOffset),a.slice={flatOffset:i,origDataId:n.slice&&n.slice.origDataId||r.dataId};let l=o.dataRefCount.get(a.slice.origDataId)||1;return o.dataRefCount.set(a.slice.origDataId,l+1),s}function Ua(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o,[i,l]=or.parseSliceParams(n,s,a);if(or.assertParamsValid(n,i,l),y.sizeFromShape(l)===0)return t.makeTensorInfo(l,n.dtype,[]);if(t.shouldExecuteOnCPU([n])||n.dtype==="string"){let p=t.texData.get(n.dataId),m=fR(p.values,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,m)}let{isPacked:u}=t.texData.get(n.dataId),c=or.isSliceContinous(n.shape,i,l);if(u||!c){let p=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Kv(l):new Hv(l),m=p.getCustomSetupFunc(i);return t.runWebGLProgram(p,[n],n.dtype,m)}return t.uploadToGPU(n.dataId),p7(n,i,l,t)}var gF={kernelName:hs,backendName:"webgl",kernelFunc:Ua};var m7=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;y.assert(n.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((b,_)=>b*_),l=N.getReshaped(n.shape,s,i),u=N.getPermuted(l.length,s.length),c=N.getReshapedPermuted(n.shape,s,i),p=N.getSliceBeginCoords(a,s.length),m=N.getSliceSize(c,a,s.length),f=[],d=ce({inputs:{x:n},backend:t,attrs:{shape:l}}),h=Lt({inputs:{x:d},backend:t,attrs:{perm:u}}),g=ce({inputs:{x:h},backend:t,attrs:{shape:c}}),x=Ua({inputs:{x:g},backend:t,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>t.disposeIntermediateTensorInfo(b)),x},xF={kernelName:sa,backendName:"webgl",kernelFunc:m7};function f7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.readSync(n.dataId),l=t.readSync(s.dataId),u=Rx(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var yF={kernelName:jl,backendName:"webgl",kernelFunc:f7};var d7="return float(a != b);",Xv=it({opSnippet:d7,dtype:"bool"}),bF={kernelName:bi,backendName:"webgl",kernelFunc:Xv};function ja(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return jt({inputs:{x:n.complexTensorInfos.real},backend:t})}var _F={kernelName:cu,backendName:"webgl",kernelFunc:ja};var h7="return float(int(x));";function wF(r,e){let t=new uo(r.shape,h7),o=e.runWebGLProgram(t,[r],"int32");return{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}function Yv(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return jt({inputs:{x:n},backend:t});let a=gt(n.shape),i=Yv({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=co({inputs:{real:i,imag:a},backend:t});return a.dispose(),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=ja({inputs:{input:n},backend:t}),i=Yv({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!y.hasEncodingLoss(n.dtype,s)){let a=jt({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32")return wF(n,t);if(s==="bool"){let a=t.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),l=Xv({inputs:{a:n,b:a},backend:t});return t.disposeIntermediateTensorInfo(a),l}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var kF={kernelName:Eo,backendName:"webgl",kernelFunc:Yv};var vF="return ceil(x);",g7=ve({opSnippet:vF,packedOpSnippet:vF,cpuKernelImpl:X$}),CF={kernelName:ei,backendName:"webgl",kernelFunc:g7};var Zv=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,o)=>{this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(o,"start"),this.startLoc==null)||t.gl.uniform1iv(this.startLoc,e)}}};function h7(r,e,t,o){let n=o.texData.get(r.dataId),s=o.makeTensorInfo(t,r.dtype),a=o.texData.get(s.dataId);Object.assign(a,n),a.refCount=1,a.shape=t,a.dtype=r.dtype;let i=or.computeFlatOffset(e,y.computeStrides(r.shape));n.slice&&(i+=n.slice.flatOffset),a.slice={flatOffset:i,origDataId:n.slice&&n.slice.origDataId||r.dataId};let l=o.dataRefCount.get(a.slice.origDataId)||1;return o.dataRefCount.set(a.slice.origDataId,l+1),s}function Ua(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,size:a}=o,[i,l]=or.parseSliceParams(n,s,a);if(or.assertParamsValid(n,i,l),y.sizeFromShape(l)===0)return t.makeTensorInfo(l,n.dtype,[]);if(t.shouldExecuteOnCPU([n])||n.dtype==="string"){let p=t.texData.get(n.dataId),m=xR(p.values,i,l,n.shape,n.dtype);return t.makeTensorInfo(l,n.dtype,m)}let{isPacked:u}=t.texData.get(n.dataId),c=or.isSliceContinous(n.shape,i,l);if(u||!c){let p=U().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Zv(l):new Xv(l),m=p.getCustomSetupFunc(i);return t.runWebGLProgram(p,[n],n.dtype,m)}return t.uploadToGPU(n.dataId),h7(n,i,l,t)}var _F={kernelName:ys,backendName:"webgl",kernelFunc:Ua};var g7=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,crops:a}=o;y.assert(n.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((b,_)=>b*_),l=N.getReshaped(n.shape,s,i),u=N.getPermuted(l.length,s.length),c=N.getReshapedPermuted(n.shape,s,i),p=N.getSliceBeginCoords(a,s.length),m=N.getSliceSize(c,a,s.length),f=[],d=ce({inputs:{x:n},backend:t,attrs:{shape:l}}),h=Lt({inputs:{x:d},backend:t,attrs:{perm:u}}),g=ce({inputs:{x:h},backend:t,attrs:{shape:c}}),x=Ua({inputs:{x:g},backend:t,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>t.disposeIntermediateTensorInfo(b)),x},wF={kernelName:sa,backendName:"webgl",kernelFunc:g7};function x7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a}=o,i=t.readSync(n.dataId),l=t.readSync(s.dataId),u=zx(i,l,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,u)}var kF={kernelName:jl,backendName:"webgl",kernelFunc:x7};var y7="return float(a != b);",Jv=it({opSnippet:y7,dtype:"bool"}),vF={kernelName:bi,backendName:"webgl",kernelFunc:Jv};function ja(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return jt({inputs:{x:n.complexTensorInfos.real},backend:t})}var CF={kernelName:cu,backendName:"webgl",kernelFunc:ja};var b7="return float(int(x));";function IF(r,e){let t=new uo(r.shape,b7),o=e.runWebGLProgram(t,[r],"int32");return{dataId:o.dataId,shape:o.shape,dtype:o.dtype}}function Qv(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dtype:s}=o;if(s==="complex64"){if(n.dtype==="complex64")return jt({inputs:{x:n},backend:t});let a=gt(n.shape),i=Qv({inputs:{x:n},backend:t,attrs:{dtype:"float32"}}),l=co({inputs:{real:i,imag:a},backend:t});return a.dispose(),t.disposeIntermediateTensorInfo(i),l}if(n.dtype==="complex64"){let a=ja({inputs:{input:n},backend:t}),i=Qv({inputs:{x:a},backend:t,attrs:{dtype:s}});return t.disposeIntermediateTensorInfo(a),i}if(!y.hasEncodingLoss(n.dtype,s)){let a=jt({inputs:{x:n},backend:t});return{dataId:a.dataId,shape:a.shape,dtype:s}}if(s==="int32")return IF(n,t);if(s==="bool"){let a=t.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),l=Jv({inputs:{a:n,b:a},backend:t});return t.disposeIntermediateTensorInfo(a),l}throw new Error(`Error in Cast: failed to cast ${n.dtype} to ${s}`)}var NF={kernelName:Eo,backendName:"webgl",kernelFunc:Qv};var SF="return ceil(x);",_7=ve({opSnippet:SF,packedOpSnippet:SF,cpuKernelImpl:Q$}),TF={kernelName:Zo,backendName:"webgl",kernelFunc:_7};var eC=class{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1827,7 +1827,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};var Jv=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};var tC=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1841,7 +1841,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};function x7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i;G().getBool("WEBGL_PACK_CLIP")?i=new Jv(n.shape):i=new Zv(n.shape);let l=i.getCustomSetupFunc(s,a);return t.runWebGLProgram(i,[n],n.dtype,l)}var IF={kernelName:Ao,backendName:"webgl",kernelFunc:x7};var Qv=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(o,n)=>{this.minLoc==null&&(this.minLoc=o.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=o.getUniformLocationNoThrow(n,"maxVal")),o.gl.uniform1f(this.minLoc,e),o.gl.uniform1f(this.maxLoc,t)}}};function w7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i;U().getBool("WEBGL_PACK_CLIP")?i=new tC(n.shape):i=new eC(n.shape);let l=i.getCustomSetupFunc(s,a);return t.runWebGLProgram(i,[n],n.dtype,l)}var EF={kernelName:Ao,backendName:"webgl",kernelFunc:w7};var rC=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1854,7 +1854,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function NF(r,e){return{dataId:e.dataId,dtype:e.dtype,shape:r.shape}}function y7(r){let{inputs:e,backend:t}=r,{x:o}=e,n=t.texData.get(o.dataId),s=new Qv(o.shape),a=[NF(o,n.complexTensorInfos.real),NF(o,n.complexTensorInfos.imag)];return t.runWebGLProgram(s,a,a[0].dtype)}var SF={kernelName:ia,backendName:"webgl",kernelFunc:y7};var eC=class{constructor(e){this.outputShape=[],this.outputShape=N.computeOutShape(e,1),this.variableNames=e.map((a,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let a=1;a`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let a=1;a`T${g}`);let l=new Array(e.length-1);l[0]=e[0][t];for(let h=1;h`T${g}`);let l=new Array(e.length-1);l[0]=e[0][t];for(let h=1;h= ${l[h-1]}) { return getChannel( - getT${h}(${Gx(i,u,g)}), - vec2(${Gx(c,u,g)})); + getT${h}(${Kx(i,u,g)}), + vec2(${Kx(c,u,g)})); }`}let f=l.length,d=l[l.length-1];m+=` return getChannel( - getT${f}(${Gx(i,u,d)}), - vec2(${Gx(c,u,d)}));`,this.userCode=` + getT${f}(${Kx(i,u,d)}), + vec2(${Kx(c,u,d)}));`,this.userCode=` float getValue(${i.map(h=>"int "+h)}) { ${m} } @@ -1900,7 +1900,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(result); } - `}};function Gx(r,e,t){let o=r.indexOf(e);return r.map((s,a)=>a===o?`${s} - ${t}`:s).join()}function pc(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return jt({inputs:{x:n.complexTensorInfos.imag},backend:t})}var TF={kernelName:ou,backendName:"webgl",kernelFunc:pc};function mc(r,e,t){let o=r[0].dtype;if(o==="complex64"){let u=r.map(d=>ja({inputs:{input:d},backend:t})),c=r.map(d=>pc({inputs:{input:d},backend:t})),p=mc(u,e,t),m=mc(c,e,t),f=co({inputs:{real:p,imag:m},backend:t});return u.forEach(d=>t.disposeIntermediateTensorInfo(d)),c.forEach(d=>t.disposeIntermediateTensorInfo(d)),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),f}if(o==="string"){let{tensors2D:u,outShape:c}=EF(r,e,t),p=u.map(g=>({vals:t.readSync(g.dataId),shape:g.shape})),m=u[0].shape[0]===1,f=Y$(p,c,o,m),d=N.computeOutShape(r.map(g=>g.shape),e),h=t.makeTensorInfo(d,o,f);return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),h}if(r.length>G().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(r.length/2),c=mc(r.slice(0,u),e,t),p=mc(r.slice(u),e,t),m=mc([c,p],e,t);return t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),m}if(G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&r[0].shape.length>1){let u=new tC(r.map(c=>c.shape),e);return t.runWebGLProgram(u,r,o)}let{tensors2D:n,outShape:s}=EF(r,e,t),a=new eC(n.map(u=>u.shape)),i=t.runWebGLProgram(a,n,o);n.forEach(u=>t.disposeIntermediateTensorInfo(u));let l=ce({inputs:{x:i},attrs:{shape:s},backend:t});return t.disposeIntermediateTensorInfo(i),l}function EF(r,e,t){let o=N.computeOutShape(r.map(s=>s.shape),e);return{tensors2D:r.map(s=>ce({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(e))]},backend:t})),outShape:o}}function rC(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o,s=y.parseAxisParam(n,e[0].shape)[0],a=N.computeOutShape(e.map(u=>u.shape),s);if(y.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(u=>y.sizeFromShape(u.shape)>0);if(i.length===1)return jt({inputs:{x:i[0]},backend:t});let l=i.map(u=>u.shape);return N.assertParamsConsistent(l,s),mc(i,s,t)}var AF={kernelName:is,backendName:"webgl",kernelFunc:rC};var lh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,i=e.padInfo.left,l=e.strideHeight,u=e.strideWidth,c=e.dilationHeight,p=e.dilationWidth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4,g=e.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,_=g?3:1,w="",v="";o&&(n?w=`float activation(float a) { + `}};function Kx(r,e,t){let o=r.indexOf(e);return r.map((s,a)=>a===o?`${s} - ${t}`:s).join()}function mc(r){let{inputs:e,backend:t}=r,{input:o}=e,n=t.texData.get(o.dataId);return jt({inputs:{x:n.complexTensorInfos.imag},backend:t})}var $F={kernelName:ou,backendName:"webgl",kernelFunc:mc};function fc(r,e,t){let o=r[0].dtype;if(o==="complex64"){let u=r.map(d=>ja({inputs:{input:d},backend:t})),c=r.map(d=>mc({inputs:{input:d},backend:t})),p=fc(u,e,t),m=fc(c,e,t),f=co({inputs:{real:p,imag:m},backend:t});return u.forEach(d=>t.disposeIntermediateTensorInfo(d)),c.forEach(d=>t.disposeIntermediateTensorInfo(d)),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),f}if(o==="string"){let{tensors2D:u,outShape:c}=RF(r,e,t),p=u.map(g=>({vals:t.readSync(g.dataId),shape:g.shape})),m=u[0].shape[0]===1,f=eR(p,c,o,m),d=N.computeOutShape(r.map(g=>g.shape),e),h=t.makeTensorInfo(d,o,f);return u.forEach(g=>t.disposeIntermediateTensorInfo(g)),h}if(r.length>U().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(r.length/2),c=fc(r.slice(0,u),e,t),p=fc(r.slice(u),e,t),m=fc([c,p],e,t);return t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),m}if(U().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&r[0].shape.length>1){let u=new nC(r.map(c=>c.shape),e);return t.runWebGLProgram(u,r,o)}let{tensors2D:n,outShape:s}=RF(r,e,t),a=new oC(n.map(u=>u.shape)),i=t.runWebGLProgram(a,n,o);n.forEach(u=>t.disposeIntermediateTensorInfo(u));let l=ce({inputs:{x:i},attrs:{shape:s},backend:t});return t.disposeIntermediateTensorInfo(i),l}function RF(r,e,t){let o=N.computeOutShape(r.map(s=>s.shape),e);return{tensors2D:r.map(s=>ce({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(e))]},backend:t})),outShape:o}}function sC(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o,s=y.parseAxisParam(n,e[0].shape)[0],a=N.computeOutShape(e.map(u=>u.shape),s);if(y.sizeFromShape(a)===0)return t.makeTensorInfo(a,e[0].dtype,[]);let i=e.filter(u=>y.sizeFromShape(u.shape)>0);if(i.length===1)return jt({inputs:{x:i[0]},backend:t});let l=i.map(u=>u.shape);return N.assertParamsConsistent(l,s),fc(i,s,t)}var FF={kernelName:cs,backendName:"webgl",kernelFunc:sC};var ph=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.padInfo.top,i=e.padInfo.left,l=e.strideHeight,u=e.strideWidth,c=e.dilationHeight,p=e.dilationWidth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4,g=e.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,_=g?3:1,w="",v="";o&&(n?w=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${o} }`:s?w=`float activation(float a) { @@ -2034,7 +2034,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${v} setOutput(result); } - `}},oC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,o=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4;this.userCode=` + `}},iC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,o=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,m=e.filterHeight,f=e.filterWidth,d=Math.floor(e.inChannels/4)*4,h=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${s}, ${a}, ${i}); const ivec3 pads = ivec3(${t}, ${o}, ${n}); @@ -2122,7 +2122,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}};var nC=class{constructor(e,t,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:n,inChannels:s,strideWidth:a,strideHeight:i,padInfo:l,outWidth:u,dilationWidth:c,dilationHeight:p,dataFormat:m}=o,{left:f,top:d}=l,h=s*n,g=Mt(),x=m==="channelsLast",b=x?0:1,_=x?1:2,w="";for(let v=0;v<=1;v++)for(let $=0;$<=1;$++)w+=` + `}};var aC=class{constructor(e,t,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let{filterWidth:n,inChannels:s,strideWidth:a,strideHeight:i,padInfo:l,outWidth:u,dilationWidth:c,dilationHeight:p,dataFormat:m}=o,{left:f,top:d}=l,h=s*n,g=Mt(),x=m==="channelsLast",b=x?0:1,_=x?1:2,w="";for(let v=0;v<=1;v++)for(let $=0;$<=1;$++)w+=` blockIndex = rc.y + ${$}; pos = rc.x + ${v}; @@ -2166,7 +2166,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${g.output} = result; } - `}};function Wx({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let l=r.shape,u=o.texData.get(r.dataId),c=t.inChannels,p=l[0]*l[1]*l[2],m=t.outChannels,f=t.dataFormat==="channelsLast",d=!1,h=!1,g,x=[],b=(p===1||m===1)&&c>Mv,_=l[2]%2!=0&&!!u.isPacked;if(b||!G().getBool("WEBGL_LAZILY_UNPACK")||!G().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!_){let w=f?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],v=ce({inputs:{x:r},backend:o,attrs:{shape:[1,w,t.inChannels]}}),$=ce({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}}),A=uc({a:v,b:$,transposeA:d,transposeB:h,backend:o,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a});g=ce({inputs:{x:A},backend:o,attrs:{shape:t.outShape}}),x.push(v),x.push($),x.push(A)}else{let w=f?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),v={dataId:r.dataId,shape:[1,w,t.inChannels],dtype:r.dtype},$=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,y.assert(ac(u.shape,v.shape),()=>`packed reshape ${u.shape} to ${v.shape} isn't free`);let A=ce({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}});x.push(A);let R=uc({a:v,b:A,backend:o,transposeA:d,transposeB:h,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a}),M=o.texData.get(R.dataId);y.assert(M.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=$,M.shape=t.outShape,g=jt({inputs:{x:R},backend:o}),g.shape=t.outShape,x.push(R)}for(let w of x)o.disposeIntermediateTensorInfo(w);return g}function Ux({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=t,d=f==="channelsLast",h=l*u*c,g=m*p,x=[h,g],b=!0,_=!1,w=[],v=ce({inputs:{x:r},backend:o,attrs:{shape:r.shape.slice(1)}}),$=ce({inputs:{x:e},backend:o,attrs:{shape:[1,h,y.sizeFromShape(e.shape)/h]}});w.push(v),w.push($);let A=new nC(x,v.shape,t),R=o.runWebGLProgram(A,[v],"float32"),M=ce({inputs:{x:R},backend:o,attrs:{shape:[1,x[0],x[1]]}});w.push(R),w.push(M);let z=n!=null,W=s!=null,U=i==="leakyrelu",q=i?El(i,!0):null,Z=new ih(M.shape,$.shape,[1,g,t.outChannels],b,_,z,q,W,U),X=[M,$];if(n&&X.push(n),W&&X.push(s),U){let re=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));X.push(re),w.push(re)}let Y=o.runWebGLProgram(Z,X,"float32"),te=d?[1,m,p,t.outChannels]:[1,t.outChannels,m,p],K=ce({inputs:{x:Y},backend:o,attrs:{shape:te}});w.push(Y);for(let re of w)o.disposeIntermediateTensorInfo(re);return K}function b7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o,p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=Wx({x:n,filter:s,convInfo:m,backend:t});else if(G().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)f=Ux({x:n,filter:s,convInfo:m,backend:t});else{let h=new lh(m);f=t.runWebGLProgram(h,[n,s],"float32")}let d=ce({inputs:{x:f},backend:t,attrs:{shape:m.outShape}});return t.disposeIntermediateTensorInfo(f),d}var DF={kernelName:Ko,backendName:"webgl",kernelFunc:b7};var sC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.dataFormat==="channelsLast";this.userCode=` + `}};function Xx({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let l=r.shape,u=o.texData.get(r.dataId),c=t.inChannels,p=l[0]*l[1]*l[2],m=t.outChannels,f=t.dataFormat==="channelsLast",d=!1,h=!1,g,x=[],b=(p===1||m===1)&&c>Bv,_=l[2]%2!=0&&!!u.isPacked;if(b||!U().getBool("WEBGL_LAZILY_UNPACK")||!U().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!_){let w=f?l[0]*l[1]*l[2]:l[0]*l[2]*l[3],v=ce({inputs:{x:r},backend:o,attrs:{shape:[1,w,t.inChannels]}}),$=ce({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}}),A=cc({a:v,b:$,transposeA:d,transposeB:h,backend:o,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a});g=ce({inputs:{x:A},backend:o,attrs:{shape:t.outShape}}),x.push(v),x.push($),x.push(A)}else{let w=f?l[0]*l[1]*(l[2]+1):l[0]*l[2]*(l[3]+1),v={dataId:r.dataId,shape:[1,w,t.inChannels],dtype:r.dtype},$=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,y.assert(lc(u.shape,v.shape),()=>`packed reshape ${u.shape} to ${v.shape} isn't free`);let A=ce({inputs:{x:e},backend:o,attrs:{shape:[1,t.inChannels,t.outChannels]}});x.push(A);let R=cc({a:v,b:A,backend:o,transposeA:d,transposeB:h,bias:n,activation:i,preluActivationWeights:s,leakyreluAlpha:a}),M=o.texData.get(R.dataId);y.assert(M.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=$,M.shape=t.outShape,g=jt({inputs:{x:R},backend:o}),g.shape=t.outShape,x.push(R)}for(let w of x)o.disposeIntermediateTensorInfo(w);return g}function Yx({x:r,filter:e,convInfo:t,backend:o,bias:n=null,preluActivationWeights:s=null,leakyreluAlpha:a=0,activation:i=null}){let{filterWidth:l,filterHeight:u,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=t,d=f==="channelsLast",h=l*u*c,g=m*p,x=[h,g],b=!0,_=!1,w=[],v=ce({inputs:{x:r},backend:o,attrs:{shape:r.shape.slice(1)}}),$=ce({inputs:{x:e},backend:o,attrs:{shape:[1,h,y.sizeFromShape(e.shape)/h]}});w.push(v),w.push($);let A=new aC(x,v.shape,t),R=o.runWebGLProgram(A,[v],"float32"),M=ce({inputs:{x:R},backend:o,attrs:{shape:[1,x[0],x[1]]}});w.push(R),w.push(M);let V=n!=null,G=s!=null,W=i==="leakyrelu",q=i?El(i,!0):null,Z=new uh(M.shape,$.shape,[1,g,t.outChannels],b,_,V,q,G,W),X=[M,$];if(n&&X.push(n),G&&X.push(s),W){let re=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));X.push(re),w.push(re)}let Y=o.runWebGLProgram(Z,X,"float32"),te=d?[1,m,p,t.outChannels]:[1,t.outChannels,m,p],K=ce({inputs:{x:Y},backend:o,attrs:{shape:te}});w.push(Y);for(let re of w)o.disposeIntermediateTensorInfo(re);return K}function v7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dataFormat:l,dilations:u,dimRoundingMode:c}=o,p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,s.shape,a,u,i,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=Xx({x:n,filter:s,convInfo:m,backend:t});else if(U().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)f=Yx({x:n,filter:s,convInfo:m,backend:t});else{let h=new ph(m);f=t.runWebGLProgram(h,[n,s],"float32")}let d=ce({inputs:{x:f},backend:t,attrs:{shape:m.outShape}});return t.disposeIntermediateTensorInfo(f),d}var OF={kernelName:Jo,backendName:"webgl",kernelFunc:v7};var lC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2208,7 +2208,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}},iC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,l=o-1-e.padInfo.left,u=a?1:2,c=a?2:3,p=a?3:1;this.userCode=` + `}},uC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,l=o-1-e.padInfo.left,u=a?1:2,c=a?2:3,p=a?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${l}); void main() { @@ -2261,7 +2261,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}},aC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},cC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2303,7 +2303,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}},lC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=t-1-e.padInfo.front,u=o-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` + `}},pC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,o=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,i=e.strideWidth,l=t-1-e.padInfo.front,u=o-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${l}, ${u}, ${c}); void main() { @@ -2360,12 +2360,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}};function _7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,dataFormat:l,dimRoundingMode:u,filterShape:c}=o,p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,c,a,1,i,u,!1,p),f=new sC(m);return t.runWebGLProgram(f,[n,s],"float32")}var $F={kernelName:ql,backendName:"webgl",kernelFunc:_7};function w7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{inputShape:a,strides:i,pad:l,dataFormat:u,dimRoundingMode:c}=o,p=N.convertConv2DDataFormat(u),m=N.computeConv2DInfo(a,s.shape,i,1,l,c,!1,p),f=new iC(m);return t.runWebGLProgram(f,[n,s],"float32")}var RF={kernelName:Xo,backendName:"webgl",kernelFunc:w7};function k7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=N.computeConv3DInfo(n.shape,s.shape,a,l,i),c=new oC(u);return t.runWebGLProgram(c,[n,s],"float32")}var FF={kernelName:aa,backendName:"webgl",kernelFunc:k7};function v7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,filterShape:l}=o,u=N.computeConv3DInfo(n.shape,l,a,1,i),c=new aC(u);return t.runWebGLProgram(c,[n,s],"float32")}var OF={kernelName:Kl,backendName:"webgl",kernelFunc:v7};function C7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{pad:a,strides:i,inputShape:l}=o,u=N.computeConv3DInfo(l,s.shape,i,1,a),c=new lC(u);return t.runWebGLProgram(c,[n,s],"float32")}var PF={kernelName:Xl,backendName:"webgl",kernelFunc:C7};var I7=Mx+` + `}};function C7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,dataFormat:l,dimRoundingMode:u,filterShape:c}=o,p=N.convertConv2DDataFormat(l),m=N.computeConv2DInfo(n.shape,c,a,1,i,u,!1,p),f=new lC(m);return t.runWebGLProgram(f,[n,s],"float32")}var PF={kernelName:ql,backendName:"webgl",kernelFunc:C7};function I7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{inputShape:a,strides:i,pad:l,dataFormat:u,dimRoundingMode:c}=o,p=N.convertConv2DDataFormat(u),m=N.computeConv2DInfo(a,s.shape,i,1,l,c,!1,p),f=new uC(m);return t.runWebGLProgram(f,[n,s],"float32")}var MF={kernelName:Qo,backendName:"webgl",kernelFunc:I7};function N7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=N.computeConv3DInfo(n.shape,s.shape,a,l,i),c=new iC(u);return t.runWebGLProgram(c,[n,s],"float32")}var LF={kernelName:aa,backendName:"webgl",kernelFunc:N7};function S7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,pad:i,filterShape:l}=o,u=N.computeConv3DInfo(n.shape,l,a,1,i),c=new cC(u);return t.runWebGLProgram(c,[n,s],"float32")}var zF={kernelName:Kl,backendName:"webgl",kernelFunc:S7};function T7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{pad:a,strides:i,inputShape:l}=o,u=N.computeConv3DInfo(l,s.shape,i,1,a),c=new pC(u);return t.runWebGLProgram(c,[n,s],"float32")}var BF={kernelName:Xl,backendName:"webgl",kernelFunc:T7};var E7=Wx+` return cos(x); -`,N7=ve({opSnippet:I7}),MF={kernelName:Yo,backendName:"webgl",kernelFunc:N7};var S7=` +`,A7=ve({opSnippet:E7}),VF={kernelName:en,backendName:"webgl",kernelFunc:A7};var D7=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,T7=ve({opSnippet:S7}),LF={kernelName:ti,backendName:"webgl",kernelFunc:T7};var uC=class{constructor(e,t,o,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,i,l,u]=e,[c]=t,[p,m]=o;this.outputShape=[c,p,m,u];let f=n==="bilinear"?1:0,[d,h]=[`${i-1}.0`,`${l-1}.0`],[g,x,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[_,w,v]=m>1?[`${(l-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` +`,$7=ve({opSnippet:D7}),GF={kernelName:ti,backendName:"webgl",kernelFunc:$7};var mC=class{constructor(e,t,o,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[a,i,l,u]=e,[c]=t,[p,m]=o;this.outputShape=[c,p,m,u];let f=n==="bilinear"?1:0,[d,h]=[`${i-1}.0`,`${l-1}.0`],[g,x,b]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[_,w,v]=m>1?[`${(l-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` const float height_ratio = float(${g}); const float width_ratio = float(${_}); void main() { @@ -2426,21 +2426,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam setOutput(newValue); } } - `}};var E7=r=>{let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,c=new uC(n.shape,s.shape,i,l,u);return t.runWebGLProgram(c,[n,s,a],"float32")},zF={kernelName:ri,backendName:"webgl",kernelFunc:E7};var jx=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=e;let n=e.length,s=t?"0.0":`getX(${BF(n,"coords")})`,a=e[e.length-1],i="",l="";t?(i=o?`end != ${a-1}`:"end != 0",l=o?"end + 1":"end - 1"):(i=o?`end + pow2 < ${a}`:"end >= pow2",l=o?"end + pow2":"end - pow2"),this.userCode=` + `}};var R7=r=>{let{inputs:e,backend:t,attrs:o}=r,{image:n,boxes:s,boxInd:a}=e,{cropSize:i,method:l,extrapolationValue:u}=o,c=new mC(n.shape,s.shape,i,l,u);return t.runWebGLProgram(c,[n,s,a],"float32")},WF={kernelName:ri,backendName:"webgl",kernelFunc:R7};var Zx=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=e;let n=e.length,s=t?"0.0":`getX(${UF(n,"coords")})`,a=e[e.length-1],i="",l="";t?(i=o?`end != ${a-1}`:"end != 0",l=o?"end + 1":"end - 1"):(i=o?`end + pow2 < ${a}`:"end >= pow2",l=o?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { ${Le(n)} coords = getOutputCoords(); - int end = ${VF(n,"coords")}; + int end = ${jF(n,"coords")}; float val = ${s}; int pow2 = int(pow(2.0, index)); if (${i}) { int idx = ${l}; - ${VF(n,"coords")} = idx; - val += getX(${BF(n,"coords")}); + ${jF(n,"coords")} = idx; + val += getX(${UF(n,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,o)=>{this.index==null&&(this.index=t.getUniformLocation(o,"index")),t.gl.uniform1f(this.index,e)}}};function BF(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.x, ${e}.y`;if(r===3)return`${e}.x, ${e}.y, ${e}.z`;if(r===4)return`${e}.x, ${e}.y, ${e}.z, ${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function VF(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.y`;if(r===3)return`${e}.z`;if(r===4)return`${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function A7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,exclusive:a,reverse:i}=o,l=n.shape.length,u=N.getAxesPermutation([s],l),c=n;u!=null&&(c=Lt({inputs:{x:n},backend:t,attrs:{perm:u}}));let p=N.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${n.shape.length-1} but got axis=${s}`);let m=n.shape[p],f=jt({inputs:{x:c},backend:t});for(let d=0;d<=Math.ceil(Math.log2(m))-1;d++){let h=new jx(c.shape,!1,i),g=h.getCustomSetupFunc(d),x=f;f=t.runWebGLProgram(h,[f],f.dtype,g),t.disposeIntermediateTensorInfo(x)}if(a){let d=new jx(c.shape,a,i),h=f;f=t.runWebGLProgram(d,[f],f.dtype),t.disposeIntermediateTensorInfo(h)}if(u!=null){let d=N.getUndoAxesPermutation(u),h=Lt({inputs:{x:f},backend:t,attrs:{perm:d}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(c),h}return f}var GF={kernelName:Zo,backendName:"webgl",kernelFunc:A7};function D7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a,binaryOutput:i}=o;if(n.shape.length===1){let l=t.readSync(n.dataId),u=t.readSync(s.dataId),c=Rx(l,u,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,c)}else if(n.shape.length===2){let l=t.bufferSync(n),u=t.bufferSync(s),c=K$(l,u,a,i);return t.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${n.shape.length}.`)}var WF={kernelName:Yl,backendName:"webgl",kernelFunc:D7};var cC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=o,this.userCode=` + `}getCustomSetupFunc(e){return(t,o)=>{this.index==null&&(this.index=t.getUniformLocation(o,"index")),t.gl.uniform1f(this.index,e)}}};function UF(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.x, ${e}.y`;if(r===3)return`${e}.x, ${e}.y, ${e}.z`;if(r===4)return`${e}.x, ${e}.y, ${e}.z, ${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function jF(r,e){if(r===1)return`${e}`;if(r===2)return`${e}.y`;if(r===3)return`${e}.z`;if(r===4)return`${e}.w`;throw Error(`Cumulative sum for rank ${r} is not yet supported`)}function F7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,exclusive:a,reverse:i}=o,l=n.shape.length,u=N.getAxesPermutation([s],l),c=n;u!=null&&(c=Lt({inputs:{x:n},backend:t,attrs:{perm:u}}));let p=N.getInnerMostAxes(1,l)[0];if(p!==l-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${n.shape.length-1} but got axis=${s}`);let m=c.shape[p],f=jt({inputs:{x:c},backend:t});for(let d=0;d<=Math.ceil(Math.log2(m))-1;d++){let h=new Zx(c.shape,!1,i),g=h.getCustomSetupFunc(d),x=f;f=t.runWebGLProgram(h,[f],f.dtype,g),t.disposeIntermediateTensorInfo(x)}if(a){let d=new Zx(c.shape,a,i),h=f;f=t.runWebGLProgram(d,[f],f.dtype),t.disposeIntermediateTensorInfo(h)}if(u!=null){let d=N.getUndoAxesPermutation(u),h=Lt({inputs:{x:f},backend:t,attrs:{perm:d}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(c),h}return f}var HF={kernelName:tn,backendName:"webgl",kernelFunc:F7};function O7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,weights:s}=e,{size:a,binaryOutput:i}=o;if(n.shape.length===1){let l=t.readSync(n.dataId),u=t.readSync(s.dataId),c=zx(l,u,s.dtype,s.shape,a);return t.makeTensorInfo([a],s.dtype,c)}else if(n.shape.length===2){let l=t.bufferSync(n),u=t.bufferSync(s),c=J$(l,u,a,i);return t.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${n.shape.length}.`)}var qF={kernelName:Yl,backendName:"webgl",kernelFunc:O7};var fC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=o,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2459,7 +2459,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function $7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockSize:s,dataFormat:a}=o;y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=new cC(d,s,a);return t.runWebGLProgram(h,[n],n.dtype)}var UF={kernelName:oi,backendName:"webgl",kernelFunc:$7};var uh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.inHeight,i=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,p=e.strideWidth,m=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,h=e.filterWidth,g=e.outChannels/e.inChannels,x="",b="";o&&(n?x=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function P7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockSize:s,dataFormat:a}=o;y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=new fC(d,s,a);return t.runWebGLProgram(h,[n],n.dtype)}var KF={kernelName:oi,backendName:"webgl",kernelFunc:P7};var mh=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let a=e.inHeight,i=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,p=e.strideWidth,m=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,h=e.filterWidth,g=e.outChannels/e.inChannels,x="",b="";o&&(n?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${o} }`:s?x=`float activation(float a) { @@ -2515,7 +2515,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${b} setOutput(result); } - `}};var ch=class{constructor(e,t=!1,o=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;let a=e.inHeight,i=e.inWidth,l=e.padInfo.top,u=e.padInfo.left,c=e.strideHeight,p=e.strideWidth,m=e.dilationHeight,f=e.dilationWidth,d=e.filterHeight,h=e.filterWidth,g=h,x="int xR; int xC; int xCOffset;";for(let v=0;v`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`);let p=N.computeConv2DInfo(n.shape,s.shape,a,c,i,u,!0),m;return G().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?m=new ch(p):m=new uh(p),t.runWebGLProgram(m,[n,s],"float32")}var jF={kernelName:Jo,backendName:"webgl",kernelFunc:R7};var pC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + `}};function M7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l,dimRoundingMode:u}=o,c=l;c==null&&(c=[1,1]),y.assert(N.eitherStridesOrDilationsAreOne(a,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${a} and dilations '${c}'`);let p=N.computeConv2DInfo(n.shape,s.shape,a,c,i,u,!0),m;return U().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels==1?m=new fh(p):m=new mh(p),t.runWebGLProgram(m,[n,s],"float32")}var XF={kernelName:rn,backendName:"webgl",kernelFunc:M7};var dC=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,o=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2703,7 +2703,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}},mC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,i=o-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` + `}},hC=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,o=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,i=o-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${a}, ${i}); void main() { @@ -2748,13 +2748,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}};function F7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,filterShape:c}=o,p=N.computeConv2DInfo(n.shape,c,a,i,l,u,!0),m=new pC(p);return t.runWebGLProgram(m,[n,s],"float32")}var HF={kernelName:Zl,backendName:"webgl",kernelFunc:F7};function O7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,inputShape:c}=o,p=N.computeConv2DInfo(c,s.shape,a,i,l,u,!0),m=new mC(p);return t.runWebGLProgram(m,[n,s],"float32")}var qF={kernelName:Jl,backendName:"webgl",kernelFunc:O7};var fC=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function L7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,dy:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,filterShape:c}=o,p=N.computeConv2DInfo(n.shape,c,a,i,l,u,!0),m=new dC(p);return t.runWebGLProgram(m,[n,s],"float32")}var YF={kernelName:Zl,backendName:"webgl",kernelFunc:L7};function z7(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,filter:s}=e,{strides:a,dilations:i,pad:l,dimRoundingMode:u,inputShape:c}=o,p=N.computeConv2DInfo(c,s.shape,a,i,l,u,!0),m=new hC(p);return t.runWebGLProgram(m,[n,s],"float32")}var ZF={kernelName:Jl,backendName:"webgl",kernelFunc:z7};var gC=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function P7(r){let{inputs:e,backend:t}=r,{x:o}=e,n=[...o.shape,...o.shape],s=y.sizeFromShape(o.shape),a=ce({inputs:{x:o},backend:t,attrs:{shape:[s]}}),i=new fC(s),l=t.runWebGLProgram(i,[a],a.dtype),u=ce({inputs:{x:l},backend:t,attrs:{shape:n}});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(l),u}var KF={kernelName:Ql,backendName:"webgl",kernelFunc:P7};var dC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:o,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:i,filterWidth:l,dilationHeight:u,dilationWidth:c}=e,{top:p,left:m}=n;this.userCode=` + `}};function B7(r){let{inputs:e,backend:t}=r,{x:o}=e,n=[...o.shape,...o.shape],s=y.sizeFromShape(o.shape),a=ce({inputs:{x:o},backend:t,attrs:{shape:[s]}}),i=new gC(s),l=t.runWebGLProgram(i,[a],a.dtype),u=ce({inputs:{x:l},backend:t,attrs:{shape:n}});return t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(l),u}var JF={kernelName:Ql,backendName:"webgl",kernelFunc:B7};var xC=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:o,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:i,filterWidth:l,dilationHeight:u,dilationWidth:c}=e,{top:p,left:m}=n;this.userCode=` const ivec2 strides = ivec2(${s}, ${a}); const ivec2 pads = ivec2(${p}, ${m}); const float neg_infinity = -3.4e38; @@ -2792,7 +2792,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam float result = curVal; setOutput(result); } - `}};function M7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=N.computeDilation2DInfo(n.shape,s.shape,a,i,"NHWC",l),c,p=new dC(u);c=t.runWebGLProgram(p,[n,s],"float32");let m=ce({inputs:{x:c},backend:t,attrs:{shape:u.outShape}});return t.disposeIntermediateTensorInfo(c),m}var XF={kernelName:la,backendName:"webgl",kernelFunc:M7};var L7="return (x >= 0.0) ? x : (exp(x) - 1.0);",z7=` + `}};function V7(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s}=e,{strides:a,pad:i,dilations:l}=o,u=N.computeDilation2DInfo(n.shape,s.shape,a,i,"NHWC",l),c,p=new xC(u);c=t.runWebGLProgram(p,[n,s],"float32");let m=ce({inputs:{x:c},backend:t,attrs:{shape:u.outShape}});return t.disposeIntermediateTensorInfo(c),m}var QF={kernelName:la,backendName:"webgl",kernelFunc:V7};var G7="return (x >= 0.0) ? x : (exp(x) - 1.0);",W7=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -2801,12 +2801,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,B7=ve({opSnippet:L7,packedOpSnippet:z7}),YF={kernelName:ni,backendName:"webgl",kernelFunc:B7};var V7="return (b >= 1.0) ? a : a * (b + 1.0);",G7=` +`,U7=ve({opSnippet:G7,packedOpSnippet:W7}),eO={kernelName:ni,backendName:"webgl",kernelFunc:U7};var j7="return (b >= 1.0) ? a : a * (b + 1.0);",H7=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,W7=r=>{let{inputs:e,backend:t}=r,{dy:o,y:n}=e,s=G().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Vs(G7,o.shape,n.shape):new Qn(V7,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)},ZF={kernelName:eu,backendName:"webgl",kernelFunc:W7};var U7=` +`,q7=r=>{let{inputs:e,backend:t}=r,{dy:o,y:n}=e,s=U().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Ws(H7,o.shape,n.shape):new os(j7,o.shape,n.shape);return t.runWebGLProgram(s,[o,n],o.dtype)},tO={kernelName:eu,backendName:"webgl",kernelFunc:q7};var K7=` return vec4(equal(a, b)); -`,j7="return float(a == b);",H7=it({opSnippet:j7,packedOpSnippet:U7,dtype:"bool"}),JF={kernelName:ii,backendName:"webgl",kernelFunc:H7};var q7=` +`,X7="return float(a == b);",Y7=it({opSnippet:X7,packedOpSnippet:K7,dtype:"bool"}),rO={kernelName:ii,backendName:"webgl",kernelFunc:Y7};var Z7=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -2821,7 +2821,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,K7=ve({opSnippet:q7}),QF={kernelName:si,backendName:"webgl",kernelFunc:K7};var eO="return exp(x);",hC=ve({opSnippet:eO,packedOpSnippet:eO,cpuKernelImpl:Z$}),tO={kernelName:en,backendName:"webgl",kernelFunc:hC};function Hx(r){let{inputs:e,attrs:t,backend:o}=r,{dim:n}=t,{input:s}=e,a=s.shape.length,i=s.shape.slice(),l=n;return n<0&&(y.assert(-(a+1)<=n,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+n+1),i.splice(l,0,1),ce({inputs:{x:s},backend:o,attrs:{shape:i}})}var rO={kernelName:as,backendName:"webgl",kernelFunc:Hx};var oO="return exp(x) - 1.0;",X7=ve({opSnippet:oO,packedOpSnippet:oO,cpuKernelImpl:J$}),nO={kernelName:ai,backendName:"webgl",kernelFunc:X7};var qx=class{constructor(e,t,o){this.variableNames=["real","imag"];let n=t[1];this.outputShape=t;let s=o?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,a=o?`${n}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,J7=ve({opSnippet:Z7}),oO={kernelName:si,backendName:"webgl",kernelFunc:J7};var nO="return exp(x);",yC=ve({opSnippet:nO,packedOpSnippet:nO,cpuKernelImpl:tR}),sO={kernelName:nn,backendName:"webgl",kernelFunc:yC};function Jx(r){let{inputs:e,attrs:t,backend:o}=r,{dim:n}=t,{input:s}=e,a=s.shape.length,i=s.shape.slice(),l=n;return n<0&&(y.assert(-(a+1)<=n,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+n+1),i.splice(l,0,1),ce({inputs:{x:s},backend:o,attrs:{shape:i}})}var iO={kernelName:ps,backendName:"webgl",kernelFunc:Jx};var aO="return exp(x) - 1.0;",Q7=ve({opSnippet:aO,packedOpSnippet:aO,cpuKernelImpl:rR}),lO={kernelName:ai,backendName:"webgl",kernelFunc:Q7};var Qx=class{constructor(e,t,o){this.variableNames=["real","imag"];let n=t[1];this.outputShape=t;let s=o?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,a=o?`${n}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${s}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -2854,13 +2854,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function Kx(r,e,t){let o=t.texData.get(r.dataId),n=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],a=n/s,i=ce({inputs:{x:r},backend:t,attrs:{shape:[a,s]}}),l=i.shape,u=new qx("real",l,e),c=new qx("imag",l,e),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:l},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:l}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=co({inputs:{real:m,imag:f},backend:t});t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f);let h=ce({inputs:{x:d},backend:t,attrs:{shape:r.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(d),h}function Y7(r){let{inputs:e,backend:t}=r,{input:o}=e;return Kx(o,!1,t)}var sO={kernelName:tu,backendName:"webgl",kernelFunc:Y7};var gC=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function ey(r,e,t){let o=t.texData.get(r.dataId),n=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],a=n/s,i=ce({inputs:{x:r},backend:t,attrs:{shape:[a,s]}}),l=i.shape,u=new Qx("real",l,e),c=new Qx("imag",l,e),p=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:l},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:l}],m=t.runWebGLProgram(u,p,"float32"),f=t.runWebGLProgram(c,p,"float32"),d=co({inputs:{real:m,imag:f},backend:t});t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f);let h=ce({inputs:{x:d},backend:t,attrs:{shape:r.shape}});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(d),h}function eZ(r){let{inputs:e,backend:t}=r,{input:o}=e;return ey(o,!1,t)}var uO={kernelName:tu,backendName:"webgl",kernelFunc:eZ};var bC=class{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,o)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(o,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function ph(r){let{backend:e,attrs:t}=r,{shape:o,value:n}=t,{dtype:s}=t;if(s=s||y.inferDtype(n),s==="string"){let a=y.getArrayFromDType(s,y.sizeFromShape(o));return a.fill(n),e.makeTensorInfo(o,s,a)}else{let a=new gC(o,n),i=a.getCustomSetupFunc(n);return e.runWebGLProgram(a,[],s,i)}}var iO={kernelName:ua,backendName:"webgl",kernelFunc:ph};var xC=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,o)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(o,"value")),t.gl.uniform1f(this.valueLoc,e)}}};function dh(r){let{backend:e,attrs:t}=r,{shape:o,value:n}=t,{dtype:s}=t;if(s=s||y.inferDtype(n),s==="string"){let a=y.getArrayFromDType(s,y.sizeFromShape(o));return a.fill(n),e.makeTensorInfo(o,s,a)}else{let a=new bC(o,n),i=a.getCustomSetupFunc(n);return e.runWebGLProgram(a,[],s,i)}}var cO={kernelName:ua,backendName:"webgl",kernelFunc:dh};var _C=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -2874,7 +2874,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(outputValue); } - `}};var aO={kernelName:li,backendName:"webgl",kernelFunc:({inputs:r,backend:e})=>{let{image:t}=r,o=e,n=new xC(t.shape);return o.runWebGLProgram(n,[t],t.dtype)}};var lO="return floor(x);",Z7=ve({opSnippet:lO,packedOpSnippet:lO,cpuKernelImpl:Q$}),uO={kernelName:tn,backendName:"webgl",kernelFunc:Z7};var J7=` + `}};var pO={kernelName:li,backendName:"webgl",kernelFunc:({inputs:r,backend:e})=>{let{image:t}=r,o=e,n=new _C(t.shape);return o.runWebGLProgram(n,[t],t.dtype)}};var mO="return floor(x);",tZ=ve({opSnippet:mO,packedOpSnippet:mO,cpuKernelImpl:oR}),fO={kernelName:sn,backendName:"webgl",kernelFunc:tZ};var rZ=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -2884,7 +2884,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } else { return NAN; } -`,Q7=` +`,oZ=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -2905,7 +2905,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,eZ=it({opSnippet:J7,packedOpSnippet:Q7,dtype:"int32"}),cO={kernelName:rn,backendName:"webgl",kernelFunc:eZ};var yC=class{constructor(e){this.variableNames=["A"];let t=Mt(),[o,n]=e;this.outputShape=e,this.userCode=` +`,nZ=it({opSnippet:rZ,packedOpSnippet:oZ,dtype:"int32"}),dO={kernelName:an,backendName:"webgl",kernelFunc:nZ};var wC=class{constructor(e){this.variableNames=["A"];let t=Mt(),[o,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2927,7 +2927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}};var bC=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Mt(),[o,n]=e;this.outputShape=e,this.userCode=` + `}};var kC=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Mt(),[o,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -2961,7 +2961,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${t.output} = result; } - `}};var pO={kernelName:Fc,backendName:"webgl",kernelFunc:tZ},jp;function tZ(r){let{inputs:e,backend:t,attrs:o}=r,{pixels:n}=e,{numChannels:s}=o,a=typeof HTMLVideoElement!="undefined"&&n instanceof HTMLVideoElement,i=typeof HTMLImageElement!="undefined"&&n instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&n instanceof ImageBitmap,[u,c]=a?[n.videoWidth,n.videoHeight]:[n.width,n.height],p=[c,u],m=[c,u,s];(i||a||l)&&(jp==null&&(jp=document.createElement("canvas").getContext("2d")),jp.canvas.width=u,jp.canvas.height=c,jp.drawImage(n,0,0,u,c),n=jp.canvas);let f=t.makeTensorInfo(p,"int32");t.texData.get(f.dataId).usage=Er.PIXELS,t.gpgpu.uploadPixelDataToTexture(t.getTexture(f.dataId),n);let d=G().getBool("WEBGL_PACK")?new bC(m):new yC(m),h=t.runWebGLProgram(d,[f],"int32");return t.disposeData(f.dataId),h}function rZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=N.convertConv2DDataFormat(c),g=N.computeConv2DInfo(n.shape,s.shape,l,p,u,m,!1,h),x,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=Wx({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else if(G().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)x=Ux({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else{let w=a!=null,v=i!=null,$=f==="leakyrelu",A=f?El(f,!1):null,R=new lh(g,w,A,v,$),M=[n,s];if(a&&M.push(a),i&&M.push(i),$){let z=t.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));M.push(z),b.push(z)}x=t.runWebGLProgram(R,M,"float32")}let _=ce({inputs:{x},backend:t,attrs:{shape:g.outShape}});return b.push(x),b.forEach(w=>t.disposeIntermediateTensorInfo(w)),_}var mO={kernelName:_s,backendName:"webgl",kernelFunc:rZ};function oZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=o,d=[],h=c;h==null&&(h=[1,1]),y.assert(N.eitherStridesOrDilationsAreOne(l,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${h}'`);let g=N.computeConv2DInfo(n.shape,s.shape,l,h,u,p,!0),x=G().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=m?El(m,x):null,_=[n,s],w=a!=null,v=i!=null,$=m==="leakyrelu";if(w&&_.push(a),v&&_.push(i),$){let M=t.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));_.push(M),d.push(M)}let A;x?A=new ch(g,w,b,v,$):A=new uh(g,w,b,v,$);let R=t.runWebGLProgram(A,_,"float32");return d.forEach(M=>t.disposeIntermediateTensorInfo(M)),R}var fO={kernelName:ws,backendName:"webgl",kernelFunc:oZ};var _C=class{constructor(e,t,o){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=o;let n=Le(t.length),s=Le(o.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode=` + `}};var hO={kernelName:Oc,backendName:"webgl",kernelFunc:sZ},Xp;function sZ(r){let{inputs:e,backend:t,attrs:o}=r,{pixels:n}=e,{numChannels:s}=o,a=typeof HTMLVideoElement!="undefined"&&n instanceof HTMLVideoElement,i=typeof HTMLImageElement!="undefined"&&n instanceof HTMLImageElement,l=typeof ImageBitmap!="undefined"&&n instanceof ImageBitmap,[u,c]=a?[n.videoWidth,n.videoHeight]:[n.width,n.height],p=[c,u],m=[c,u,s];(i||a||l)&&(Xp==null&&(Xp=document.createElement("canvas").getContext("2d")),Xp.canvas.width=u,Xp.canvas.height=c,Xp.drawImage(n,0,0,u,c),n=Xp.canvas);let f=t.makeTensorInfo(p,"int32");t.texData.get(f.dataId).usage=Er.PIXELS,t.gpgpu.uploadPixelDataToTexture(t.getTexture(f.dataId),n);let d=U().getBool("WEBGL_PACK")?new kC(m):new wC(m),h=t.runWebGLProgram(d,[f],"int32");return t.disposeData(f.dataId),h}function iZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=o,h=N.convertConv2DDataFormat(c),g=N.computeConv2DInfo(n.shape,s.shape,l,p,u,m,!1,h),x,b=[];if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=Xx({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else if(U().getBool("WEBGL_CONV_IM2COL")&&n.shape[0]===1)x=Yx({x:n,filter:s,convInfo:g,backend:t,bias:a,activation:f,preluActivationWeights:i,leakyreluAlpha:d});else{let w=a!=null,v=i!=null,$=f==="leakyrelu",A=f?El(f,!1):null,R=new ph(g,w,A,v,$),M=[n,s];if(a&&M.push(a),i&&M.push(i),$){let V=t.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));M.push(V),b.push(V)}x=t.runWebGLProgram(R,M,"float32")}let _=ce({inputs:{x},backend:t,attrs:{shape:g.outShape}});return b.push(x),b.forEach(w=>t.disposeIntermediateTensorInfo(w)),_}var gO={kernelName:vs,backendName:"webgl",kernelFunc:iZ};function aZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=o,d=[],h=c;h==null&&(h=[1,1]),y.assert(N.eitherStridesOrDilationsAreOne(l,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${h}'`);let g=N.computeConv2DInfo(n.shape,s.shape,l,h,u,p,!0),x=U().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels==1,b=m?El(m,x):null,_=[n,s],w=a!=null,v=i!=null,$=m==="leakyrelu";if(w&&_.push(a),v&&_.push(i),$){let M=t.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));_.push(M),d.push(M)}let A;x?A=new fh(g,w,b,v,$):A=new mh(g,w,b,v,$);let R=t.runWebGLProgram(A,_,"float32");return d.forEach(M=>t.disposeIntermediateTensorInfo(M)),R}var xO={kernelName:Cs,backendName:"webgl",kernelFunc:aZ};var vC=class{constructor(e,t,o){this.sliceDim=e,this.strides=t,this.variableNames=["x","indices"],this.outputShape=o;let n=Le(t.length),s=Le(o.length),a=this.sliceDim>1?"strides[j]":"strides";this.userCode=` ${n} strides = ${n}(${this.strides}); void main() { ${s} coords = getOutputCoords(); @@ -2972,21 +2972,21 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(getX(flattenIndex, coords[1])); } - `}};function nZ(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=n.shape,a=s[s.length-1],[i,l,u,c]=N.prepareAndValidate(o,n),p=ce({inputs:{x:n},backend:t,attrs:{shape:[l,a]}}),m=ce({inputs:{x:o},backend:t,attrs:{shape:[y.sizeFromShape(o.shape)/u,u]}}),f=new _C(a,c,[l,u]),d=t.runWebGLProgram(f,[m,p],m.dtype),h=ce({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(d),h}var dO={kernelName:ui,backendName:"webgl",kernelFunc:nZ};var wC=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let o=Le(this.rank),n=sZ(e,2);this.userCode=` + `}};function lZ(r){let{inputs:e,backend:t}=r,{params:o,indices:n}=e,s=n.shape,a=s[s.length-1],[i,l,u,c]=N.prepareAndValidate(o,n),p=ce({inputs:{x:n},backend:t,attrs:{shape:[l,a]}}),m=ce({inputs:{x:o},backend:t,attrs:{shape:[y.sizeFromShape(o.shape)/u,u]}}),f=new vC(a,c,[l,u]),d=t.runWebGLProgram(f,[m,p],m.dtype),h=ce({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(d),h}var yO={kernelName:ui,backendName:"webgl",kernelFunc:lZ};var CC=class{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;let o=Le(this.rank),n=uZ(e,2);this.userCode=` void main() { ${o} resRC = getOutputCoords(); setOutput(getA(${n})); } - `}};function sZ(r,e){let t=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[];for(let n=0;nt.disposeIntermediateTensorInfo(v)),t.makeTensorInfo(u.outputShape,w.dtype,w.values)}let h=new wC(m.shape,d),g=t.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=ce({inputs:{x:g},backend:t,attrs:{shape:u.outputShape}});return p.forEach(b=>t.disposeIntermediateTensorInfo(b)),x}var hO={kernelName:ls,backendName:"webgl",kernelFunc:iZ};var aZ="return float(a > b);",lZ=` + `}};function uZ(r,e){let t=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[];for(let n=0;nt.disposeIntermediateTensorInfo(v)),t.makeTensorInfo(u.outputShape,w.dtype,w.values)}let h=new CC(m.shape,d),g=t.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=ce({inputs:{x:g},backend:t,attrs:{shape:u.outputShape}});return p.forEach(b=>t.disposeIntermediateTensorInfo(b)),x}var bO={kernelName:ms,backendName:"webgl",kernelFunc:cZ};var pZ="return float(a > b);",mZ=` return vec4(greaterThan(a, b)); -`,uZ=it({opSnippet:aZ,packedOpSnippet:lZ,cpuKernelImpl:tR,dtype:"bool"}),gO={kernelName:ci,backendName:"webgl",kernelFunc:uZ};var cZ="return float(a >= b);",pZ=` +`,fZ=it({opSnippet:pZ,packedOpSnippet:mZ,cpuKernelImpl:sR,dtype:"bool"}),_O={kernelName:ci,backendName:"webgl",kernelFunc:fZ};var dZ="return float(a >= b);",hZ=` return vec4(greaterThanEqual(a, b)); -`,mZ=it({opSnippet:cZ,packedOpSnippet:pZ,dtype:"bool"}),xO={kernelName:nn,backendName:"webgl",kernelFunc:mZ};function fZ(r){let{inputs:e,backend:t}=r,{input:o}=e;return Kx(o,!0,t)}var yO={kernelName:ru,backendName:"webgl",kernelFunc:fZ};var dZ="return float(!isnan(x) && !isinf(x));",hZ=ve({opSnippet:dZ,dtype:"bool"}),bO={kernelName:pi,backendName:"webgl",kernelFunc:hZ};var gZ="return float(isinf(x));",xZ=ve({opSnippet:gZ,dtype:"bool"}),_O={kernelName:mi,backendName:"webgl",kernelFunc:xZ};var yZ="return float(isnan(x));",bZ=ve({opSnippet:yZ,dtype:"bool"}),wO={kernelName:fi,backendName:"webgl",kernelFunc:bZ};var _Z="return float(a < b);",wZ=` +`,gZ=it({opSnippet:dZ,packedOpSnippet:hZ,dtype:"bool"}),wO={kernelName:un,backendName:"webgl",kernelFunc:gZ};function xZ(r){let{inputs:e,backend:t}=r,{input:o}=e;return ey(o,!0,t)}var kO={kernelName:ru,backendName:"webgl",kernelFunc:xZ};var yZ="return float(!isnan(x) && !isinf(x));",bZ=ve({opSnippet:yZ,dtype:"bool"}),vO={kernelName:pi,backendName:"webgl",kernelFunc:bZ};var _Z="return float(isinf(x));",wZ=ve({opSnippet:_Z,dtype:"bool"}),CO={kernelName:mi,backendName:"webgl",kernelFunc:wZ};var kZ="return float(isnan(x));",vZ=ve({opSnippet:kZ,dtype:"bool"}),IO={kernelName:fi,backendName:"webgl",kernelFunc:vZ};var CZ="return float(a < b);",IZ=` return vec4(lessThan(a, b)); -`,kZ=it({opSnippet:_Z,packedOpSnippet:wZ,cpuKernelImpl:rR,dtype:"bool"}),kO={kernelName:di,backendName:"webgl",kernelFunc:kZ};var vZ="return float(a <= b);",CZ=` +`,NZ=it({opSnippet:CZ,packedOpSnippet:IZ,cpuKernelImpl:iR,dtype:"bool"}),NO={kernelName:di,backendName:"webgl",kernelFunc:NZ};var SZ="return float(a <= b);",TZ=` return vec4(lessThanEqual(a, b)); -`,IZ=it({opSnippet:vZ,packedOpSnippet:CZ,dtype:"bool"}),vO={kernelName:hi,backendName:"webgl",kernelFunc:IZ};function NZ(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=oR(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var CO={kernelName:nu,backendName:"webgl",kernelFunc:NZ};var SZ=`if (x < 0.0) return NAN; - return log(x);`,TZ=` +`,EZ=it({opSnippet:SZ,packedOpSnippet:TZ,dtype:"bool"}),SO={kernelName:hi,backendName:"webgl",kernelFunc:EZ};function AZ(r){let{backend:e,attrs:t}=r,{start:o,stop:n,num:s}=t,a=aR(o,n,s);return e.makeTensorInfo([a.length],"float32",a)}var TO={kernelName:nu,backendName:"webgl",kernelFunc:AZ};var DZ=`if (x < 0.0) return NAN; + return log(x);`,$Z=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -2995,16 +2995,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam result.a = isNaN.a == 1.0 ? NAN : result.a; return result; -`,EZ=ve({opSnippet:SZ,packedOpSnippet:TZ,cpuKernelImpl:nR}),IO={kernelName:an,backendName:"webgl",kernelFunc:EZ};var AZ="return log(1.0 + x);",DZ=ve({opSnippet:AZ}),NO={kernelName:gi,backendName:"webgl",kernelFunc:DZ};var $Z="return float(a >= 1.0 && b >= 1.0);",RZ=` +`,RZ=ve({opSnippet:DZ,packedOpSnippet:$Z,cpuKernelImpl:lR}),EO={kernelName:pn,backendName:"webgl",kernelFunc:RZ};var FZ="return log(1.0 + x);",OZ=ve({opSnippet:FZ}),AO={kernelName:gi,backendName:"webgl",kernelFunc:OZ};var PZ="return float(a >= 1.0 && b >= 1.0);",MZ=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,FZ=it({opSnippet:$Z,packedOpSnippet:RZ,dtype:"bool"}),SO={kernelName:xi,backendName:"webgl",kernelFunc:FZ};var OZ="return float(!(x >= 1.0));",PZ=ve({opSnippet:OZ}),TO={kernelName:Za,backendName:"webgl",kernelFunc:PZ};var MZ="return float(a >= 1.0 || b >= 1.0);",LZ=` +`,LZ=it({opSnippet:PZ,packedOpSnippet:MZ,dtype:"bool"}),DO={kernelName:xi,backendName:"webgl",kernelFunc:LZ};var zZ="return float(!(x >= 1.0));",BZ=ve({opSnippet:zZ}),$O={kernelName:Za,backendName:"webgl",kernelFunc:BZ};var VZ="return float(a >= 1.0 || b >= 1.0);",GZ=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,zZ=it({opSnippet:MZ,packedOpSnippet:LZ,dtype:"bool"}),EO={kernelName:Ja,backendName:"webgl",kernelFunc:zZ};var kC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[];let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` +`,WZ=it({opSnippet:VZ,packedOpSnippet:GZ,dtype:"bool"}),RO={kernelName:Ja,backendName:"webgl",kernelFunc:WZ};var IC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[];let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3023,7 +3023,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam float val = x * ${l}; setOutput(val); } - `}};var vC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` + `}};var NC=class{constructor(e,t,o,n,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let a=t,i=e[3]-1;this.outputShape=e;let l,u=`float(${o}) + float(${n}) * sum`;s===.5?l=`inversesqrt(${u})`:s===1?l=`1.0/(${u})`:l=`exp(log(${u}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3085,7 +3085,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam vec4 result = xAtOutputCoords * ${l}; setOutput(result); } - `}};var BZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o,u=G().getBool("WEBGL_PACK_NORMALIZATION")?new vC(n.shape,s,a,i,l):new kC(n.shape,s,a,i,l);return t.runWebGLProgram(u,[n],n.dtype)},AO={kernelName:ca,backendName:"webgl",kernelFunc:BZ};var CC=class{constructor(e,t,o,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=o,this.alpha=n,this.beta=s,this.userCode=` + `}};var UZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{depthRadius:s,bias:a,alpha:i,beta:l}=o,u=U().getBool("WEBGL_PACK_NORMALIZATION")?new NC(n.shape,s,a,i,l):new IC(n.shape,s,a,i,l);return t.runWebGLProgram(u,[n],n.dtype)},FO={kernelName:ca,backendName:"webgl",kernelFunc:UZ};var SC=class{constructor(e,t,o,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=o,this.alpha=n,this.beta=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3140,14 +3140,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(result); } - `}};var VZ=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n,y:s,dy:a}=e,{depthRadius:i,bias:l,alpha:u,beta:c}=o,p=new CC(n.shape,i,l,u,c);return t.runWebGLProgram(p,[n,s,a],n.dtype)},DO={kernelName:su,backendName:"webgl",kernelFunc:VZ};function $O(r,e,t,o){let n=y.sizeFromShape(e),a=y.sizeFromShape(r.shape)/n,i=ce({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=Io(i,r.dtype,"max",o),u=ce({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}function IC(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reductionIndices:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=c!=null,m=t.shouldExecuteOnCPU([n]),f=n;if(p){if(m){let _=t.texData.get(f.dataId).values,w=new Array(i);for(let A=0;A{let{inputs:e,backend:t,attrs:o}=r,{x:n,y:s,dy:a}=e,{depthRadius:i,bias:l,alpha:u,beta:c}=o,p=new SC(n.shape,i,l,u,c);return t.runWebGLProgram(p,[n,s,a],n.dtype)},OO={kernelName:su,backendName:"webgl",kernelFunc:jZ};function PO(r,e,t,o){let n=y.sizeFromShape(e),a=y.sizeFromShape(r.shape)/n,i=ce({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=Io(i,r.dtype,"max",o),u=ce({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}function TC(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{reductionIndices:s,keepDims:a}=o,i=n.shape.length,l=y.parseAxisParam(s,n.shape),u=l,c=N.getAxesPermutation(u,i),p=c!=null,m=t.shouldExecuteOnCPU([n]),f=n;if(p){if(m){let _=t.texData.get(f.dataId).values,w=new Array(i);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return jt({inputs:{x:n},backend:t});let p=new Zi(c,"max",!1);return t.runWebGLProgram(p,[n],n.dtype)}var OO={kernelName:cn,backendName:"webgl",kernelFunc:jZ};function HZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dataFormat:l,dimRoundingMode:u}=o,c=[1,1,1],p=N.computePool3DInfo(n.shape,s,a,c,i,u,l),m=new cc(p,"max",!1);return t.runWebGLProgram(m,[n],n.dtype)}var PO={kernelName:pa,backendName:"webgl",kernelFunc:HZ};var NC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,o=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=s-1-e.padInfo.top,l=a-1-e.padInfo.left,u=s*a-1;this.userCode=` +`,KZ=it({opSnippet:HZ,packedOpSnippet:qZ,cpuKernelImpl:cR}),LO={kernelName:fn,backendName:"webgl",kernelFunc:KZ};function XZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e;Yi(n,"maxPool");let{filterSize:s,strides:a,pad:i,dimRoundingMode:l}=o,u=1;y.assert(N.eitherStridesOrDilationsAreOne(a,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${a} and dilations '${u}'`);let c=N.computePool2DInfo(n.shape,s,a,u,i,l);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return jt({inputs:{x:n},backend:t});let p=new Zi(c,"max",!1);return t.runWebGLProgram(p,[n],n.dtype)}var zO={kernelName:dn,backendName:"webgl",kernelFunc:XZ};function YZ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{filterSize:s,strides:a,pad:i,dataFormat:l,dimRoundingMode:u}=o,c=[1,1,1],p=N.computePool3DInfo(n.shape,s,a,c,i,u,l),m=new pc(p,"max",!1);return t.runWebGLProgram(m,[n],n.dtype)}var BO={kernelName:pa,backendName:"webgl",kernelFunc:YZ};var EC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,o=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=s-1-e.padInfo.top,l=a-1-e.padInfo.left,u=s*a-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${l}); void main() { @@ -3193,7 +3193,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}},SC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterDepth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=l-1-e.padInfo.front,m=u-1-e.padInfo.top,f=c-1-e.padInfo.left,d=l*u*c-1;this.userCode=` + `}},AC=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,o=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,i=e.dilationWidth,l=e.effectiveFilterDepth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=l-1-e.padInfo.front,m=u-1-e.padInfo.top,f=c-1-e.padInfo.left,d=l*u*c-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${m}, ${f}); void main() { @@ -3257,14 +3257,14 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam } setOutput(dotProd); } - `}};function qZ(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s}=e,a=s,{filterSize:i,strides:l,pad:u,dimRoundingMode:c}=o,p=[1,1,1],m=N.computePool3DInfo(a.shape,i,l,p,u,c),f=new cc(m,"max",!0),d=t.runWebGLProgram(f,[a],a.dtype),h=new SC(m),g=t.runWebGLProgram(h,[n,d],a.dtype);return t.disposeIntermediateTensorInfo(d),g}var MO={kernelName:au,backendName:"webgl",kernelFunc:qZ};function KZ(r){let{inputs:e,backend:t,attrs:o}=r,{dy:n,input:s,output:a}=e,i=s;Yi([s,a],"maxPoolGrad");let{filterSize:l,strides:u,pad:c,dimRoundingMode:p}=o,m=N.computePool2DInfo(i.shape,l,u,1,c,p),f=!0,d=new Zi(m,"max",f),h=t.runWebGLProgram(d,[i],i.dtype),g=new NC(m),x=t.runWebGLProgram(g,[n,h],i.dtype);return t.disposeIntermediateTensorInfo(h),x}var LO={kernelName:iu,backendName:"webgl",kernelFunc:KZ};function zO(r,e,t,o){let n=new Zi(t,"max",!1),s=o.runWebGLProgram(n,[r],"float32");n=new Zi(t,"max",!0,!0,e);let a=o.runWebGLProgram(n,[r],"float32");return[s,a]}var BO={kernelName:lu,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let u=[1,1];y.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let c=N.computePool2DInfo(o.shape,n,s,u,a),[p,m]=zO(o,i,c,l);return[p,m]}};function VO(r,e,t,o){let n=y.sizeFromShape(e),a=y.sizeFromShape(r.shape)/n,i=ce({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=Io(i,"float32","mean",o),u=ce({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}var GO={kernelName:pn,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{keepDims:n,axis:s}=e,a=t,i=o.shape.length,l=y.parseAxisParam(s,o.shape),u=l,c=N.getAxesPermutation(u,i),p=c!=null,m=a.shouldExecuteOnCPU([o]),f=[],d=o;if(p){if(m){let w=a.texData.get(d.dataId).values,v=new Array(i);for(let R=0;R{let{x:o}=r,{filterSize:n,strides:s,pad:a,includeBatchInIndex:i}=e,l=t;y.assert(o.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.shape.length}.`);let u=[1,1];y.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let c=N.computePool2DInfo(o.shape,n,s,u,a),[p,m]=WO(o,i,c,l);return[p,m]}};function jO(r,e,t,o){let n=y.sizeFromShape(e),a=y.sizeFromShape(r.shape)/n,i=ce({inputs:{x:r},attrs:{shape:[a,n]},backend:o}),l=Io(i,"float32","mean",o),u=ce({inputs:{x:l},attrs:{shape:t},backend:o});return o.disposeIntermediateTensorInfo(i),o.disposeIntermediateTensorInfo(l),u}var HO={kernelName:hn,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{x:o}=r,{keepDims:n,axis:s}=e,a=t,i=o.shape.length,l=y.parseAxisParam(s,o.shape),u=l,c=N.getAxesPermutation(u,i),p=c!=null,m=a.shouldExecuteOnCPU([o]),f=[],d=o;if(p){if(m){let w=a.texData.get(d.dataId).values,v=new Array(i);for(let R=0;Rc[0]+e[p]+c[1]);let n=e.length,s=Le(n),a=t.map(c=>c[0]).join(","),i=t.map((c,p)=>c[0]+e[p]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=o==="reflect"?0:1;if(n===1){this.userCode=` +`,rJ=it({opSnippet:eJ,packedOpSnippet:tJ,cpuKernelImpl:pR}),KO={kernelName:xn,backendName:"webgl",kernelFunc:rJ};var DC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=t.map((c,p)=>c[0]+e[p]+c[1]);let n=e.length,s=Le(n),a=t.map(c=>c[0]).join(","),i=t.map((c,p)=>c[0]+e[p]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),u=o==="reflect"?0:1;if(n===1){this.userCode=` int start = ${a}; int end = ${i}; @@ -3293,7 +3293,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${s} coords = outC - start; setOutput(getX(${l})); } - `}};var EC=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((d,h)=>d[0]+e[h]+d[1]);let n=e.length,s=Le(n),a=t.map(d=>d[0]).join(","),i=t.map((d,h)=>d[0]+e[h]).join(","),l=Ut("rc",n),u=Ut("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=o==="reflect"?0:1,f="";if(n===1){let d=` + `}};var $C=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((d,h)=>d[0]+e[h]+d[1]);let n=e.length,s=Le(n),a=t.map(d=>d[0]).join(","),i=t.map((d,h)=>d[0]+e[h]).join(","),l=Ut("rc",n),u=Ut("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=o==="reflect"?0:1,f="";if(n===1){let d=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${m}; @@ -3349,13 +3349,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam ${f} setOutput(result); } - `}};var QZ=({inputs:r,backend:e,attrs:t})=>{let{x:o}=r,{paddings:n,mode:s}=t,a=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new EC(o.shape,n,s):new TC(o.shape,n,s);return e.runWebGLProgram(a,[o],o.dtype)},jO={kernelName:ma,backendName:"webgl",kernelFunc:QZ};var e9=`if (b == 0.0) return NAN; - return mod(a, b);`,t9=` + `}};var oJ=({inputs:r,backend:e,attrs:t})=>{let{x:o}=r,{paddings:n,mode:s}=t,a=U().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new $C(o.shape,n,s):new DC(o.shape,n,s);return e.runWebGLProgram(a,[o],o.dtype)},XO={kernelName:ma,backendName:"webgl",kernelFunc:oJ};var nJ=`if (b == 0.0) return NAN; + return mod(a, b);`,sJ=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); `+Tl+` return result; -`,r9=it({opSnippet:e9,packedOpSnippet:t9}),HO={kernelName:yi,backendName:"webgl",kernelFunc:r9};var AC=class{constructor(e,t,o){this.variableNames=["probs"],this.outputShape=[e,o],this.userCode=` +`,iJ=it({opSnippet:nJ,packedOpSnippet:sJ}),YO={kernelName:yi,backendName:"webgl",kernelFunc:iJ};var RC=class{constructor(e,t,o){this.variableNames=["probs"],this.outputShape=[e,o],this.userCode=` uniform float seed; void main() { @@ -3377,11 +3377,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,o7=ve({opSnippet:r7}),uF={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,o)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(o,"seed")),t.gl.uniform1f(this.seedLoc,e)}}};var o9=` + `}getCustomSetupFunc(e){return(t,o)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(o,"seed")),t.gl.uniform1f(this.seedLoc,e)}}};var aJ=` if (a == b) { return 1.0; }; -return a / b;`,n9=` +return a / b;`,lJ=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3399,14 +3399,14 @@ return a / b;`,n9=` } return result; -`,DC=it({opSnippet:o9,packedOpSnippet:n9,checkOutOfBounds:!0}),qO={kernelName:Qo,backendName:"webgl",kernelFunc:DC};var KO="return a - b;",$C=it({opSnippet:KO,packedOpSnippet:KO,supportsComplex:!0,cpuKernelImpl:hR}),XO={kernelName:Dn,backendName:"webgl",kernelFunc:$C};function RC(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=y.parseAxisParam([s],n.shape),i=IC({inputs:{x:n},backend:t,attrs:{reductionIndices:a,keepDims:!1}}),l=N.expandShapeToKeepDim(i.shape,a),u=ce({inputs:{x:i},backend:t,attrs:{shape:l}}),c=$C({inputs:{a:n,b:u},backend:t}),p=hC({inputs:{x:c},backend:t}),m=ah({inputs:{x:p},backend:t,attrs:{axis:a,keepDims:!1}}),f=ce({inputs:{x:m},backend:t,attrs:{shape:l}}),d=DC({inputs:{a:p,b:f},backend:t});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}var YO={kernelName:En,backendName:"webgl",kernelFunc:RC};function s9(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o,l=i?n:RC({inputs:{logits:n},backend:t,attrs:{dim:n.shape.length-1}}),u=l.shape[0],c=l.shape[1],p=new AC(u,c,s),m=p.getCustomSetupFunc(a),f=t.runWebGLProgram(p,[l],"int32",m);return i||t.disposeIntermediateTensorInfo(l),f}var ZO={kernelName:uu,backendName:"webgl",kernelFunc:s9};var JO="return -x;";function i9(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])){let s=t.texData.get(o.dataId),[a,i]=uR(s.values,o.shape,o.dtype);return t.makeTensorInfo(i,o.dtype,a)}let n;return G().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Bs(o.shape,JO):n=new uo(o.shape,JO),t.runWebGLProgram(n,[o],o.dtype)}var QO={kernelName:cs,backendName:"webgl",kernelFunc:i9};var a9=Sr.nonMaxSuppressionV3Impl;function l9(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l}=o,u=t.readSync(n.dataId),c=t.readSync(s.dataId),{selectedIndices:p}=a9(u,c,a,i,l);return t.makeTensorInfo([p.length],"int32",new Int32Array(p))}var eP={kernelName:_i,backendName:"webgl",kernelFunc:l9};var u9=Sr.nonMaxSuppressionV4Impl;function c9(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,padToMaxOutputSize:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=u9(c,p,a,i,l,u);return[t.makeTensorInfo([m.length],"int32",new Int32Array(m)),t.makeTensorInfo([],"int32",new Int32Array([f]))]}var tP={kernelName:wi,backendName:"webgl",kernelFunc:c9};var p9=Sr.nonMaxSuppressionV5Impl;function m9(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,softNmsSigma:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),m=a,f=i,d=l,h=u,{selectedIndices:g,selectedScores:x}=p9(c,p,m,f,d,h);return[t.makeTensorInfo([g.length],"int32",new Int32Array(g)),t.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var rP={kernelName:ki,backendName:"webgl",kernelFunc:m9};var FC=class{constructor(e,t,o,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`,FC=it({opSnippet:aJ,packedOpSnippet:lJ,checkOutOfBounds:!0}),ZO={kernelName:on,backendName:"webgl",kernelFunc:FC};var JO="return a - b;",OC=it({opSnippet:JO,packedOpSnippet:JO,supportsComplex:!0,cpuKernelImpl:bR}),QO={kernelName:On,backendName:"webgl",kernelFunc:OC};function PC(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{dim:s}=o,a=y.parseAxisParam([s],n.shape),i=TC({inputs:{x:n},backend:t,attrs:{reductionIndices:a,keepDims:!1}}),l=N.expandShapeToKeepDim(i.shape,a),u=ce({inputs:{x:i},backend:t,attrs:{shape:l}}),c=OC({inputs:{a:n,b:u},backend:t}),p=yC({inputs:{x:c},backend:t}),m=ch({inputs:{x:p},backend:t,attrs:{axis:a,keepDims:!1}}),f=ce({inputs:{x:m},backend:t,attrs:{shape:l}}),d=FC({inputs:{a:p,b:f},backend:t});return t.disposeIntermediateTensorInfo(i),t.disposeIntermediateTensorInfo(u),t.disposeIntermediateTensorInfo(c),t.disposeIntermediateTensorInfo(p),t.disposeIntermediateTensorInfo(m),t.disposeIntermediateTensorInfo(f),d}var eP={kernelName:Rn,backendName:"webgl",kernelFunc:PC};function uJ(r){let{inputs:e,backend:t,attrs:o}=r,{logits:n}=e,{numSamples:s,seed:a,normalized:i}=o,l=i?n:PC({inputs:{logits:n},backend:t,attrs:{dim:n.shape.length-1}}),u=l.shape[0],c=l.shape[1],p=new RC(u,c,s),m=p.getCustomSetupFunc(a),f=t.runWebGLProgram(p,[l],"int32",m);return i||t.disposeIntermediateTensorInfo(l),f}var tP={kernelName:uu,backendName:"webgl",kernelFunc:uJ};var rP="return -x;";function cJ(r){let{inputs:e,backend:t}=r,{x:o}=e;if(t.shouldExecuteOnCPU([o])){let s=t.texData.get(o.dataId),[a,i]=fR(s.values,o.shape,o.dtype);return t.makeTensorInfo(i,o.dtype,a)}let n;return U().getBool("WEBGL_PACK_UNARY_OPERATIONS")?n=new Gs(o.shape,rP):n=new uo(o.shape,rP),t.runWebGLProgram(n,[o],o.dtype)}var oP={kernelName:fs,backendName:"webgl",kernelFunc:cJ};var pJ=Sr.nonMaxSuppressionV3Impl;function mJ(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l}=o,u=t.readSync(n.dataId),c=t.readSync(s.dataId),{selectedIndices:p}=pJ(u,c,a,i,l);return t.makeTensorInfo([p.length],"int32",new Int32Array(p))}var nP={kernelName:_i,backendName:"webgl",kernelFunc:mJ};var fJ=Sr.nonMaxSuppressionV4Impl;function dJ(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,padToMaxOutputSize:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=fJ(c,p,a,i,l,u);return[t.makeTensorInfo([m.length],"int32",new Int32Array(m)),t.makeTensorInfo([],"int32",new Int32Array([f]))]}var sP={kernelName:wi,backendName:"webgl",kernelFunc:dJ};var hJ=Sr.nonMaxSuppressionV5Impl;function gJ(r){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:e,backend:t,attrs:o}=r,{boxes:n,scores:s}=e,{maxOutputSize:a,iouThreshold:i,scoreThreshold:l,softNmsSigma:u}=o,c=t.readSync(n.dataId),p=t.readSync(s.dataId),m=a,f=i,d=l,h=u,{selectedIndices:g,selectedScores:x}=hJ(c,p,m,f,d,h);return[t.makeTensorInfo([g.length],"int32",new Int32Array(g)),t.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var iP={kernelName:ki,backendName:"webgl",kernelFunc:gJ};var MC=class{constructor(e,t,o,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${n}), float(${o}), float(index == coords.y))); } - `}};var f9=r=>{let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=y.sizeFromShape(n.shape),u=new FC(l,s,a,i),c=ce({inputs:{x:n},backend:t,attrs:{shape:[l]}}),p=t.runWebGLProgram(u,[c],n.dtype);t.disposeIntermediateTensorInfo(c);let m=[...n.shape,s],f=ce({inputs:{x:p},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(p),f},oP={kernelName:hn,backendName:"webgl",kernelFunc:f9};function mh(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="complex64"){let n=ja({inputs:{input:o},backend:t}),s=mh({inputs:{x:n},backend:t}),a=pc({inputs:{input:o},backend:t}),i=mh({inputs:{x:a},backend:t}),l=co({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return ph({attrs:{shape:o.shape,dtype:o.dtype,value:o.dtype==="string"?"":0},backend:t})}var nP={kernelName:ys,backendName:"webgl",kernelFunc:mh};function sP(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(o.dtype==="complex64"){let n=ja({inputs:{input:o},backend:t}),s=sP({inputs:{x:n},backend:t}),a=pc({inputs:{input:o},backend:t}),i=mh({inputs:{x:a},backend:t}),l=co({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return ph({attrs:{shape:o.shape,dtype:o.dtype,value:1},backend:t})}var iP={kernelName:ps,backendName:"webgl",kernelFunc:sP};function d9(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return Hx({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Hx({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=rC({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var aP={kernelName:ms,backendName:"webgl",kernelFunc:d9};var OC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=t.map((u,c)=>u[0]+e[c]+u[1]);let n=e.length,s=Le(n),a=t.map(u=>u[0]).join(","),i=t.map((u,c)=>u[0]+e[c]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` + `}};var xJ=r=>{let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=y.sizeFromShape(n.shape),u=new MC(l,s,a,i),c=ce({inputs:{x:n},backend:t,attrs:{shape:[l]}}),p=t.runWebGLProgram(u,[c],n.dtype);t.disposeIntermediateTensorInfo(c);let m=[...n.shape,s],f=ce({inputs:{x:p},backend:t,attrs:{shape:m}});return t.disposeIntermediateTensorInfo(p),f},aP={kernelName:bn,backendName:"webgl",kernelFunc:xJ};function hh(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="complex64"){let n=ja({inputs:{input:o},backend:t}),s=hh({inputs:{x:n},backend:t}),a=mc({inputs:{input:o},backend:t}),i=hh({inputs:{x:a},backend:t}),l=co({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return dh({attrs:{shape:o.shape,dtype:o.dtype,value:o.dtype==="string"?"":0},backend:t})}var lP={kernelName:ws,backendName:"webgl",kernelFunc:hh};function uP(r){let{inputs:e,backend:t}=r,{x:o}=e;if(o.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(o.dtype==="complex64"){let n=ja({inputs:{input:o},backend:t}),s=uP({inputs:{x:n},backend:t}),a=mc({inputs:{input:o},backend:t}),i=hh({inputs:{x:a},backend:t}),l=co({inputs:{real:s,imag:i},backend:t});return t.disposeIntermediateTensorInfo(n),t.disposeIntermediateTensorInfo(s),t.disposeIntermediateTensorInfo(a),t.disposeIntermediateTensorInfo(i),l}else return dh({attrs:{shape:o.shape,dtype:o.dtype,value:1},backend:t})}var cP={kernelName:ds,backendName:"webgl",kernelFunc:uP};function yJ(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return Jx({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=[],l=e.map(c=>{let p=Jx({inputs:{input:c},backend:t,attrs:{dim:n}});return i.push(p),p}),u=sC({inputs:l,backend:t,attrs:{axis:n}});return i.forEach(c=>t.disposeIntermediateTensorInfo(c)),u}var pP={kernelName:hs,backendName:"webgl",kernelFunc:yJ};var LC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=t.map((u,c)=>u[0]+e[c]+u[1]);let n=e.length,s=Le(n),a=t.map(u=>u[0]).join(","),i=t.map((u,c)=>u[0]+e[c]).join(","),l=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` int start = ${a}; int end = ${i}; @@ -3431,7 +3431,7 @@ return a / b;`,n9=` setOutput(getX(${l})); } } - `}};var PC=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,g)=>h[0]+e[g]+h[1]);let n=e.length,s=Le(n),a=t.map(h=>h[0]).join(","),i=t.map((h,g)=>h[0]+e[g]).join(","),l=Ut("rc",n),u=Ut("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${l[n-1]} += 1; + `}};var zC=class{constructor(e,t,o){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,g)=>h[0]+e[g]+h[1]);let n=e.length,s=Le(n),a=t.map(h=>h[0]).join(","),i=t.map((h,g)=>h[0]+e[g]).join(","),l=Ut("rc",n),u=Ut("source",n),c=`${l[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${u.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${l[n-1]} += 1; if(${c}) { `,n===1?"":`} rc = outputLoc; @@ -3455,7 +3455,7 @@ return a / b;`,n9=` ${d} setOutput(result); } - `}};var MC=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o,i=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new PC(n.shape,s,a):new OC(n.shape,s,a);return t.runWebGLProgram(i,[n],n.dtype)},lP={kernelName:gn,backendName:"webgl",kernelFunc:MC};var h9=` + `}};var BC=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{paddings:s,constantValue:a}=o,i=U().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new zC(n.shape,s,a):new LC(n.shape,s,a);return t.runWebGLProgram(i,[n],n.dtype)},mP={kernelName:_n,backendName:"webgl",kernelFunc:BC};var bJ=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -3464,7 +3464,7 @@ return a / b;`,n9=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,g9=` +`,_J=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -3480,9 +3480,9 @@ return a / b;`,n9=` vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); `+Tl+` return result; -`,x9=it({opSnippet:h9,packedOpSnippet:g9}),uP={kernelName:xn,backendName:"webgl",kernelFunc:x9};function y9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=[],u=y.parseAxisParam(s,n.shape),c=u,p=N.getAxesPermutation(c,i),m=n;p!=null&&(m=Lt({inputs:{x:n},backend:t,attrs:{perm:p}}),c=N.getInnerMostAxes(c.length,i),l.push(m)),N.assertAxesAreInnerMostDims("prod",c,i);let f;if(t.shouldExecuteOnCPU([m])){let d=t.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=cR(m.shape,m.dtype,d,c);f=t.makeTensorInfo(g,x,h)}else{let[d,h]=N.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=ce({inputs:{x:m},backend:t,attrs:{shape:[-1,g]}}),b=hu(n.dtype),_=Io(x,b,"prod",t);f=ce({inputs:{x:_},backend:t,attrs:{shape:d}}),l.push(x),l.push(_)}if(a){l.push(f);let d=N.expandShapeToKeepDim(f.shape,u);f=ce({inputs:{x:f},backend:t,attrs:{shape:d}})}return l.forEach(d=>t.disposeIntermediateTensorInfo(d)),f}var cP={kernelName:vi,backendName:"webgl",kernelFunc:y9};var LC=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=pR(o,n,s,a);return e.makeTensorInfo([i.length],a,i)},pP={kernelName:fa,backendName:"webgl",kernelFunc:LC};var b9="return 1.0 / x;",_9=ve({opSnippet:b9}),mP={kernelName:Ci,backendName:"webgl",kernelFunc:_9};var w9=gr+` +`,wJ=it({opSnippet:bJ,packedOpSnippet:_J}),fP={kernelName:wn,backendName:"webgl",kernelFunc:wJ};function kJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{axis:s,keepDims:a}=o,i=n.shape.length,l=[],u=y.parseAxisParam(s,n.shape),c=u,p=N.getAxesPermutation(c,i),m=n;p!=null&&(m=Lt({inputs:{x:n},backend:t,attrs:{perm:p}}),c=N.getInnerMostAxes(c.length,i),l.push(m)),N.assertAxesAreInnerMostDims("prod",c,i);let f;if(t.shouldExecuteOnCPU([m])){let d=t.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=dR(m.shape,m.dtype,d,c);f=t.makeTensorInfo(g,x,h)}else{let[d,h]=N.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=ce({inputs:{x:m},backend:t,attrs:{shape:[-1,g]}}),b=gu(n.dtype),_=Io(x,b,"prod",t);f=ce({inputs:{x:_},backend:t,attrs:{shape:d}}),l.push(x),l.push(_)}if(a){l.push(f);let d=N.expandShapeToKeepDim(f.shape,u);f=ce({inputs:{x:f},backend:t,attrs:{shape:d}})}return l.forEach(d=>t.disposeIntermediateTensorInfo(d)),f}var dP={kernelName:vi,backendName:"webgl",kernelFunc:kJ};var VC=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=hR(o,n,s,a);return e.makeTensorInfo([i.length],a,i)},hP={kernelName:fa,backendName:"webgl",kernelFunc:VC};var vJ="return 1.0 / x;",CJ=ve({opSnippet:vJ}),gP={kernelName:Ci,backendName:"webgl",kernelFunc:CJ};var IJ=gr+` return (x < 0.0) ? 0.0 : x; -`,k9=` +`,NJ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3492,9 +3492,9 @@ return a / b;`,n9=` result.a = isNaN.a ? x.a : result.a; return result; -`,v9=ve({opSnippet:w9,packedOpSnippet:k9}),fP={kernelName:bn,backendName:"webgl",kernelFunc:v9};var C9=gr+` +`,SJ=ve({opSnippet:IJ,packedOpSnippet:NJ}),xP={kernelName:vn,backendName:"webgl",kernelFunc:SJ};var TJ=gr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,I9=` +`,EJ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -3504,7 +3504,7 @@ return a / b;`,n9=` result.a = isNaN.a ? x.a : result.a; return result; -`,N9=ve({opSnippet:C9,packedOpSnippet:I9}),dP={kernelName:wn,backendName:"webgl",kernelFunc:N9};var zC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,AJ=ve({opSnippet:TJ,packedOpSnippet:EJ}),yP={kernelName:In,backendName:"webgl",kernelFunc:AJ};var GC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -3537,7 +3537,7 @@ return a / b;`,n9=` setOutput(newValue); } - `}};var BC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};var WC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -3614,7 +3614,7 @@ return a / b;`,n9=` setOutput(newValue); } - `}};function S9(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=G().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new BC(n.shape,l,u,s,a):new zC(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],"float32")}var hP={kernelName:_n,backendName:"webgl",kernelFunc:S9};var VC=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function DJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=U().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new WC(n.shape,l,u,s,a):new GC(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],"float32")}var bP={kernelName:Cn,backendName:"webgl",kernelFunc:DJ};var UC=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3695,7 +3695,7 @@ return a / b;`,n9=` setOutput(accumulator); } - `}};function T9(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new VC(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var gP={kernelName:mu,backendName:"webgl",kernelFunc:T9};var GC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m=n?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function $J(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new UC(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var _P={kernelName:mu,backendName:"webgl",kernelFunc:$J};var jC=class{constructor(e,t,o,n,s){this.variableNames=["A"],this.outputShape=[];let[a,i,l,u]=e;this.outputShape=[a,t,o,u];let c=[n&&t>1?i-1:i,n&&o>1?l-1:l],p=[n&&t>1?t-1:t,n&&o>1?o-1:o],m=n?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -3717,7 +3717,7 @@ return a / b;`,n9=` setOutput(newValue); } - `}};function E9(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=new GC(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],n.dtype)}var xP={kernelName:da,backendName:"webgl",kernelFunc:E9};var WC=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function RJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n}=e,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,c=new jC(n.shape,l,u,s,a);return t.runWebGLProgram(c,[n],n.dtype)}var wP={kernelName:da,backendName:"webgl",kernelFunc:RJ};var HC=class{constructor(e,t,o){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,n,s]=t,[,a,i]=e,l=[o&&a>1?n-1:n,o&&i>1?s-1:s],u=[o&&a>1?a-1:a,o&&i>1?i-1:i],c=l[0]/u[0],p=l[1]/u[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3787,7 +3787,7 @@ return a / b;`,n9=` setOutput(accumulator); } - `}};function A9(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new WC(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var yP={kernelName:pu,backendName:"webgl",kernelFunc:A9};var UC=class{constructor(e,t){this.variableNames=["x"];let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);if(this.outputShape=e,o===1){this.userCode=` + `}};function FJ(r){let{inputs:e,backend:t,attrs:o}=r,{images:n,dy:s}=e,{alignCorners:a}=o,i=new HC(s.shape,n.shape,a);return t.runWebGLProgram(i,[s],s.dtype)}var kP={kernelName:pu,backendName:"webgl",kernelFunc:FJ};var qC=class{constructor(e,t){this.variableNames=["x"];let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);if(this.outputShape=e,o===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -3797,7 +3797,7 @@ return a / b;`,n9=` ${a} coords = getOutputCoords(); setOutput(getX(${s})); } - `}};var jC=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);this.outputShape=e;let n=Ut("rc",o),s=`${n[o-1]} + 1 < ${this.outputShape[o-1]}`,a=`${n[o-2]} + 1 < ${this.outputShape[o-2]}`,i=Le(o);o===1?this.userCode=` + `}};var KC=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let o=e.length;if(o>4)throw new Error(`WebGL backend: Reverse of rank-${o} tensor is not yet supported`);this.outputShape=e;let n=Ut("rc",o),s=`${n[o-1]} + 1 < ${this.outputShape[o-1]}`,a=`${n[o-2]} + 1 < ${this.outputShape[o-2]}`,i=Le(o);o===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3825,7 +3825,7 @@ return a / b;`,n9=` } setOutput(result); } - `;function l(d){return m(d)}function u(d){return d[o-1]="("+d[o-1]+" + 1)",m(d)}function c(d){return d[o-2]="("+d[o-2]+" + 1)",m(d)}function p(d){return d[o-1]="("+d[o-1]+" + 1)",d[o-2]="("+d[o-2]+" + 1)",m(d)}function m(d){let h=e.map((b,_)=>f(_,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return t.indexOf(d)!==-1&&e[d]!==1?`${e[d]} - ${h[d]} - 1`:`${h[d]}`}}};function D9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=n.shape.length,i=y.parseAxisParam(s,n.shape);if(a===0)return jt({inputs:{x:n},backend:t});let l=G().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new jC(n.shape,i):new UC(n.shape,i);return t.runWebGLProgram(l,[n],n.dtype)}var bP={kernelName:kn,backendName:"webgl",kernelFunc:D9};var HC=class{constructor(e,t,o,n){this.variableNames=["Image"],this.outputShape=[];let s=e[1],a=e[2],i=Math.sin(t).toFixed(3),l=Math.cos(t).toFixed(3);this.outputShape=e;let[u,c]=N.getImageCenter(n,s,a),p=u.toFixed(3),m=c.toFixed(3),f="";typeof o=="number"?f=`float outputValue = ${o.toFixed(2)};`:f=` + `;function l(d){return m(d)}function u(d){return d[o-1]="("+d[o-1]+" + 1)",m(d)}function c(d){return d[o-2]="("+d[o-2]+" + 1)",m(d)}function p(d){return d[o-1]="("+d[o-1]+" + 1)",d[o-2]="("+d[o-2]+" + 1)",m(d)}function m(d){let h=e.map((b,_)=>f(_,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return t.indexOf(d)!==-1&&e[d]!==1?`${e[d]} - ${h[d]} - 1`:`${h[d]}`}}};function OJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=n.shape.length,i=y.parseAxisParam(s,n.shape);if(a===0)return jt({inputs:{x:n},backend:t});let l=U().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new KC(n.shape,i):new qC(n.shape,i);return t.runWebGLProgram(l,[n],n.dtype)}var vP={kernelName:Nn,backendName:"webgl",kernelFunc:OJ};var XC=class{constructor(e,t,o,n){this.variableNames=["Image"],this.outputShape=[];let s=e[1],a=e[2],i=Math.sin(t).toFixed(3),l=Math.cos(t).toFixed(3);this.outputShape=e;let[u,c]=N.getImageCenter(n,s,a),p=u.toFixed(3),m=c.toFixed(3),f="";typeof o=="number"?f=`float outputValue = ${o.toFixed(2)};`:f=` vec3 fill = vec3(${o.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -3842,7 +3842,7 @@ return a / b;`,n9=` } setOutput(outputValue); } - `}};var _P={kernelName:Ri,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=new HC(o.shape,n,s,a);return i.runWebGLProgram(l,[o],o.dtype)}};var $9=` + `}};var CP={kernelName:Ri,backendName:"webgl",kernelFunc:({inputs:r,attrs:e,backend:t})=>{let{image:o}=r,{radians:n,fillValue:s,center:a}=e,i=t,l=new XC(o.shape,n,s,a);return i.runWebGLProgram(l,[o],o.dtype)}};var PJ=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3857,7 +3857,7 @@ return a / b;`,n9=` return base + 1.0; } } -`,R9=ve({opSnippet:$9}),wP={kernelName:vn,backendName:"webgl",kernelFunc:R9};var F9="return inversesqrt(x);",O9=ve({opSnippet:F9,cpuKernelImpl:mR}),kP={kernelName:Cn,backendName:"webgl",kernelFunc:O9};var fh=class{constructor(e,t,o,n,s,a,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;let l=Le(s.length),u=Le(a.length),c="";o===1?c="i":o===2&&(c="i, j");let p=`getIndices(${c})`,m="";n===1?m="i":n===2&&(m="i, coords[1]");let f=`getUpdates(${m})`,d=t>1?"strides[j]":"strides";this.userCode=` +`,MJ=ve({opSnippet:PJ}),IP={kernelName:Sn,backendName:"webgl",kernelFunc:MJ};var LJ="return inversesqrt(x);",zJ=ve({opSnippet:LJ,cpuKernelImpl:gR}),NP={kernelName:Tn,backendName:"webgl",kernelFunc:zJ};var gh=class{constructor(e,t,o,n,s,a,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=a;let l=Le(s.length),u=Le(a.length),c="";o===1?c="i":o===2&&(c="i, j");let p=`getIndices(${c})`,m="";n===1?m="i":n===2&&(m="i, coords[1]");let f=`getUpdates(${m})`,d=t>1?"strides[j]":"strides";this.userCode=` ${l} strides = ${l}(${s}); void main() { @@ -3877,7 +3877,7 @@ return a / b;`,n9=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function P9(r){let{inputs:e,backend:t,attrs:o}=r,{indices:n,updates:s}=e,{shape:a}=o,{sliceRank:i,numUpdates:l,sliceSize:u,strides:c,outputSize:p}=N.calculateShapes(s,n,a),m=[p/u,u];if(p===0)return t.makeTensorInfo(a,n.dtype);let f=ce({inputs:{x:n},backend:t,attrs:{shape:[l,i]}}),d=ce({inputs:{x:s},backend:t,attrs:{shape:[l,u]}}),h=t.makeTensorInfo([],"float32",new Float32Array([0])),g=new fh(l,i,f.shape.length,d.shape.length,c,m),x=t.runWebGLProgram(g,[d,f,h],d.dtype),b=ce({inputs:{x},backend:t,attrs:{shape:a}});return t.disposeIntermediateTensorInfo(f),t.disposeIntermediateTensorInfo(d),t.disposeIntermediateTensorInfo(x),t.disposeIntermediateTensorInfo(h),b}var vP={kernelName:Ii,backendName:"webgl",kernelFunc:P9};var qC=class{constructor(e,t,o){this.variableNames=["c","a","b"],this.outputShape=t;let n,s;if(o>4)throw Error(`Where for rank ${o} is not yet supported`);if(o===1)s="resRC",n="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],l=[],u=[];for(let c=0;c4)throw Error(`Where for rank ${o} is not yet supported`);if(o===1)s="resRC",n="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],l=[],u=[];for(let c=0;c= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,z9=ve({opSnippet:L9}),IP={kernelName:Ni,backendName:"webgl",kernelFunc:z9};var B9="return 1.0 / (1.0 + exp(-1.0 * x));",V9=ve({opSnippet:B9}),NP={kernelName:Nn,backendName:"webgl",kernelFunc:V9};var G9=` +`,WJ=ve({opSnippet:GJ}),EP={kernelName:Ni,backendName:"webgl",kernelFunc:WJ};var UJ="return 1.0 / (1.0 + exp(-1.0 * x));",jJ=ve({opSnippet:UJ}),AP={kernelName:An,backendName:"webgl",kernelFunc:jJ};var HJ=` if (isnan(x)) { return 0.0; } return sign(x); -`,W9=ve({opSnippet:G9}),SP={kernelName:Ti,backendName:"webgl",kernelFunc:W9};var U9=Mx+` +`,qJ=ve({opSnippet:HJ}),DP={kernelName:Ti,backendName:"webgl",kernelFunc:qJ};var KJ=Wx+` return sin(x); -`,j9=ve({opSnippet:U9}),TP={kernelName:In,backendName:"webgl",kernelFunc:j9};var H9=` +`,XJ=ve({opSnippet:KJ}),$P={kernelName:En,backendName:"webgl",kernelFunc:XJ};var YJ=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,q9=ve({opSnippet:H9}),EP={kernelName:Si,backendName:"webgl",kernelFunc:q9};var K9=` +`,ZJ=ve({opSnippet:YJ}),RP={kernelName:Si,backendName:"webgl",kernelFunc:ZJ};var JJ=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3921,9 +3921,9 @@ return a / b;`,n9=` result = log(exp_x + 1.0); } return result; -`,X9=ve({opSnippet:K9}),AP={kernelName:Ei,backendName:"webgl",kernelFunc:X9};var Y9=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,paddings:a}=o;y.assert(n.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((x,b)=>x*b),l=[[0,0]];l.push(...a);for(let x=1+s.length;xt.disposeIntermediateTensorInfo(x)),g},DP={kernelName:ha,backendName:"webgl",kernelFunc:Y9};function Z9(r){let{inputs:e,backend:t,attrs:o}=r,{sparseIndices:n,sparseValues:s,defaultValue:a}=e,{outputShape:i}=o,{sliceRank:l,numUpdates:u,strides:c,outputSize:p}=N.calculateShapes(s,n,i),m=!1,f=new fh(u,l,n.shape.length,s.shape.length,c,[p,1],m),d=t.runWebGLProgram(f,[s,n,a],s.dtype),h=ce({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(d),h}var $P={kernelName:fu,backendName:"webgl",kernelFunc:Z9};function J9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{numOrSizeSplits:s,axis:a}=o,i=y.parseAxisParam(a,n.shape)[0],l=N.prepareSplitSize(n,s,i),u=n.shape.length,c=new Array(u).fill(0),p=n.shape.slice();return l.map(m=>{let f=[...p];f[i]=m;let d=Ua({inputs:{x:n},backend:t,attrs:{begin:c,size:f}});return c[i]+=m,d})}var RP={kernelName:gs,backendName:"webgl",kernelFunc:J9};var Q9="return sqrt(x);",eJ=ve({opSnippet:Q9}),FP={kernelName:Sn,backendName:"webgl",kernelFunc:eJ};var tJ="return x * x;",rJ=ve({opSnippet:tJ}),OP={kernelName:ga,backendName:"webgl",kernelFunc:rJ};var PP="return (a - b) * (a - b);",oJ=it({opSnippet:PP,packedOpSnippet:PP}),MP={kernelName:An,backendName:"webgl",kernelFunc:oJ};function nJ({inputs:r,attrs:e,backend:t}){let{x:o}=r,n=gr+` +`,QJ=ve({opSnippet:JJ}),FP={kernelName:Ei,backendName:"webgl",kernelFunc:QJ};var e9=r=>{let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{blockShape:s,paddings:a}=o;y.assert(n.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let i=s.reduce((x,b)=>x*b),l=[[0,0]];l.push(...a);for(let x=1+s.length;xt.disposeIntermediateTensorInfo(x)),g},OP={kernelName:ha,backendName:"webgl",kernelFunc:e9};function t9(r){let{inputs:e,backend:t,attrs:o}=r,{sparseIndices:n,sparseValues:s,defaultValue:a}=e,{outputShape:i}=o,{sliceRank:l,numUpdates:u,strides:c,outputSize:p}=N.calculateShapes(s,n,i),m=!1,f=new gh(u,l,n.shape.length,s.shape.length,c,[p,1],m),d=t.runWebGLProgram(f,[s,n,a],s.dtype),h=ce({inputs:{x:d},backend:t,attrs:{shape:i}});return t.disposeIntermediateTensorInfo(d),h}var PP={kernelName:fu,backendName:"webgl",kernelFunc:t9};function r9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{numOrSizeSplits:s,axis:a}=o,i=y.parseAxisParam(a,n.shape)[0],l=N.prepareSplitSize(n,s,i),u=n.shape.length,c=new Array(u).fill(0),p=n.shape.slice();return l.map(m=>{let f=[...p];f[i]=m;let d=Ua({inputs:{x:n},backend:t,attrs:{begin:c,size:f}});return c[i]+=m,d})}var MP={kernelName:bs,backendName:"webgl",kernelFunc:r9};var o9="return sqrt(x);",n9=ve({opSnippet:o9}),LP={kernelName:Dn,backendName:"webgl",kernelFunc:n9};var s9="return x * x;",i9=ve({opSnippet:s9}),zP={kernelName:ga,backendName:"webgl",kernelFunc:i9};var BP="return (a - b) * (a - b);",a9=it({opSnippet:BP,packedOpSnippet:BP}),VP={kernelName:Fn,backendName:"webgl",kernelFunc:a9};function l9({inputs:r,attrs:e,backend:t}){let{x:o}=r,n=gr+` return x > 0.0 ? 1.0 : float(${e.alpha}); - `,s=new uo(o.shape,n);return t.runWebGLProgram(s,[o],o.dtype)}var LP={kernelName:Do,backendName:"webgl",kernelFunc:nJ};var KC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=o;let n=o.length,s=Le(o.length),a=Le(o.length),i="";if(n===1)i="coords * strides + begin";else{let l=0;i=o.map((u,c)=>(l++,o.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${l-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new uo(o.shape,n);return t.runWebGLProgram(s,[o],o.dtype)}var GP={kernelName:$o,backendName:"webgl",kernelFunc:l9};var ZC=class{constructor(e,t,o){this.variableNames=["x"],this.outputShape=o;let n=o.length,s=Le(o.length),a=Le(o.length),i="";if(n===1)i="coords * strides + begin";else{let l=0;i=o.map((u,c)=>(l++,o.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${l-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${e}); ${s} strides = ${s}(${t}); @@ -3931,15 +3931,15 @@ return a / b;`,n9=` ${a} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function sJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,{nonStrided:f,$begin:d,$strides:h,size:g,newShape:x,outShape:b}=or.sliceInfo(n.shape,s,a,i,l,u,c,p,m),_=ce({inputs:{x:n},backend:t,attrs:{shape:x}}),w;if(f){let $=Ua({inputs:{x:_},backend:t,attrs:{begin:d,size:g}});w=ce({inputs:{x:$},backend:t,attrs:{shape:b}}),t.disposeIntermediateTensorInfo($)}else if(b.some($=>$===0))w=t.makeTensorInfo(b,n.dtype,[]);else if(t.shouldExecuteOnCPU([_])){let R=t.texData.get(_.dataId).values,M=Ce(_.shape,_.dtype,R),z=dR(b,M,h,d);w=t.makeTensorInfo(b,_.dtype,z.values)}else{let A=new KC(d,h,b);w=t.runWebGLProgram(A,[_],_.dtype)}let v=ce({inputs:{x:w},backend:t,attrs:{shape:b}});return t.disposeIntermediateTensorInfo(_),t.disposeIntermediateTensorInfo(w),v}var zP={kernelName:Ai,backendName:"webgl",kernelFunc:sJ};var iJ="return tan(x);",aJ=ve({opSnippet:iJ}),BP={kernelName:Di,backendName:"webgl",kernelFunc:aJ};var lJ=` + `}};function u9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{begin:s,end:a,strides:i,beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,{nonStrided:f,$begin:d,$strides:h,size:g,newShape:x,outShape:b}=or.sliceInfo(n.shape,s,a,i,l,u,c,p,m),_=ce({inputs:{x:n},backend:t,attrs:{shape:x}}),w;if(f){let $=Ua({inputs:{x:_},backend:t,attrs:{begin:d,size:g}});w=ce({inputs:{x:$},backend:t,attrs:{shape:b}}),t.disposeIntermediateTensorInfo($)}else if(b.some($=>$===0))w=t.makeTensorInfo(b,n.dtype,[]);else if(t.shouldExecuteOnCPU([_])){let R=t.texData.get(_.dataId).values,M=Ce(_.shape,_.dtype,R),V=yR(b,M,h,d);w=t.makeTensorInfo(b,_.dtype,V.values)}else{let A=new ZC(d,h,b);w=t.runWebGLProgram(A,[_],_.dtype)}let v=ce({inputs:{x:w},backend:t,attrs:{shape:b}});return t.disposeIntermediateTensorInfo(_),t.disposeIntermediateTensorInfo(w),v}var WP={kernelName:Ai,backendName:"webgl",kernelFunc:u9};var c9="return tan(x);",p9=ve({opSnippet:c9}),UP={kernelName:Di,backendName:"webgl",kernelFunc:p9};var m9=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,uJ=ve({opSnippet:lJ}),VP={kernelName:$n,backendName:"webgl",kernelFunc:uJ};var XC=class{constructor(e,t){this.variableNames=["A"];let o=new Array(e.length);for(let a=0;a5)throw Error(`Tile for rank ${e} is not yet supported`);if(e===1)return`imod(resRC, ${r[0]})`;let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],o=[];for(let n=0;ny.decodeString(m)),c=Ce(n.shape,n.dtype,u),p=gR(c,s);return t.makeTensorInfo(p.shape,p.dtype,p.values)}let a=new XC(n.shape,s);return t.runWebGLProgram(a,[n],n.dtype)}var GP={kernelName:yo,backendName:"webgl",kernelFunc:YC};function pJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o,i=t.readSync(n.dataId),[l,u]=xR(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var WP={kernelName:$i,backendName:"webgl",kernelFunc:pJ};function mJ(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;Yi(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let a=o.readSync(s.dataId),{outputValues:i,outputShape:l,indices:u}=yR(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var UP={kernelName:du,backendName:"webgl",kernelFunc:mJ};function fJ(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n,i=a.shape.length,l=n.shape[s],u=new Array(i-1),c=0;for(let h=0;ht.disposeIntermediateTensorInfo(h)),d}var jP={kernelName:xs,backendName:"webgl",kernelFunc:fJ};var ZC=class{constructor(e,t){this.variableNames=["x","segmentIds"];let o=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,i=a*Math.ceil(s/o);this.outputShape=[n,i];let l="0.0",u="sumValue",c=Math.floor(o/4)*4,p=o%4,m=` + `}};function d9(r){let e=r.length;if(e>5)throw Error(`Tile for rank ${e} is not yet supported`);if(e===1)return`imod(resRC, ${r[0]})`;let t=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],o=[];for(let n=0;ny.decodeString(m)),c=Ce(n.shape,n.dtype,u),p=_R(c,s);return t.makeTensorInfo(p.shape,p.dtype,p.values)}let a=new JC(n.shape,s);return t.runWebGLProgram(a,[n],n.dtype)}var HP={kernelName:yo,backendName:"webgl",kernelFunc:QC};function h9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{k:s,sorted:a}=o,i=t.readSync(n.dataId),[l,u]=wR(i,n.shape,n.dtype,s,a);return[t.makeTensorInfo(l.shape,l.dtype,l.values),t.makeTensorInfo(u.shape,u.dtype,u.values)]}var qP={kernelName:$i,backendName:"webgl",kernelFunc:h9};function g9(r){let{inputs:e,attrs:t,backend:o}=r,{axis:n}=t,{x:s}=e;Yi(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let a=o.readSync(s.dataId),{outputValues:i,outputShape:l,indices:u}=kR(a,n,s.shape,s.dtype);return[o.makeTensorInfo(l,s.dtype,i),o.makeTensorInfo([u.length],"int32",u)]}var KP={kernelName:du,backendName:"webgl",kernelFunc:g9};function x9(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n,i=a.shape.length,l=n.shape[s],u=new Array(i-1),c=0;for(let h=0;ht.disposeIntermediateTensorInfo(h)),d}var XP={kernelName:_s,backendName:"webgl",kernelFunc:x9};var eI=class{constructor(e,t){this.variableNames=["x","segmentIds"];let o=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,i=a*Math.ceil(s/o);this.outputShape=[n,i];let l="0.0",u="sumValue",c=Math.floor(o/4)*4,p=o%4,m=` sumValue += dot(values, segFilter); `,f="";s%o>0&&(f=` if (inIdx < 0 || inIdx >= ${s}) { @@ -4045,7 +4045,7 @@ return a / b;`,n9=` } setOutput(${u}); } - `}};function dJ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,segmentIds:s}=e,{numSegments:a}=o,i=n.shape.length,l=[],u=0,c=N.getAxesPermutation([u],i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),l.push(p),u=N.getInnerMostAxes(1,i)[0]);let m=N.segment_util.computeOutShape(p.shape,u,a),f=y.sizeFromShape([p.shape[u]]),d=ce({inputs:{x:p},backend:t,attrs:{shape:[-1,f]}});l.push(d);let h=hu(n.dtype),g=(w,v,$,A,R)=>{let M=w.shape[0],z=w.shape[1],W=N.segment_util.segOpComputeOptimalWindowSize(z,R),U={windowSize:W,inSize:z,batchSize:M,numSegments:R},q=new ZC(U,v),Z=t.compileAndRun(q,[w,$],A);if(l.push(Z),Z.shape[1]===R)return Z;let X=LC({backend:t,attrs:{start:0,stop:R,step:1,dtype:"float32"}}),Y=YC({inputs:{x:X},backend:t,attrs:{reps:[z/W]}});return l.push(X),l.push(Y),g(Z,v,Y,A,R)},x=g(d,"unsortedSegmentSum",s,h,a),b=ce({inputs:{x},backend:t,attrs:{shape:m}}),_=b;if(c!=null){l.push(b);let w=N.getUndoAxesPermutation(c);_=Lt({inputs:{x:_},backend:t,attrs:{perm:w}})}return l.forEach(w=>t.disposeIntermediateTensorInfo(w)),_}var HP={kernelName:xa,backendName:"webgl",kernelFunc:dJ};var hJ=[AO,DO,jR,qR,KR,XR,ZR,JR,QR,eF,oF,nF,sF,iF,lF,aF,uF,pF,cF,mF,fF,dF,hF,xF,yF,kF,CF,IF,SF,RR,AF,$F,RF,DF,OF,PF,FF,MF,LF,zF,GF,WF,UF,HF,qF,jF,KF,XF,YF,ZF,JF,QF,tO,rO,nO,sO,iO,aO,uO,cO,pO,mO,fO,dO,hO,gO,xO,$R,yO,TF,bO,_O,wO,FR,kO,vO,CO,NO,IO,SO,TO,EO,RO,PO,OO,MO,LO,BO,FO,GO,WO,UO,jO,HO,ZO,zR,QO,eP,tP,rP,bF,oP,iP,aP,lP,uP,OR,cP,pP,_F,qO,mP,dP,fP,VR,hP,gP,xP,yP,bP,_P,wP,kP,vP,CP,IP,NP,SP,TP,EP,gF,YO,AP,DP,$P,RP,FP,OP,MP,LP,zP,XO,WR,BP,VP,GP,WP,UR,UP,jP,HP,nP];for(let r of hJ)Qa(r);var qP="3.0.0";var gJ={"tfjs-core":Qb,"tfjs-backend-cpu":EA,"tfjs-backend-webgl":DR,"tfjs-data":wx,"tfjs-layers":hl,"tfjs-converter":dx,tfjs:qP};var zt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(zt||(zt={}));var Dl;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu"})(Dl||(Dl={}));var KP;function xJ(r){KP=r.wasm.cwrap(bs,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function yJ(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o,m=t.dataIdMap.get(n.dataId).id,f=t.dataIdMap.get(s.dataId).id,d=0;if(a!=null){let R=t.dataIdMap.get(a.dataId);if(R.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${R.shape.length}.`);d=R.id}let h=i==null?0:t.dataIdMap.get(i.dataId).id,g=Dl[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=l?n.shape[2]:n.shape[1],b=u?s.shape[1]:s.shape[2],_=n.shape[0],w=t.makeOutput([_,x,b],n.dtype),v=t.dataIdMap.get(w.dataId).id,$=new Uint8Array(new Int32Array(n.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return KP(m,$,n.shape.length,f,A,s.shape.length,l,u,g,d,h,p||0,v),w}var XP={kernelName:bs,backendName:"wasm",setupFunc:xJ,kernelFunc:yJ};function Rt(r){let e;function t(n){e=n.wasm.cwrap(r,null,["number","number"])}function o(n){let{backend:s,inputs:{x:a}}=n,i=s.dataIdMap.get(a.dataId).id,l=s.makeOutput(a.shape,a.dtype),u=s.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(i,u),l}return{kernelName:r,backendName:"wasm",setupFunc:t,kernelFunc:o}}var YP=Rt(ss);function _t(r,e,t){let o;function n(a){o=a.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(a){let{backend:i,inputs:l}=a,{a:u,b:c}=l,p=i.dataIdMap.get(u.dataId).id,m=i.dataIdMap.get(c.dataId).id,f=t!=null?t:u.dtype,d=N.assertAndGetBroadcastShape(u.shape,c.shape),h=i.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(u.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=i.dataIdMap.get(h.dataId).id,_=()=>o(p,g,u.shape.length,m,x,c.shape.length,zt[u.dtype],b);if(e&&u.dtype==="float32")return _(),h;let w=N.getBroadcastDims(u.shape,d),v=N.getBroadcastDims(c.shape,d),$=w.every((R,M)=>R===M),A=v.every((R,M)=>R===M);if($&&A)return _(),h;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${r}.`)}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:s}}var bJ=!0,ZP=_t(xo,bJ);var JP;function _J(r){JP=r.wasm.cwrap(Uo,null,["array","number","number","number"])}function wJ(r){let{inputs:e,backend:t}=r,o=t.makeOutput(e[0].shape,e[0].dtype);if(y.sizeFromShape(o.shape)===0)return o;let n=e.map(i=>t.dataIdMap.get(i.dataId).id),s=new Uint8Array(new Int32Array(n).buffer),a=t.dataIdMap.get(o.dataId).id;return JP(s,n.length,zt[o.dtype],a),o}var QP={kernelName:Uo,backendName:"wasm",setupFunc:_J,kernelFunc:wJ};function fc(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype),n=t.typedArrayFromHeap(e);return t.typedArrayFromHeap(o).set(n),o}var eM={kernelName:us,backendName:"wasm",kernelFunc:fc};var tM;function kJ(r){tM=r.wasm.cwrap(Rn,null,["number","array","number","number","number","array","number"])}function Hp(r){let{inputs:e,backend:t,attrs:o}=r,[n,s]=CJ(e.x.shape,o.perm),a=!0;for(let d=0;d=n&&(s===-1||o[s]>o[a])&&(s=a);o[s]=n}return[t,o]}var rM={kernelName:Rn,backendName:"wasm",kernelFunc:Hp,setupFunc:kJ};function es(r,e,t){let o=r.shape,n=r.shape.length,s=y.parseAxisParam(e,o),a=s,i=N.getAxesPermutation(a,n),l=null,u=!1;if(i!=null){let c=new Array(n);for(let f=0;f`new shape: ${a}, old shape: ${o.shape}. New shape and old shape must have the same number of elements.`),{dataId:o.dataId,shape:a,dtype:o.dtype}}var aM={kernelName:fs,backendName:"wasm",kernelFunc:zr};var lM;function EJ(r){lM=r.wasm.cwrap(qo,null,["number","array","number","number","array","number","number","number","number"])}function AJ(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),b=g===x||g===1||x===1;y.assert(l>=2&&u>=2&&b,()=>`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 (${d}) and (${h}).`);let w=(g>x?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let v=a?[g,c,m]:[g,m,c],$=i?[x,f,p]:[x,p,f],A=zr({inputs:{x:n},backend:t,attrs:{shape:v}}),R=zr({inputs:{x:s},backend:t,attrs:{shape:$}}),M=t.dataIdMap.get(A.dataId).id,z=t.dataIdMap.get(R.dataId).id,W=a?A.shape[2]:A.shape[1],U=i?R.shape[1]:R.shape[2],q=Math.max(g,x),Z=t.makeOutput([q,W,U],A.dtype),X=t.dataIdMap.get(Z.dataId).id,Y=new Uint8Array(new Int32Array(A.shape).buffer),te=new Uint8Array(new Int32Array(R.shape).buffer);return lM(M,Y,A.shape.length,z,te,R.shape.length,a,i,X),Z.shape=w,Z}var uM={kernelName:qo,backendName:"wasm",setupFunc:EJ,kernelFunc:AJ};function dc(r){let{inputs:{x:e},attrs:{dtype:t},backend:o}=r,n=o.makeOutput(e.shape,t),s=o.typedArrayFromHeap(e);return o.typedArrayFromHeap(n).set(s),n}var cM={kernelName:Eo,backendName:"wasm",kernelFunc:dc};var pM;function DJ(r){pM=r.wasm.cwrap(Ao,null,["number","number","number","number"])}function $J(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i=t.dataIdMap.get(n.dataId).id,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(l.dataId).id;return pM(i,s,a,u),l}var mM={kernelName:Ao,backendName:"wasm",setupFunc:DJ,kernelFunc:$J};function JC(r){let{inputs:e,backend:t}=r,o=y.parseAxisParam(r.attrs.axis,e[0].shape)[0],n=N.computeOutShape(e.map(f=>f.shape),o),s=e.filter(f=>y.sizeFromShape(f.shape)>0);if(s.length===1)return fc({inputs:{x:s[0]},backend:t});let a=t.makeOutput(n,e[0].dtype);if(y.sizeFromShape(n)===0)return a;let i=s.map(f=>f.shape);if(N.assertParamsConsistent(i,o),s[0].dtype==="string"){let f=s.map(_=>{let w=y.sizeFromShape(_.shape.slice(o));return zr({inputs:{x:_},backend:t,attrs:{shape:[-1,w]}})}),d=f.map(_=>({vals:t.readSync(_.dataId),shape:_.shape}));n=N.computeOutShape(f.map(_=>_.shape),1);let h=f[0].shape[0]===1,g=Ud(d,n,e[0].dtype,h),x=N.computeOutShape(s.map(_=>_.shape),o);a.shape=x;let b=t.dataIdMap.get(a.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),a}let l=y.sizeFromShape(s[0].shape.slice(0,o)),u=0,c=s.map(f=>{let d=y.sizeFromShape(f.shape.slice(o));return u+=d,d}),p=s.map(f=>t.typedArrayFromHeap(f)),m=t.typedArrayFromHeap(a);for(let f=0;f`cumsum does not support ${n.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),c=n;u!==null&&(c=Hp({inputs:{x:n},attrs:{perm:u},backend:t}));let p=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[p],l);let m=t.makeOutput(c.shape,c.dtype),f=c.shape[p],d=t.dataIdMap.get(c.dataId).id,h=t.dataIdMap.get(m.dataId).id;wM(d,a?1:0,i?1:0,f,h,zt[n.dtype]);let g=m;if(u!==null){let x=N.getUndoAxesPermutation(u);g=Hp({inputs:{x:m},attrs:{perm:x},backend:t}),t.disposeData(c.dataId),t.disposeData(m.dataId)}return g}var kM={kernelName:Zo,backendName:"wasm",setupFunc:zJ,kernelFunc:BJ};var vM;function VJ(r){vM=r.wasm.cwrap(oi,null,["number","number","number","array","number","array","array","number","number"])}function GJ(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{blockSize:s,dataFormat:a}=o;y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=e.makeOutput(d,"float32"),x=e.dataIdMap.get(n.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(n.shape)).buffer),_=new Uint8Array(new Int32Array(d).buffer),w=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),v=e.dataIdMap.get(h.dataId).id;return vM(x,s,a==="NHWC"?1:0,b,n.shape.length-1,_,w,d.length,v),h}var CM={kernelName:oi,backendName:"wasm",setupFunc:VJ,kernelFunc:GJ};var IM;function WJ(r){IM=r.wasm.cwrap(Jo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function UJ(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s}=e,a=o.dataIdMap.get(n.dataId).id,i=o.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:p}=t,m=u==null?[1,1]:u,f=N.computeConv2DInfo(n.shape,s.shape,l,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,_=f.padInfo.left,w=f.dilationHeight,v=f.dilationWidth,$=f.strideHeight,A=f.strideWidth,R=f.inChannels,M=f.outChannels,z=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let W=o.makeOutput(f.outShape,"float32"),U=o.dataIdMap.get(W.dataId).id;return IM(a,n.shape[0],n.shape[1],n.shape[2],i,d,h,g,x,b,_,z,w,v,$,A,R,M,U),W}var NM={kernelName:Jo,backendName:"wasm",setupFunc:WJ,kernelFunc:UJ};var jJ=!1,SM=_t(ii,jJ,"bool");var TM=Rt(en);function Xx(r){let{inputs:e,attrs:t,backend:o}=r,{input:n}=e,{dim:s}=t,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(y.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),zr({inputs:{x:n},backend:o,attrs:{shape:i}})}var EM={kernelName:as,backendName:"wasm",kernelFunc:Xx};function HJ(r){let{attrs:{shape:e,value:t,dtype:o},backend:n}=r,s=n.makeOutput(e,o);return n.typedArrayFromHeap(s).fill(t),s}var AM={kernelName:ua,backendName:"wasm",kernelFunc:HJ};var DM;function qJ(r){DM=r.wasm.cwrap(li,null,["number","number","number","number","number","number"])}function KJ(r){let{inputs:e,backend:t}=r,{image:o}=e,n=t.makeOutput(o.shape,o.dtype),s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,[i,l,u,c]=o.shape;return DM(s,i,l,u,c,a),n}var $M={kernelName:li,backendName:"wasm",kernelFunc:KJ,setupFunc:qJ};var RM=Rt(tn);var XJ=!1,FM=_t(rn,XJ);var OM;function YJ(r){OM=r.wasm.cwrap(on,null,["number","number","number","number","number","number","number"])}function ZJ(r){let{backend:e,inputs:t,attrs:o}=r,{varianceEpsilon:n}=o,{x:s,mean:a,variance:i,offset:l,scale:u}=t,c=e.dataIdMap.get(s.dataId).id,p=e.dataIdMap.get(a.dataId).id,m=e.dataIdMap.get(i.dataId).id,f=l!=null?e.dataIdMap.get(l.dataId).id:0,d=u!=null?e.dataIdMap.get(u.dataId).id:0,h=e.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=e.dataIdMap.get(h.dataId).id;return OM(c,p,m,f,d,n,g),h}var PM={kernelName:on,backendName:"wasm",setupFunc:YJ,kernelFunc:ZJ};var MM;function JJ(r){MM=r.wasm.cwrap(_s,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 QJ(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=N.computeConv2DInfo(n.shape,s.shape,l,c,u,m),g=Dl[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=o.dataIdMap.get(n.dataId).id,b=o.dataIdMap.get(s.dataId).id,_=h.outChannels,w=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==_)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${_})`);w=ae.id}let v=h.filterHeight,$=h.filterWidth,A=h.padInfo.top,R=h.padInfo.right,M=h.padInfo.bottom,z=h.padInfo.left,W=h.dilationHeight,U=h.dilationWidth,q=h.strideHeight,Z=h.strideWidth,X=h.inChannels,Y=h.padInfo.type==="SAME"?1:0,te=h.batchSize,K=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let ie=o.makeOutput(h.outShape,"float32"),se=o.dataIdMap.get(ie.dataId).id,pe=i==null?0:o.dataIdMap.get(i.dataId).id;return MM(x,te,K,re,b,v,$,w,A,R,M,z,Y,W,U,q,Z,X,_,g,pe,d||0,se),ie}var LM={kernelName:_s,backendName:"wasm",setupFunc:JJ,kernelFunc:QJ};var zM;function eQ(r){zM=r.wasm.cwrap(ws,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 tQ(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=N.computeConv2DInfo(n.shape,s.shape,l,c,u,m,!0),g=Dl[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=o.dataIdMap.get(n.dataId).id,b=o.dataIdMap.get(s.dataId).id,_=h.outChannels,w=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==_)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${_})`);w=ae.id}let v=h.filterHeight,$=h.filterWidth,A=h.padInfo.top,R=h.padInfo.right,M=h.padInfo.bottom,z=h.padInfo.left,W=h.dilationHeight,U=h.dilationWidth,q=h.strideHeight,Z=h.strideWidth,X=h.inChannels,Y=h.padInfo.type==="SAME"?1:0,te=h.batchSize,K=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let ie=o.makeOutput(h.outShape,"float32"),se=o.dataIdMap.get(ie.dataId).id,pe=i==null?0:o.dataIdMap.get(i.dataId).id;return zM(x,te,K,re,b,v,$,w,A,R,M,z,Y,W,U,q,Z,X,_,g,pe,d||0,se),ie}var BM={kernelName:ws,backendName:"wasm",setupFunc:eQ,kernelFunc:tQ};var VM;function rQ(r){VM=r.wasm.cwrap(ui,null,["number","number","number","number","number","number","array","number"])}function oQ(r){let{backend:e,inputs:t}=r,{params:o,indices:n}=t,[s,a,i,l]=Zh.prepareAndValidate(o,n),u=e.makeOutput(s,o.dtype);if(a===0)return u;let c=n.shape,p=c[c.length-1],f=e.dataIdMap.get(o.dataId).id,h=e.dataIdMap.get(n.dataId).id,g=new Uint8Array(new Int32Array(l).buffer),x=e.dataIdMap.get(u.dataId).id;return VM(f,zt[o.dtype],h,a,p,i,g,x),u}var GM={kernelName:ui,backendName:"wasm",setupFunc:rQ,kernelFunc:oQ};var WM;function nQ(r){WM=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function sQ(r){let{backend:e,inputs:t,attrs:o}=r,{x:n,indices:s}=t,{axis:a,batchDims:i}=o,l=y.parseAxisParam(a,n.shape)[0],u=N.segment_util.collectGatherOpShapeInfo(n,s,l,i),c=zr({inputs:{x:n},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:e}),p=y.sizeFromShape(s.shape),m=zr({inputs:{x:s},attrs:{shape:[u.batchSize,p/u.batchSize]},backend:e}),f=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize],d=e.makeOutput(f,n.dtype);if(y.sizeFromShape(n.shape)===0)return d;let h=c.shape.length-1,x=e.dataIdMap.get(c.dataId).id,_=e.dataIdMap.get(m.dataId).id,w=e.dataIdMap.get(d.dataId).id,v=new Uint8Array(new Int32Array(y.computeStrides(c.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer);return WM(x,zt[n.dtype],v,h,_,u.batchSize,$,w),d.shape=u.outputShape,d}var UM={kernelName:ls,backendName:"wasm",setupFunc:nQ,kernelFunc:sQ};var iQ=!1,jM=_t(ci,iQ,"bool");var aQ=!1,HM=_t(nn,aQ,"bool");var qM;function lQ(r){qM=r.wasm.cwrap(sn,null,["number","number","number"])}function uQ(r){let{inputs:{x:e},attrs:{alpha:t},backend:o}=r,n=o.dataIdMap.get(e.dataId).id,s=o.makeOutput(e.shape,e.dtype);if(y.sizeFromShape(e.shape)!==0){let a=o.dataIdMap.get(s.dataId).id;qM(n,t,a)}return s}var KM={kernelName:sn,backendName:"wasm",setupFunc:lQ,kernelFunc:uQ};var cQ=!1,XM=_t(di,cQ,"bool");var pQ=!1,YM=_t(hi,pQ,"bool");var ZM=Rt(an);var mQ=!1,JM=_t(xi,mQ,"bool");var QM;function fQ(r){QM=r.wasm.cwrap(ln,null,["number, number, number"])}function dQ(r){let{backend:e,inputs:t,attrs:o}=r,{reductionIndices:n,keepDims:s}=o,{x:a}=t,l=e.dataIdMap.get(a.dataId).id,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=es(a,n,e);if(f){let _=e.dataIdMap.get(c.dataId).id;u=c,l=_}let d=u.shape.length;N.assertAxesAreInnerMostDims("max",p,d);let[h,g]=N.computeOutAndReduceShapes(u.shape,p),x=y.sizeFromShape(g),b=e.makeOutput(h,a.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;QM(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var eL={kernelName:ln,backendName:"wasm",setupFunc:fQ,kernelFunc:dQ};var hQ=!1,tL=_t(un,hQ);var rL;function gQ(r){rL=r.wasm.cwrap(cn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function xQ(r){let{inputs:e,attrs:t,backend:o}=r,n=e.x,s=o.dataIdMap.get(n.dataId).id,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=t,c=N.computePool2DInfo(n.shape,a,i,1,l,u),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,_=c.strideHeight,w=c.strideWidth,v=c.inChannels,$=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=o.makeOutput(c.outShape,"float32"),R=o.dataIdMap.get(A.dataId).id;return rL(s,n.shape[0],n.shape[1],n.shape[2],p,m,f,d,h,g,x,b,_,w,v,$,R),A}var oL={kernelName:cn,backendName:"wasm",setupFunc:gQ,kernelFunc:xQ};var nL;function yQ(r){nL=r.wasm.cwrap(pn,null,["number, number, number"])}function bQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=es(a,n,e),d=p;if(f){let w=e.dataIdMap.get(c.dataId).id;w!==i&&(u=c,l=w,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=dc({backend:e,inputs:{x:u},attrs:{dtype:"float32"}}),l=e.dataIdMap.get(b.dataId).id);let _=e.makeOutput(h,"float32");if(y.sizeFromShape(u.shape)!==0){let w=e.dataIdMap.get(_.dataId).id;nL(l,x,w)}if(f&&e.disposeData(c.dataId),s){let w=N.expandShapeToKeepDim(_.shape,m);_.shape=w}return u.dtype!=="float32"&&e.disposeData(b.dataId),_}var sL={kernelName:pn,backendName:"wasm",setupFunc:yQ,kernelFunc:bQ};var iL;function _Q(r){iL=r.wasm.cwrap(mn,null,["number, number, number"])}function wQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=es(a,n,e);if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_)}let d=u.shape.length;N.assertAxesAreInnerMostDims("min",p,d);let[h,g]=N.computeOutAndReduceShapes(u.shape,p),x=y.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;iL(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var aL={kernelName:mn,backendName:"wasm",setupFunc:_Q,kernelFunc:wQ};var kQ=!1,lL=_t(fn,kQ);var vQ=!0,uL=_t(dn,vQ);var cL=Rt(cs);function qp(r,e){let t=new Int32Array(r.wasm.HEAPU8.buffer,e,4),o=t[0],n=t[1],s=t[2],a=t[3];return r.wasm._free(e),{pSelectedIndices:o,selectedSize:n,pSelectedScores:s,pValidOutputs:a}}var pL;function CQ(r){pL=r.wasm.cwrap(_i,"number",["number","number","number","number","number"])}function IQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a}=o,{boxes:i,scores:l}=t,u=e.dataIdMap.get(i.dataId).id,c=e.dataIdMap.get(l.dataId).id,p=pL(u,c,s,n,a),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=qp(e,p);return e.wasm._free(d),e.wasm._free(h),e.makeOutput([f],"int32",m)}var mL={kernelName:_i,backendName:"wasm",setupFunc:CQ,kernelFunc:IQ};var fL;function NQ(r){fL=r.wasm.cwrap(wi,"number",["number","number","number","number","number","bool"])}function SQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,padToMaxOutputSize:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=fL(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=qp(e,m);e.wasm._free(h);let x=e.makeOutput([d],"int32",f),b=e.makeOutput([],"int32",g);return[x,b]}var dL={kernelName:wi,backendName:"wasm",setupFunc:NQ,kernelFunc:SQ};var hL;function TQ(r){hL=r.wasm.cwrap(ki,"number",["number","number","number","number","number","number"])}function EQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,softNmsSigma:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=hL(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=qp(e,m);e.wasm._free(g);let x=e.makeOutput([d],"int32",f),b=e.makeOutput([d],"float32",h);return[x,b]}var gL={kernelName:ki,backendName:"wasm",setupFunc:TQ,kernelFunc:EQ};var AQ=!1,xL=_t(bi,AQ,"bool");var yL;function DQ(r){yL=r.wasm.cwrap(hn,null,["number","number","number","number","number"])}function $Q(r){let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=t.makeOutput([...n.shape,s],"int32"),u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(n.dataId).id;return yL(p,s,a,i,u),l}var bL={kernelName:hn,backendName:"wasm",setupFunc:DQ,kernelFunc:$Q};function RQ(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(1),o}var _L={kernelName:ps,backendName:"wasm",kernelFunc:RQ};function FQ(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return Xx({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(l=>{y.assertShapesMatch(s,l.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===l.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=e.map(l=>Xx({inputs:{input:l},backend:t,attrs:{dim:n}}));return JC({inputs:i,backend:t,attrs:{axis:n}})}var wL={kernelName:ms,backendName:"wasm",kernelFunc:FQ};var kL;function OQ(r){kL=r.wasm.cwrap(gn,null,["number","array","number","number","array","array","number","number"])}function PQ(r){let{inputs:{x:e},backend:t,attrs:{paddings:o,constantValue:n}}=r,s=o.map((d,h)=>d[0]+e.shape[h]+d[1]),a=t.dataIdMap.get(e.dataId).id,i=t.makeOutput(s,e.dtype),l=t.dataIdMap.get(i.dataId).id,u=new Uint8Array(new Int32Array(e.shape).buffer),c=o.map(d=>d[0]),p=o.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return kL(a,u,e.shape.length,zt[e.dtype],m,f,n,l),i}var vL={kernelName:gn,backendName:"wasm",kernelFunc:PQ,setupFunc:OQ};var MQ=!1,CL=_t(xn,MQ);var IL;function LQ(r){IL=r.wasm.cwrap(yn,null,["number","number","number"])}function zQ(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,i=t.makeOutput(o.shape,"float32"),l=t.dataIdMap.get(i.dataId).id;return IL(s,a,l),i}var NL={kernelName:yn,backendName:"wasm",setupFunc:LQ,kernelFunc:zQ};var SL;function BQ(r){SL=r.wasm.cwrap(vi,null,["number","number","number","number"])}function VQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=es(a,n,e),d=p;if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;SL(l,x,zt[b.dtype],_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var TL={kernelName:vi,backendName:"wasm",setupFunc:BQ,kernelFunc:VQ};var GQ=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=qd(o,n,s,a),l=e.makeOutput([i.length],a);return e.typedArrayFromHeap(l).set(i),l},EL={kernelName:fa,backendName:"wasm",kernelFunc:GQ};var WQ=!0,AL=_t(Qo,WQ);var DL=Rt(bn);var $L=Rt(wn);var RL;function UQ(r){RL=r.wasm.cwrap(_n,null,["number","number","number","number","number","number","number","number","number","number"])}function jQ(r){let{backend:e,inputs:t,attrs:o}=r,{images:n}=t,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,[c,p,m,f]=n.shape,d=[c,l,u,f],h=e.dataIdMap.get(n.dataId),g;h.dtype!=="float32"&&(g=dc({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),h=e.dataIdMap.get(g.dataId));let x=h.id,b=e.makeOutput(d,"float32");if(y.sizeFromShape(n.shape)===0)return b;let _=e.dataIdMap.get(b.dataId).id;return RL(x,c,p,m,f,l,u,s?1:0,a?1:0,_),g!=null&&e.disposeData(g.dataId),b}var FL={kernelName:_n,backendName:"wasm",setupFunc:UQ,kernelFunc:jQ};var OL;function HQ(r){OL=r.wasm.cwrap(kn,null,["number","array","number","array","number","number"])}function qQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=y.parseAxisParam(s,n.shape);if(n.shape.length===0)return fc({inputs:{x:n},backend:t});let i=t.makeOutput(n.shape,n.dtype),l=t.dataIdMap.get(n.dataId).id,u=t.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(a).buffer),p=new Uint8Array(new Int32Array(n.shape).buffer);return OL(l,c,a.length,p,n.shape.length,u),zr({inputs:{x:i},attrs:{shape:n.shape},backend:t})}var PL={kernelName:kn,backendName:"wasm",kernelFunc:qQ,setupFunc:HQ};var ML;function KQ(r){ML=r.wasm.cwrap(Ri,null,["number","number","number","number","number","number","number","number","array","number","number"])}function XQ(r){let{inputs:e,backend:t,attrs:o}=r,{image:n}=e,{radians:s,fillValue:a,center:i}=o,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(n.dataId).id,c=t.dataIdMap.get(l.dataId).id,[p,m,f,d]=n.shape,[h,g]=N.getImageCenter(i,m,f),x=a===0,b=255,_=typeof a=="number"?[a,a,a,x?0:b]:[...a,b],w=new Uint8Array(new Int32Array(_).buffer);return ML(u,p,m,f,d,s,h,g,w,_.length,c),l}var LL={kernelName:Ri,backendName:"wasm",kernelFunc:XQ,setupFunc:KQ};var zL=Rt(vn);var BL=Rt(Cn);var VL;function YQ(r){VL=r.wasm.cwrap(Ii,null,["number","number","number","number","number","number","array","number","number"])}function ZQ(r){let{backend:e,inputs:t,attrs:o}=r,{indices:n,updates:s}=t,{shape:a}=o,i=e.makeOutput(a,s.dtype);if(y.sizeFromShape(a)===0)return i;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:p,outputSize:m}=Jh.calculateShapes(s,n,a),d=e.dataIdMap.get(n.dataId).id,g=e.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=e.dataIdMap.get(i.dataId).id;return VL(d,g,zt[s.dtype],l,u,c,x,m,b),i}var GL={kernelName:Ii,backendName:"wasm",setupFunc:YQ,kernelFunc:ZQ};var WL;function JQ(r){WL=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function QQ(r){let{inputs:e,backend:t}=r,{condition:o,t:n,e:s}=e,a=t.dataIdMap.get(o.dataId).id,i=t.dataIdMap.get(n.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=t.makeOutput(n.shape,n.dtype),c=t.dataIdMap.get(u.dataId).id,p=o.shape.length,m=n.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(n.shape.slice(1));return WL(a,i,l,f,c),u}var UL={kernelName:ds,backendName:"wasm",kernelFunc:QQ,setupFunc:JQ};var jL;function eee(r){jL=r.wasm.cwrap(Nn,null,["number","number"])}function tee(r){let{backend:e,inputs:{x:t}}=r,o=e.dataIdMap.get(t.dataId).id,n=e.makeOutput(t.shape,t.dtype),s=e.dataIdMap.get(n.dataId).id;return y.sizeFromShape(n.shape)===0||jL(o,s),n}var HL={kernelName:"Sigmoid",backendName:"wasm",setupFunc:eee,kernelFunc:tee};var qL=Rt(In);function hc(r){let{inputs:{x:e},attrs:{begin:t,size:o},backend:n}=r,[s,a]=or.parseSliceParams(e,t,o),i=or.isSliceContinous(e.shape,s,a),l=n.readSync(e.dataId),u=n.makeOutput(a,e.dtype),c=y.computeStrides(e.shape),p=n.dataIdMap.get(u.dataId);if(i){let d=or.computeFlatOffset(s,c);return e.dtype==="string"?p.stringBytes=l.slice(d,d+y.sizeFromShape(a)):n.typedArrayFromHeap(u).set(l.subarray(d,d+y.sizeFromShape(a))),u}if(e.dtype==="string"){let d=Kd(l,s,a,e.shape,e.dtype);return p.stringBytes=d,u}let m=n.typedArrayFromHeap(u),f=e.shape.length;if(f===2)ree(l,c[0],m,s,a);else if(f===3)oee(l,c[0],c[1],m,s,a);else if(f===4)nee(l,c[0],c[1],c[2],m,s,a);else{let d=Kd(l,s,a,e.shape,e.dtype);m.set(d)}return u}function ree(r,e,t,o,n){let s=0,a=o[0],i=o[1],l=a+n[0];for(let u=a;u{let m=[...c];m[i]=p;let f=hc({inputs:{x:n},attrs:{begin:u,size:m},backend:o});return u[i]+=p,f})}var ZL={kernelName:gs,backendName:"wasm",kernelFunc:aee};var JL=Rt(Sn);var QL=Rt(ga);var lee=!0,ez=_t(An,lee);var tz;function uee(r){tz=r.wasm.cwrap(Do,null,["number","number","number"])}function cee(r){let{backend:e,inputs:t,attrs:o}=r,{alpha:n}=o,{x:s}=t,a=e.dataIdMap.get(s.dataId).id,i=e.makeOutput(s.shape,s.dtype),l=e.dataIdMap.get(i.dataId).id;return tz(a,n,l),i}var rz={kernelName:Do,backendName:"wasm",setupFunc:uee,kernelFunc:cee};var oz;function pee(r){oz=r.wasm.cwrap(Ai,null,["number","array","number","array","array","array","array","array","number","number"])}function mee(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{begin:s,end:a,strides:i}=o;i==null&&(i=new Array(s.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,f=N.slice_util.maskToAxes(c);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&m!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let d=n.shape.length-s.length,h=N.slice_util.maskToAxes(p),g=n.shape.slice();h.forEach(z=>{s[z]=0,a[z]=1,g.splice(z,0,1)});let x=zr({inputs:{x:n},attrs:{shape:g},backend:e}),{begin:b,end:_,strides:w}=N.slice_util.getNormalizedAxes(x.shape,f,d,s,a,i,l,u,c);s=b,a=_,i=w;let v=N.slice_util.maskToAxes(m);v.forEach(z=>{a[z]=s[z]+1,i[z]=1});let $=N.slice_util.computeOutShape(s,a,i),A=$.filter((z,W)=>v.indexOf(W)===-1);if(i.every(z=>z===1)){let z=hc({inputs:{x:n},attrs:{begin:s,size:$},backend:e});return zr({inputs:{x:z},attrs:{shape:A},backend:e})}let M=e.makeOutput(A,"float32");if(!A.some(z=>z===0)){let z=e.dataIdMap.get(x.dataId).id,W=new Uint8Array(new Int32Array(y.computeStrides(x.shape)).buffer),U=new Uint8Array(new Int32Array(s).buffer),q=new Uint8Array(new Int32Array(a).buffer),Z=new Uint8Array(new Int32Array(i).buffer),X=new Uint8Array(new Int32Array(A).buffer),Y=new Uint8Array(new Int32Array(y.computeStrides(A)).buffer),te=e.dataIdMap.get(M.dataId).id;oz(z,W,x.shape.length,U,q,Z,X,Y,A.length,te)}return zr({inputs:{x:M},attrs:{shape:A},backend:e})}var nz={kernelName:Ai,backendName:"wasm",setupFunc:pee,kernelFunc:mee};var fee=!0,sz=_t(Dn,fee);var iz;function dee(r){iz=r.wasm.cwrap(Tn,null,["number, number, number"])}function hee(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=es(a,n,e),d=p;if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;iz(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var az={kernelName:Tn,backendName:"wasm",setupFunc:dee,kernelFunc:hee};var lz=Rt($n);var uz;function gee(r){uz=r.wasm.cwrap(yo,null,["number","array","number","array","number","number"])}function xee(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,s=t.dataIdMap.get(n.dataId).id,{reps:a}=o,i=new Array(n.shape.length);for(let m=0;m{let{x:o}=r,{k:n,sorted:s}=t,a=e.dataIdMap.get(o.dataId).id,i=new Uint8Array(new Int32Array(o.shape).buffer),l=o.shape.slice();l[l.length-1]=n;let u=e.makeOutput(l,o.dtype),c=e.dataIdMap.get(u.dataId).id,p=e.makeOutput(l,"int32"),m=e.dataIdMap.get(p.dataId).id;return pz(a,i,o.shape.length,zt[o.dtype],n,s,c,m),[u,p]},mz={kernelName:$i,backendName:"wasm",setupFunc:yee,kernelFunc:bee};function _ee(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape[s],i=n.shape.length,l=new Array(i-1),u=0;for(let f=0;f({dataId:f,dtype:d,shape:l}))}var fz={kernelName:xs,backendName:"wasm",kernelFunc:_ee};function wee(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(0),o}var dz={kernelName:ys,backendName:"wasm",kernelFunc:wee};var kee=[YP,ZP,QP,nM,iM,uM,cM,mM,fM,hM,xM,yM,_M,kM,CM,NM,SM,TM,EM,AM,$M,RM,FM,XP,PM,LM,BM,GM,UM,jM,HM,eM,KM,XM,YM,ZM,JM,eL,tL,oL,sL,aL,lL,uL,cL,mL,dL,gL,xL,bL,_L,wL,vL,CL,NL,TL,EL,AL,DL,$L,aM,FL,PL,LL,BL,zL,GL,UL,HL,qL,KL,YL,ZL,JL,QL,ez,rz,nz,sz,az,lz,cz,mz,rM,fz,dz];for(let r of kee)Qa(r);var eI=G();eI.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])));eI.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(eI.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(r){return!1}});var sI=Sc(xz());var yz='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}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;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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["dynCall_ii"](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"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){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.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");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()}}}}';var _z=Sc(bz());var Jx=class extends Ws{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Ya(this,vs())}write(e,t,o){let n={};return this.move(n,e,t,o),n}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=y.now();return e(),{kernelMs:y.now()-t}}move(e,t,o,n){let s=this.dataIdNextNumber++;if(n==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:o,dtype:n,memoryOffset:null});return}let a=y.sizeFromShape(o),i=a*y.bytesPerElement(n),l=this.wasm._malloc(i);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:o,dtype:n}),this.wasm.tfjs.registerTensor(s,a,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:o,shape:n,stringBytes:s}=this.dataIdMap.get(e);if(o==="string")return s;let a=this.wasm.HEAPU8.slice(t,t+y.sizeFromShape(n)*y.bytesPerElement(o));return vee(a.buffer,o)}disposeData(e){let t=this.dataIdMap.get(e);this.wasm._free(t.memoryOffset),this.wasm.tfjs.disposeData(t.id),this.dataIdMap.delete(e)}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,o){let n;if(o==null)n=this.write(null,e,t);else{n={};let s=this.dataIdNextNumber++;this.dataIdMap.set(n,{id:s,memoryOffset:o,shape:e,dtype:t});let a=y.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,a,o)}return{dataId:n,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:o}){let n=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(o),a=y.sizeFromShape(e);switch(t){case"float32":return new Float32Array(n,s,a);case"int32":return new Int32Array(n,s,a);case"bool":return new Uint8Array(n,s,a);default:throw new Error(`Unknown dtype ${t}`)}}};function Cee(r){return(e,t)=>(y.fetch(r,{credentials:"same-origin"}).then(o=>{o.ok||e.env.a(`failed to load wasm binary file at '${r}'`),o.arrayBuffer().then(n=>{WebAssembly.instantiate(n,e).then(s=>{t(s.instance)})})}),{})}function wz(r,e,t){if(Qx!=null)return Qx;let o="tfjs-backend-wasm.wasm";return r&&e?o="tfjs-backend-wasm-threaded-simd.wasm":r&&(o="tfjs-backend-wasm-simd.wasm"),dh!=null&&dh[o]!=null?dh[o]:t+o}async function kz(){let[r,e]=await Promise.all([G().getAsync("WASM_HAS_SIMD_SUPPORT"),G().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((t,o)=>{let n={};n.locateFile=(l,u)=>{if(l.endsWith(".worker.js")){let c=yz,p=new Blob([c],{type:"application/javascript"});return URL.createObjectURL(p)}return l.endsWith(".wasm")?wz(r,e,hh!=null?hh:u):u+l},iI&&(n.instantiateWasm=Cee(wz(r,e,hh!=null?hh:"")));let s;e&&r&&Qx==null?(s=sI.default(n),s.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+sI.default.toString()],{type:"text/javascript"})):s=_z.default(n);let a=null;s.tfjs={init:s.cwrap("init",null,[]),registerTensor:s.cwrap("register_tensor",null,["number","number","number"]),disposeData:s.cwrap("dispose_data",a,["number"]),dispose:s.cwrap("dispose",a,[])};let i=!1;s.onRuntimeInitialized=()=>{i=!0,gh=!1,t({wasm:s})},s.onAbort=()=>{if(i||gh)return;gh=!0,o({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"})}})}function vee(r,e){switch(e){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${e}`)}}var Iee=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Qx=null,hh=null,dh={},gh=!1,iI=!1;function Nee(r,e=!1){if(rg("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),gh)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Qx=r,iI=e}function See(r,e=!1){if(gh)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")hh=r;else{dh=r;let t=Iee.filter(o=>dh[o]==null);if(t.length>0)throw new Error(`There were no entries found for the following binaries: ${t.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.`)}iI=e}var Tee="3.0.0";var Eee=2;yu("wasm",async()=>{let{wasm:r}=await kz();return new Jx(r)},Eee);export{ss as Abs,qs as Acos,Ks as Acosh,tp as AdadeltaOptimizer,rp as AdagradOptimizer,op as AdamOptimizer,np as AdamaxOptimizer,xo as Add,Uo as AddN,Vl as All,Gl as Any,jo as ArgMax,oa as ArgMin,Xs as Asin,Ys as Asinh,Zs as Atan,Qs as Atan2,Js as Atanh,Ho as AvgPool,na as AvgPool3D,Ul as AvgPool3DGrad,Wl as AvgPoolGrad,Jx as BackendWasm,qo as BatchMatMul,sa as BatchToSpaceND,jl as Bincount,bb as BroadcastTo,Yg as Callback,$g as CallbackList,Eo as Cast,ei as Ceil,Ao as ClipByValue,Hl as Complex,ia as ComplexAbs,is as Concat,Ko as Conv2D,ql as Conv2DBackpropFilter,Xo as Conv2DBackpropInput,aa as Conv3D,Kl as Conv3DBackpropFilterV2,Xl as Conv3DBackpropInputV2,Yo as Cos,ti as Cosh,ri as CropAndResize,Zo as Cumsum,Fg as CustomCallback,Ya as DataStorage,Yl as DenseBincount,oi as DepthToSpace,Jo as DepthwiseConv2dNative,Zl as DepthwiseConv2dNativeBackpropFilter,Jl as DepthwiseConv2dNativeBackpropInput,Ql as Diag,la as Dilation2D,Rc as Dilation2DBackpropFilter,$c as Dilation2DBackpropInput,gb as ENV,Jg as EarlyStopping,ni as Elu,eu as EluGrad,zh as Environment,ii as Equal,si as Erf,en as Exp,as as ExpandDims,ai as Expm1,tu as FFT,ua as Fill,li as FlipLeftRight,tn as Floor,rn as FloorDiv,Fc as FromPixels,on as FusedBatchNorm,_s as FusedConv2D,ws as FusedDepthwiseConv2D,ui as GatherNd,ls as GatherV2,fx as GraphModel,ci as Greater,nn as GreaterEqual,Rg as History,ru as IFFT,us as Identity,ou as Imag,Et as InputSpec,pi as IsFinite,mi as IsInf,fi as IsNan,Ws as KernelBackend,ca as LRN,su as LRNGrad,kf as LayerVariable,vo as LayersModel,sn as LeakyRelu,di as Less,hi as LessEqual,nu as LinSpace,an as Log,gi as Log1p,_b as LogSoftmax,xi as LogicalAnd,Za as LogicalNot,Ja as LogicalOr,ln as Max,cn as MaxPool,pa as MaxPool3D,au as MaxPool3DGrad,iu as MaxPoolGrad,lu as MaxPoolWithArgmax,un as Maximum,pn as Mean,mn as Min,fn as Minimum,ma as MirrorPad,yi as Mod,sp as MomentumOptimizer,uu as Multinomial,dn as Multiply,cs as Neg,_i as NonMaxSuppressionV3,wi as NonMaxSuppressionV4,ki as NonMaxSuppressionV5,bi as NotEqual,OI as OP_SCOPE_SUFFIX,hn as OneHot,ps as OnesLike,Fr as Optimizer,ms as Pack,gn as PadV2,p3 as Pool,xn as Pow,yn as Prelu,vi as Prod,ip as RMSPropOptimizer,ao as RNN,fa as Range,Ib as Rank,cu as Real,Qo as RealDiv,Ci as Reciprocal,Gt as Reduction,bn as Relu,wn as Relu6,fs as Reshape,_n as ResizeBilinear,mu as ResizeBilinearGrad,da as ResizeNearestNeighbor,pu as ResizeNearestNeighborGrad,kn as Reverse,Ri as RotateWithOffset,vn as Round,Cn as Rsqrt,ll as SGDOptimizer,Ii as ScatterNd,ds as Select,Ni as Selu,Hi as Sequential,Nn as Sigmoid,Ti as Sign,In as Sin,Si as Sinh,hs as Slice,En as Softmax,Ei as Softplus,ha as SpaceToBatchND,fu as SparseToDense,gs as SplitV,Sn as Sqrt,ga as Square,An as SquaredDifference,Do as Step,Ai as StridedSlice,Dn as Sub,Tn as Sum,Lr as SymbolicTensor,Di as Tan,$n as Tanh,Ve as Tensor,ct as TensorBuffer,yo as Tile,$i as TopK,Rn as Transpose,du as Unique,xs as Unpack,xa as UnsortedSegmentSum,tl as Variable,ys as ZerosLike,bs as _FusedMatMul,Tt as abs,vm as acos,Cm as acosh,Q as add,t_ as addN,_u as all,nl as any,sl as argMax,Im as argMin,Nm as asin,Sm as asinh,Tm as atan,Em as atan2,Am as atanh,va as avgPool,Dm as avgPool3d,e_ as backend,N as backend_util,uG as basicLSTMCell,On as batchNorm,s_ as batchNorm2d,i_ as batchNorm3d,a_ as batchNorm4d,Ca as batchToSpaceND,l_ as bincount,xU as booleanMaskAsync,il as broadcastTo,Yh as browser,Ce as buffer,T1 as callbacks,oe as cast,$m as ceil,nr as clipByValue,$o as clone,bo as complex,Je as concat,u_ as concat1d,c_ as concat2d,p_ as concat3d,m_ as concat4d,nw as constraints,vu as conv1d,jr as conv2d,Cu as conv2dTranspose,Rm as conv3d,AG as conv3dTranspose,d3 as copyRegisteredKernels,Ia as cos,Iu as cosh,nf as cosineWindow,Nu as cumsum,Hr as customGrad,$k as data,f_ as denseBincount,rg as deprecationWarn,Fm as depthToSpace,Cs as depthwiseConv2d,D1 as deregisterOp,Bc as device_util,LG as diag,Om as dilation2d,kV as disableDeprecationWarnings,Te as dispose,vV as disposeVariables,de as div,Pm as divNoNan,d_ as dot,B_ as dropout,Is as elu,wV as enableDebugMode,_V as enableProdMode,V_ as enclosingPowerOfTwo,vs as engine,G as env,_o as equal,Mm as erf,Xt as exp,sr as expandDims,Lm as expm1,Kc as eye,Ra as fft,Na as fill,EV as findBackend,AV as findBackendFactory,Ns as floor,bu as floorDiv,zn as fused,Pn as gather,z_ as gatherND,Zh as gather_util,SV as getBackend,Bh as getGradient,Pc as getKernel,xm as getKernelsForBackend,fW as grad,dW as grads,Qt as greater,to as greaterEqual,zi as ifft,Su as imag,Ds as image,NU as inTopKAsync,uw as initializers,Kg as input,vr as io,zu as irfft,h_ as isFinite,g_ as isInf,x_ as isNaN,At as keep,Sr as kernel_impls,jw as layers,Sa as leakyRelu,Tu as less,Oo as lessEqual,H_ as linalg,y_ as linspace,sE as loadGraphModel,h1 as loadLayersModel,zm as localResponseNormalization,ir as log,Eu as log1p,b_ as logSigmoid,Au as logSoftmax,Vm as logSumExp,fr as logicalAnd,Ta as logicalNot,Du as logicalOr,v_ as logicalXor,yj as losses,We as matMul,mN as math,ar as max,Ea as maxPool,Gm as maxPool3d,C_ as maxPoolWithArgmax,qr as maximum,ht as mean,jc as memory,Xw as metrics,Li as min,Ts as minimum,Wm as mirrorPad,Um as mod,f1 as model,Yw as models,Xc as moments,_U as movingAverage,O as mul,WW as multiRNNCell,I_ as multinomial,je as neg,sf as nextFrame,Gu as norm,Ln as notEqual,ks as oneHot,Cr as ones,er as onesLike,S as op,KW as outerProduct,$r as pad,ZW as pad1d,QW as pad2d,t4 as pad3d,o4 as pad4d,N_ as pool,Rr as pow,Da as prelu,Wb as print,$u as prod,CV as profile,m4 as rand,_4 as randomGamma,ug as randomNormal,Es as randomUniform,Zc as range,NV as ready,al as real,Hm as reciprocal,yu as registerBackend,g1 as registerCallbackConstructor,kb as registerGradient,Qa as registerKernel,A1 as registerOp,Zw as regularizers,Ir as relu,Fu as relu6,TV as removeBackend,L as reshape,qt as reverse,E4 as reverse1d,D4 as reverse2d,R4 as reverse3d,O4 as reverse4d,Fa as rfft,qm as round,Ou as rsqrt,le as scalar,L_ as scatterND,Jh as scatter_util,Pu as selu,Km as separableConv2d,d1 as sequential,J as serialization,TN as setBackend,DV as setPlatform,Nee as setWasmPath,See as setWasmPaths,O_ as setdiff1dAsync,Ur as sigmoid,Xm as sign,xj as signal,Mu as sin,Lu as sinh,Fe as slice,Ym as slice1d,cg as slice2d,Zm as slice3d,Jc as slice4d,or as slice_util,$a as softmax,Ss as softplus,Aa as spaceToBatchND,of as sparseToDense,gj as spectral,lr as split,xt as sqrt,Pe as square,Bu as squaredDifference,wo as squeeze,Bt as stack,As as step,Jm as stridedSlice,ue as sub,ye as sum,hu as sumOutType,Qm as tan,Mi as tanh,Dr as tensor,Vt as tensor1d,Bi as tensor2d,qb as tensor3d,aU as tensor4d,lU as tensor5d,uU as tensor6d,Fn as tensor_util,IN as test_util,V as tidy,Fo as tile,IV as time,ef as topk,ul as train,Ue as transpose,Vu as truncatedNormal,Qc as unique,f3 as unregisterGradient,m3 as unregisterKernel,tf as unsortedSegmentSum,ur as unstack,mr as upcastType,y as util,hW as valueAndGrad,gW as valueAndGrads,P_ as variable,ig as variableGrads,gJ as version,dx as version_converter,Qb as version_core,hl as version_layers,Tee as version_wasm,Dt as where,rf as whereAsync,gt as zeros,Ie as zerosLike}; + `}};function y9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n,segmentIds:s}=e,{numSegments:a}=o,i=n.shape.length,l=[],u=0,c=N.getAxesPermutation([u],i),p=n;c!=null&&(p=Lt({inputs:{x:n},backend:t,attrs:{perm:c}}),l.push(p),u=N.getInnerMostAxes(1,i)[0]);let m=N.segment_util.computeOutShape(p.shape,u,a),f=y.sizeFromShape([p.shape[u]]),d=ce({inputs:{x:p},backend:t,attrs:{shape:[-1,f]}});l.push(d);let h=gu(n.dtype),g=(w,v,$,A,R)=>{let M=w.shape[0],V=w.shape[1],G=N.segment_util.segOpComputeOptimalWindowSize(V,R),W={windowSize:G,inSize:V,batchSize:M,numSegments:R},q=new eI(W,v),Z=t.compileAndRun(q,[w,$],A);if(l.push(Z),Z.shape[1]===R)return Z;let X=VC({backend:t,attrs:{start:0,stop:R,step:1,dtype:"float32"}}),Y=QC({inputs:{x:X},backend:t,attrs:{reps:[V/G]}});return l.push(X),l.push(Y),g(Z,v,Y,A,R)},x=g(d,"unsortedSegmentSum",s,h,a),b=ce({inputs:{x},backend:t,attrs:{shape:m}}),_=b;if(c!=null){l.push(b);let w=N.getUndoAxesPermutation(c);_=Lt({inputs:{x:_},backend:t,attrs:{perm:w}})}return l.forEach(w=>t.disposeIntermediateTensorInfo(w)),_}var YP={kernelName:xa,backendName:"webgl",kernelFunc:y9};var b9=[FO,OO,XR,ZR,JR,QR,tF,rF,oF,nF,aF,lF,uF,cF,mF,pF,fF,hF,dF,gF,xF,yF,bF,wF,kF,NF,TF,EF,DF,MR,FF,PF,MF,OF,zF,BF,LF,VF,GF,WF,HF,qF,KF,YF,ZF,XF,JF,QF,eO,tO,rO,oO,sO,iO,lO,uO,cO,pO,fO,dO,hO,gO,xO,yO,bO,_O,wO,PR,kO,$F,vO,CO,IO,LR,NO,SO,TO,AO,EO,DO,$O,RO,MO,BO,zO,VO,GO,UO,LO,HO,qO,KO,XO,YO,tP,WR,oP,nP,sP,iP,vF,aP,cP,pP,mP,fP,zR,dP,hP,CF,ZO,gP,yP,xP,jR,bP,_P,wP,kP,vP,CP,IP,NP,SP,TP,EP,AP,DP,$P,RP,_F,eP,FP,OP,PP,MP,LP,zP,VP,GP,WP,QO,qR,UP,jP,HP,qP,KR,KP,XP,YP,lP];for(let r of b9)Qa(r);var ZP="3.1.0";var _9={"tfjs-core":n_,"tfjs-backend-cpu":RA,"tfjs-backend-webgl":OR,"tfjs-data":Sx,"tfjs-layers":hl,"tfjs-converter":_x,tfjs:ZP};var zt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(zt||(zt={}));var Dl;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu"})(Dl||(Dl={}));var JP;function w9(r){JP=r.wasm.cwrap(ks,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function k9(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s,bias:a,preluActivationWeights:i}=e;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:c,leakyreluAlpha:p}=o,m=t.dataIdMap.get(n.dataId).id,f=t.dataIdMap.get(s.dataId).id,d=0;if(a!=null){let R=t.dataIdMap.get(a.dataId);if(R.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${R.shape.length}.`);d=R.id}let h=i==null?0:t.dataIdMap.get(i.dataId).id,g=Dl[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=l?n.shape[2]:n.shape[1],b=u?s.shape[1]:s.shape[2],_=n.shape[0],w=t.makeOutput([_,x,b],n.dtype),v=t.dataIdMap.get(w.dataId).id,$=new Uint8Array(new Int32Array(n.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return JP(m,$,n.shape.length,f,A,s.shape.length,l,u,g,d,h,p||0,v),w}var QP={kernelName:ks,backendName:"wasm",setupFunc:w9,kernelFunc:k9};function At(r){let e;function t(n){e=n.wasm.cwrap(r,null,["number","number"])}function o(n){let{backend:s,inputs:{x:a}}=n,i=s.dataIdMap.get(a.dataId).id,l=s.makeOutput(a.shape,a.dtype),u=s.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(i,u),l}return{kernelName:r,backendName:"wasm",setupFunc:t,kernelFunc:o}}var eM=At(us);function _t(r,e,t){let o;function n(a){o=a.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(a){let{backend:i,inputs:l}=a,{a:u,b:c}=l,p=i.dataIdMap.get(u.dataId).id,m=i.dataIdMap.get(c.dataId).id,f=t!=null?t:u.dtype,d=N.assertAndGetBroadcastShape(u.shape,c.shape),h=i.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(u.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=i.dataIdMap.get(h.dataId).id,_=()=>o(p,g,u.shape.length,m,x,c.shape.length,zt[u.dtype],b);if(e&&u.dtype==="float32")return _(),h;let w=N.getBroadcastDims(u.shape,d),v=N.getBroadcastDims(c.shape,d),$=w.every((R,M)=>R===M),A=v.every((R,M)=>R===M);if($&&A)return _(),h;throw new Error(`Broadcasting along outer dims is not yet supported for ${u.dtype} ${r}.`)}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:s}}var v9=!0,tM=_t(xo,v9);var rM;function C9(r){rM=r.wasm.cwrap(qo,null,["array","number","number","number"])}function I9(r){let{inputs:e,backend:t}=r,o=t.makeOutput(e[0].shape,e[0].dtype);if(y.sizeFromShape(o.shape)===0)return o;let n=e.map(i=>t.dataIdMap.get(i.dataId).id),s=new Uint8Array(new Int32Array(n).buffer),a=t.dataIdMap.get(o.dataId).id;return rM(s,n.length,zt[o.dtype],a),o}var oM={kernelName:qo,backendName:"wasm",setupFunc:C9,kernelFunc:I9};function dc(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype),n=t.typedArrayFromHeap(e);return t.typedArrayFromHeap(o).set(n),o}var nM={kernelName:Do,backendName:"wasm",kernelFunc:dc};var sM;function N9(r){sM=r.wasm.cwrap(Mn,null,["number","array","number","number","number","array","number"])}function Yp(r){let{inputs:e,backend:t,attrs:o}=r,[n,s]=T9(e.x.shape,o.perm),a=!0;for(let d=0;d=n&&(s===-1||o[s]>o[a])&&(s=a);o[s]=n}return[t,o]}var iM={kernelName:Mn,backendName:"wasm",kernelFunc:Yp,setupFunc:N9};function ns(r,e,t){let o=r.shape,n=r.shape.length,s=y.parseAxisParam(e,o),a=s,i=N.getAxesPermutation(a,n),l=null,u=!1;if(i!=null){let c=new Array(n);for(let f=0;f`new shape: ${a}, old shape: ${o.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(o.dataId),{dataId:o.dataId,shape:a,dtype:o.dtype}}var pM={kernelName:gs,backendName:"wasm",kernelFunc:zr};var mM;function R9(r){mM=r.wasm.cwrap(Yo,null,["number","array","number","number","array","number","number","number","number"])}function F9(r){let{inputs:e,backend:t,attrs:o}=r,{a:n,b:s}=e,{transposeA:a,transposeB:i}=o;if(n.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=n.shape.length,u=s.shape.length,c=a?n.shape[l-2]:n.shape[l-1],p=i?s.shape[u-1]:s.shape[u-2],m=a?n.shape[l-1]:n.shape[l-2],f=i?s.shape[u-2]:s.shape[u-1],d=n.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),b=g===x||g===1||x===1;y.assert(l>=2&&u>=2&&b,()=>`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 (${d}) and (${h}).`);let w=(g>x?n.shape.slice(0,-2):s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${n.shape} and ${s.shape} and transposeA=${a} and transposeB=${i} must match.`);let v=a?[g,c,m]:[g,m,c],$=i?[x,f,p]:[x,p,f],A=zr({inputs:{x:n},backend:t,attrs:{shape:v}}),R=zr({inputs:{x:s},backend:t,attrs:{shape:$}}),M=t.dataIdMap.get(A.dataId).id,V=t.dataIdMap.get(R.dataId).id,G=a?A.shape[2]:A.shape[1],W=i?R.shape[1]:R.shape[2],q=Math.max(g,x),Z=t.makeOutput([q,G,W],A.dtype),X=t.dataIdMap.get(Z.dataId).id,Y=new Uint8Array(new Int32Array(A.shape).buffer),te=new Uint8Array(new Int32Array(R.shape).buffer);return mM(M,Y,A.shape.length,V,te,R.shape.length,a,i,X),t.disposeData(A.dataId),t.disposeData(R.dataId),Z.shape=w,Z}var fM={kernelName:Yo,backendName:"wasm",setupFunc:R9,kernelFunc:F9};function hc(r){let{inputs:{x:e},attrs:{dtype:t},backend:o}=r,n=o.makeOutput(e.shape,t),s=o.typedArrayFromHeap(e);return o.typedArrayFromHeap(n).set(s),n}var dM={kernelName:Eo,backendName:"wasm",kernelFunc:hc};var hM=At(Zo);var gM;function O9(r){gM=r.wasm.cwrap(Ao,null,["number","number","number","number"])}function P9(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{clipValueMin:s,clipValueMax:a}=o,i=t.dataIdMap.get(n.dataId).id,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(l.dataId).id;return gM(i,s,a,u),l}var xM={kernelName:Ao,backendName:"wasm",setupFunc:O9,kernelFunc:P9};function tI(r){let{inputs:e,backend:t}=r,o=y.parseAxisParam(r.attrs.axis,e[0].shape)[0],n=N.computeOutShape(e.map(f=>f.shape),o),s=e.filter(f=>y.sizeFromShape(f.shape)>0);if(s.length===1)return dc({inputs:{x:s[0]},backend:t});let a=t.makeOutput(n,e[0].dtype);if(y.sizeFromShape(n)===0)return a;let i=s.map(f=>f.shape);if(N.assertParamsConsistent(i,o),s[0].dtype==="string"){let f=s.map(_=>{let w=y.sizeFromShape(_.shape.slice(o));return zr({inputs:{x:_},backend:t,attrs:{shape:[-1,w]}})}),d=f.map(_=>({vals:t.readSync(_.dataId),shape:_.shape}));n=N.computeOutShape(f.map(_=>_.shape),1);let h=f[0].shape[0]===1,g=qd(d,n,e[0].dtype,h),x=N.computeOutShape(s.map(_=>_.shape),o);a.shape=x;let b=t.dataIdMap.get(a.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),a}let l=y.sizeFromShape(s[0].shape.slice(0,o)),u=0,c=s.map(f=>{let d=y.sizeFromShape(f.shape.slice(o));return u+=d,d}),p=s.map(f=>t.typedArrayFromHeap(f)),m=t.typedArrayFromHeap(a);for(let f=0;f`cumsum does not support ${n.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),c=n;u!==null&&(c=Yp({inputs:{x:n},attrs:{perm:u},backend:t}));let p=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[p],l);let m=t.makeOutput(c.shape,c.dtype),f=c.shape[p],d=t.dataIdMap.get(c.dataId).id,h=t.dataIdMap.get(m.dataId).id;NM(d,a?1:0,i?1:0,f,h,zt[n.dtype]);let g=m;if(u!==null){let x=N.getUndoAxesPermutation(u);g=Yp({inputs:{x:m},attrs:{perm:x},backend:t}),t.disposeData(c.dataId),t.disposeData(m.dataId)}return g}var SM={kernelName:tn,backendName:"wasm",setupFunc:W9,kernelFunc:U9};var TM;function j9(r){TM=r.wasm.cwrap(oi,null,["number","number","number","array","number","array","array","number","number"])}function H9(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{blockSize:s,dataFormat:a}=o;y.assert(s>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${s}`);let i=n.shape[0],l=a==="NHWC"?n.shape[1]:n.shape[2],u=a==="NHWC"?n.shape[2]:n.shape[3],c=a==="NHWC"?n.shape[3]:n.shape[1],p=l*s,m=u*s,f=c/(s*s),d=a==="NHWC"?[i,p,m,f]:[i,f,p,m],h=e.makeOutput(d,"float32"),x=e.dataIdMap.get(n.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(n.shape)).buffer),_=new Uint8Array(new Int32Array(d).buffer),w=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),v=e.dataIdMap.get(h.dataId).id;return TM(x,s,a==="NHWC"?1:0,b,n.shape.length-1,_,w,d.length,v),h}var EM={kernelName:oi,backendName:"wasm",setupFunc:j9,kernelFunc:H9};var AM;function q9(r){AM=r.wasm.cwrap(rn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function K9(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s}=e,a=o.dataIdMap.get(n.dataId).id,i=o.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:c,dimRoundingMode:p}=t,m=u==null?[1,1]:u,f=N.computeConv2DInfo(n.shape,s.shape,l,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,_=f.padInfo.left,w=f.dilationHeight,v=f.dilationWidth,$=f.strideHeight,A=f.strideWidth,R=f.inChannels,M=f.outChannels,V=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let G=o.makeOutput(f.outShape,"float32"),W=o.dataIdMap.get(G.dataId).id;return AM(a,n.shape[0],n.shape[1],n.shape[2],i,d,h,g,x,b,_,V,w,v,$,A,R,M,W),G}var DM={kernelName:rn,backendName:"wasm",setupFunc:q9,kernelFunc:K9};var X9=!1,$M=_t(ii,X9,"bool");var RM=At(nn);function ty(r){let{inputs:e,attrs:t,backend:o}=r,{input:n}=e,{dim:s}=t,a=n.shape.length,i=n.shape.slice(),l=s;return s<0&&(y.assert(-(a+1)<=s,()=>`Axis must be in the interval [${-(a+1)}, ${a}]`),l=a+s+1),i.splice(l,0,1),zr({inputs:{x:n},backend:o,attrs:{shape:i}})}var FM={kernelName:ps,backendName:"wasm",kernelFunc:ty};function Y9(r){let{attrs:{shape:e,value:t,dtype:o},backend:n}=r,s=n.makeOutput(e,o);return n.typedArrayFromHeap(s).fill(t),s}var OM={kernelName:ua,backendName:"wasm",kernelFunc:Y9};var PM;function Z9(r){PM=r.wasm.cwrap(li,null,["number","number","number","number","number","number"])}function J9(r){let{inputs:e,backend:t}=r,{image:o}=e,n=t.makeOutput(o.shape,o.dtype),s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,[i,l,u,c]=o.shape;return PM(s,i,l,u,c,a),n}var MM={kernelName:li,backendName:"wasm",kernelFunc:J9,setupFunc:Z9};var LM=At(sn);var Q9=!1,zM=_t(an,Q9);var BM;function eQ(r){BM=r.wasm.cwrap(ln,null,["number","number","number","number","number","number","number"])}function tQ(r){let{backend:e,inputs:t,attrs:o}=r,{varianceEpsilon:n}=o,{x:s,mean:a,variance:i,offset:l,scale:u}=t,c=e.dataIdMap.get(s.dataId).id,p=e.dataIdMap.get(a.dataId).id,m=e.dataIdMap.get(i.dataId).id,f=l!=null?e.dataIdMap.get(l.dataId).id:0,d=u!=null?e.dataIdMap.get(u.dataId).id:0,h=e.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=e.dataIdMap.get(h.dataId).id;return BM(c,p,m,f,d,n,g),h}var VM={kernelName:ln,backendName:"wasm",setupFunc:eQ,kernelFunc:tQ};var GM;function rQ(r){GM=r.wasm.cwrap(vs,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 oQ(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=N.computeConv2DInfo(n.shape,s.shape,l,c,u,m),g=Dl[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=o.dataIdMap.get(n.dataId).id,b=o.dataIdMap.get(s.dataId).id,_=h.outChannels,w=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==_)throw new Error(`FusedConv2D bias shape (${ae.shape}) does not match the number of output channels (${_})`);w=ae.id}let v=h.filterHeight,$=h.filterWidth,A=h.padInfo.top,R=h.padInfo.right,M=h.padInfo.bottom,V=h.padInfo.left,G=h.dilationHeight,W=h.dilationWidth,q=h.strideHeight,Z=h.strideWidth,X=h.inChannels,Y=h.padInfo.type==="SAME"?1:0,te=h.batchSize,K=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let ie=o.makeOutput(h.outShape,"float32"),se=o.dataIdMap.get(ie.dataId).id,pe=i==null?0:o.dataIdMap.get(i.dataId).id;return GM(x,te,K,re,b,v,$,w,A,R,M,V,Y,G,W,q,Z,X,_,g,pe,d||0,se),ie}var WM={kernelName:vs,backendName:"wasm",setupFunc:rQ,kernelFunc:oQ};var UM;function nQ(r){UM=r.wasm.cwrap(Cs,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 sQ(r){let{inputs:e,attrs:t,backend:o}=r,{x:n,filter:s,bias:a,preluActivationWeights:i}=e,{strides:l,pad:u,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=t,h=N.computeConv2DInfo(n.shape,s.shape,l,c,u,m,!0),g=Dl[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=o.dataIdMap.get(n.dataId).id,b=o.dataIdMap.get(s.dataId).id,_=h.outChannels,w=0;if(a!=null){let ae=o.dataIdMap.get(a.dataId);if(ae.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${ae.shape.length}.`);if(ae.shape[0]!==_)throw new Error(`FusedDepthwiseConv2D bias shape (${ae.shape}) does not match the number of output channels (${_})`);w=ae.id}let v=h.filterHeight,$=h.filterWidth,A=h.padInfo.top,R=h.padInfo.right,M=h.padInfo.bottom,V=h.padInfo.left,G=h.dilationHeight,W=h.dilationWidth,q=h.strideHeight,Z=h.strideWidth,X=h.inChannels,Y=h.padInfo.type==="SAME"?1:0,te=h.batchSize,K=h.inHeight,re=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let ie=o.makeOutput(h.outShape,"float32"),se=o.dataIdMap.get(ie.dataId).id,pe=i==null?0:o.dataIdMap.get(i.dataId).id;return UM(x,te,K,re,b,v,$,w,A,R,M,V,Y,G,W,q,Z,X,_,g,pe,d||0,se),ie}var jM={kernelName:Cs,backendName:"wasm",setupFunc:nQ,kernelFunc:sQ};var HM;function iQ(r){HM=r.wasm.cwrap(ui,null,["number","number","number","number","number","number","array","number"])}function aQ(r){let{backend:e,inputs:t}=r,{params:o,indices:n}=t,[s,a,i,l]=rg.prepareAndValidate(o,n),u=e.makeOutput(s,o.dtype);if(a===0)return u;let c=n.shape,p=c[c.length-1],f=e.dataIdMap.get(o.dataId).id,h=e.dataIdMap.get(n.dataId).id,g=new Uint8Array(new Int32Array(l).buffer),x=e.dataIdMap.get(u.dataId).id;return HM(f,zt[o.dtype],h,a,p,i,g,x),u}var qM={kernelName:ui,backendName:"wasm",setupFunc:iQ,kernelFunc:aQ};var KM;function lQ(r){KM=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function uQ(r){let{backend:e,inputs:t,attrs:o}=r,{x:n,indices:s}=t,{axis:a,batchDims:i}=o,l=y.parseAxisParam(a,n.shape)[0],u=N.segment_util.collectGatherOpShapeInfo(n,s,l,i),c=zr({inputs:{x:n},attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]},backend:e}),p=y.sizeFromShape(s.shape),m=zr({inputs:{x:s},attrs:{shape:[u.batchSize,p/u.batchSize]},backend:e}),f=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize],d=e.makeOutput(f,n.dtype);if(y.sizeFromShape(n.shape)===0)return d;let h=c.shape.length-1,x=e.dataIdMap.get(c.dataId).id,_=e.dataIdMap.get(m.dataId).id,w=e.dataIdMap.get(d.dataId).id,v=new Uint8Array(new Int32Array(y.computeStrides(c.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer);return KM(x,zt[n.dtype],v,h,_,u.batchSize,$,w),e.disposeData(c.dataId),e.disposeData(m.dataId),d.shape=u.outputShape,d}var XM={kernelName:ms,backendName:"wasm",setupFunc:lQ,kernelFunc:uQ};var cQ=!1,YM=_t(ci,cQ,"bool");var pQ=!1,ZM=_t(un,pQ,"bool");var JM;function mQ(r){JM=r.wasm.cwrap(cn,null,["number","number","number"])}function fQ(r){let{inputs:{x:e},attrs:{alpha:t},backend:o}=r,n=o.dataIdMap.get(e.dataId).id,s=o.makeOutput(e.shape,e.dtype);if(y.sizeFromShape(e.shape)!==0){let a=o.dataIdMap.get(s.dataId).id;JM(n,t,a)}return s}var QM={kernelName:cn,backendName:"wasm",setupFunc:mQ,kernelFunc:fQ};var dQ=!1,eL=_t(di,dQ,"bool");var hQ=!1,tL=_t(hi,hQ,"bool");var rL=At(pn);var gQ=!1,oL=_t(xi,gQ,"bool");var nL;function xQ(r){nL=r.wasm.cwrap(mn,null,["number, number, number"])}function yQ(r){let{backend:e,inputs:t,attrs:o}=r,{reductionIndices:n,keepDims:s}=o,{x:a}=t,l=e.dataIdMap.get(a.dataId).id,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=ns(a,n,e);if(f){let _=e.dataIdMap.get(c.dataId).id;u=c,l=_}let d=u.shape.length;N.assertAxesAreInnerMostDims("max",p,d);let[h,g]=N.computeOutAndReduceShapes(u.shape,p),x=y.sizeFromShape(g),b=e.makeOutput(h,a.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;nL(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var sL={kernelName:mn,backendName:"wasm",setupFunc:xQ,kernelFunc:yQ};var bQ=!1,iL=_t(fn,bQ);var aL;function _Q(r){aL=r.wasm.cwrap(dn,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function wQ(r){let{inputs:e,attrs:t,backend:o}=r,n=e.x,s=o.dataIdMap.get(n.dataId).id,{filterSize:a,strides:i,pad:l,dimRoundingMode:u}=t,c=N.computePool2DInfo(n.shape,a,i,1,l,u),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,_=c.strideHeight,w=c.strideWidth,v=c.inChannels,$=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=o.makeOutput(c.outShape,"float32"),R=o.dataIdMap.get(A.dataId).id;return aL(s,n.shape[0],n.shape[1],n.shape[2],p,m,f,d,h,g,x,b,_,w,v,$,R),A}var lL={kernelName:dn,backendName:"wasm",setupFunc:_Q,kernelFunc:wQ};var uL;function kQ(r){uL=r.wasm.cwrap(hn,null,["number, number, number"])}function vQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=ns(a,n,e),d=p;if(f){let w=e.dataIdMap.get(c.dataId).id;w!==i&&(u=c,l=w,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=hc({backend:e,inputs:{x:u},attrs:{dtype:"float32"}}),l=e.dataIdMap.get(b.dataId).id);let _=e.makeOutput(h,"float32");if(y.sizeFromShape(u.shape)!==0){let w=e.dataIdMap.get(_.dataId).id;uL(l,x,w)}if(f&&e.disposeData(c.dataId),s){let w=N.expandShapeToKeepDim(_.shape,m);_.shape=w}return u.dtype!=="float32"&&e.disposeData(b.dataId),_}var cL={kernelName:hn,backendName:"wasm",setupFunc:kQ,kernelFunc:vQ};var pL;function CQ(r){pL=r.wasm.cwrap(gn,null,["number, number, number"])}function IQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=ns(a,n,e);if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_)}let d=u.shape.length;N.assertAxesAreInnerMostDims("min",p,d);let[h,g]=N.computeOutAndReduceShapes(u.shape,p),x=y.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;pL(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var mL={kernelName:gn,backendName:"wasm",setupFunc:CQ,kernelFunc:IQ};var NQ=!1,fL=_t(xn,NQ);var SQ=!0,dL=_t(yn,SQ);var hL=At(fs);function Zp(r,e){let t=new Int32Array(r.wasm.HEAPU8.buffer,e,4),o=t[0],n=t[1],s=t[2],a=t[3];return r.wasm._free(e),{pSelectedIndices:o,selectedSize:n,pSelectedScores:s,pValidOutputs:a}}var gL;function TQ(r){gL=r.wasm.cwrap(_i,"number",["number","number","number","number","number"])}function EQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a}=o,{boxes:i,scores:l}=t,u=e.dataIdMap.get(i.dataId).id,c=e.dataIdMap.get(l.dataId).id,p=gL(u,c,s,n,a),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Zp(e,p);return e.wasm._free(d),e.wasm._free(h),e.makeOutput([f],"int32",m)}var xL={kernelName:_i,backendName:"wasm",setupFunc:TQ,kernelFunc:EQ};var yL;function AQ(r){yL=r.wasm.cwrap(wi,"number",["number","number","number","number","number","bool"])}function DQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,padToMaxOutputSize:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=yL(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Zp(e,m);e.wasm._free(h);let x=e.makeOutput([d],"int32",f),b=e.makeOutput([],"int32",g);return[x,b]}var bL={kernelName:wi,backendName:"wasm",setupFunc:AQ,kernelFunc:DQ};var _L;function $Q(r){_L=r.wasm.cwrap(ki,"number",["number","number","number","number","number","number"])}function RQ(r){let{backend:e,inputs:t,attrs:o}=r,{iouThreshold:n,maxOutputSize:s,scoreThreshold:a,softNmsSigma:i}=o,{boxes:l,scores:u}=t,c=e.dataIdMap.get(l.dataId).id,p=e.dataIdMap.get(u.dataId).id,m=_L(c,p,s,n,a,i),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Zp(e,m);e.wasm._free(g);let x=e.makeOutput([d],"int32",f),b=e.makeOutput([d],"float32",h);return[x,b]}var wL={kernelName:ki,backendName:"wasm",setupFunc:$Q,kernelFunc:RQ};var FQ=!1,kL=_t(bi,FQ,"bool");var vL;function OQ(r){vL=r.wasm.cwrap(bn,null,["number","number","number","number","number"])}function PQ(r){let{inputs:e,backend:t,attrs:o}=r,{indices:n}=e,{depth:s,onValue:a,offValue:i}=o,l=t.makeOutput([...n.shape,s],"int32"),u=t.dataIdMap.get(l.dataId).id,p=t.dataIdMap.get(n.dataId).id;return vL(p,s,a,i,u),l}var CL={kernelName:bn,backendName:"wasm",setupFunc:OQ,kernelFunc:PQ};function MQ(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(1),o}var IL={kernelName:ds,backendName:"wasm",kernelFunc:MQ};function LQ(r){let{inputs:e,backend:t,attrs:o}=r,{axis:n}=o;if(e.length===1)return ty({inputs:{input:e[0]},backend:t,attrs:{dim:n}});let s=e[0].shape,a=e[0].dtype;e.forEach(l=>{y.assertShapesMatch(s,l.shape,"All tensors passed to stack must have matching shapes"),y.assert(a===l.dtype,()=>"All tensors passed to stack must have matching dtypes")});let i=e.map(l=>ty({inputs:{input:l},backend:t,attrs:{dim:n}}));return tI({inputs:i,backend:t,attrs:{axis:n}})}var NL={kernelName:hs,backendName:"wasm",kernelFunc:LQ};var SL;function zQ(r){SL=r.wasm.cwrap(_n,null,["number","array","number","number","array","array","number","number"])}function BQ(r){let{inputs:{x:e},backend:t,attrs:{paddings:o,constantValue:n}}=r,s=o.map((d,h)=>d[0]+e.shape[h]+d[1]),a=t.dataIdMap.get(e.dataId).id,i=t.makeOutput(s,e.dtype),l=t.dataIdMap.get(i.dataId).id,u=new Uint8Array(new Int32Array(e.shape).buffer),c=o.map(d=>d[0]),p=o.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return SL(a,u,e.shape.length,zt[e.dtype],m,f,n,l),i}var TL={kernelName:_n,backendName:"wasm",kernelFunc:BQ,setupFunc:zQ};var VQ=!1,EL=_t(wn,VQ);var AL;function GQ(r){AL=r.wasm.cwrap(kn,null,["number","number","number"])}function WQ(r){let{inputs:e,backend:t}=r,{x:o,alpha:n}=e,s=t.dataIdMap.get(o.dataId).id,a=t.dataIdMap.get(n.dataId).id,i=t.makeOutput(o.shape,"float32"),l=t.dataIdMap.get(i.dataId).id;return AL(s,a,l),i}var DL={kernelName:kn,backendName:"wasm",setupFunc:GQ,kernelFunc:WQ};var $L;function UQ(r){$L=r.wasm.cwrap(vi,null,["number","number","number","number"])}function jQ(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=ns(a,n,e),d=p;if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;$L(l,x,zt[b.dtype],_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var RL={kernelName:vi,backendName:"wasm",setupFunc:UQ,kernelFunc:jQ};var HQ=r=>{let{backend:e,attrs:t}=r,{start:o,stop:n,step:s,dtype:a}=t,i=Yd(o,n,s,a),l=e.makeOutput([i.length],a);return e.typedArrayFromHeap(l).set(i),l},FL={kernelName:fa,backendName:"wasm",kernelFunc:HQ};var qQ=!0,OL=_t(on,qQ);var PL=At(vn);var ML=At(In);var LL;function KQ(r){LL=r.wasm.cwrap(Cn,null,["number","number","number","number","number","number","number","number","number","number"])}function XQ(r){let{backend:e,inputs:t,attrs:o}=r,{images:n}=t,{alignCorners:s,halfPixelCenters:a,size:i}=o,[l,u]=i,[c,p,m,f]=n.shape,d=[c,l,u,f],h=e.dataIdMap.get(n.dataId),g;h.dtype!=="float32"&&(g=hc({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),h=e.dataIdMap.get(g.dataId));let x=h.id,b=e.makeOutput(d,"float32");if(y.sizeFromShape(n.shape)===0)return b;let _=e.dataIdMap.get(b.dataId).id;return LL(x,c,p,m,f,l,u,s?1:0,a?1:0,_),g!=null&&e.disposeData(g.dataId),b}var zL={kernelName:Cn,backendName:"wasm",setupFunc:KQ,kernelFunc:XQ};var BL;function YQ(r){BL=r.wasm.cwrap(Nn,null,["number","array","number","array","number","number"])}function ZQ(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,{dims:s}=o,a=y.parseAxisParam(s,n.shape);if(n.shape.length===0)return dc({inputs:{x:n},backend:t});let i=t.makeOutput(n.shape,n.dtype),l=t.dataIdMap.get(n.dataId).id,u=t.dataIdMap.get(i.dataId).id,c=new Uint8Array(new Int32Array(a).buffer),p=new Uint8Array(new Int32Array(n.shape).buffer);BL(l,c,a.length,p,n.shape.length,u);let m=zr({inputs:{x:i},attrs:{shape:n.shape},backend:t});return t.disposeData(i.dataId),m}var VL={kernelName:Nn,backendName:"wasm",kernelFunc:ZQ,setupFunc:YQ};var GL;function JQ(r){GL=r.wasm.cwrap(Ri,null,["number","number","number","number","number","number","number","number","array","number","number"])}function QQ(r){let{inputs:e,backend:t,attrs:o}=r,{image:n}=e,{radians:s,fillValue:a,center:i}=o,l=t.makeOutput(n.shape,n.dtype),u=t.dataIdMap.get(n.dataId).id,c=t.dataIdMap.get(l.dataId).id,[p,m,f,d]=n.shape,[h,g]=N.getImageCenter(i,m,f),x=a===0,b=255,_=typeof a=="number"?[a,a,a,x?0:b]:[...a,b],w=new Uint8Array(new Int32Array(_).buffer);return GL(u,p,m,f,d,s,h,g,w,_.length,c),l}var WL={kernelName:Ri,backendName:"wasm",kernelFunc:QQ,setupFunc:JQ};var UL=At(Sn);var jL=At(Tn);var HL;function eee(r){HL=r.wasm.cwrap(Ii,null,["number","number","number","number","number","number","array","number","number"])}function tee(r){let{backend:e,inputs:t,attrs:o}=r,{indices:n,updates:s}=t,{shape:a}=o,i=e.makeOutput(a,s.dtype);if(y.sizeFromShape(a)===0)return i;let{sliceRank:l,numUpdates:u,sliceSize:c,strides:p,outputSize:m}=og.calculateShapes(s,n,a),d=e.dataIdMap.get(n.dataId).id,g=e.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=e.dataIdMap.get(i.dataId).id;return HL(d,g,zt[s.dtype],l,u,c,x,m,b),i}var qL={kernelName:Ii,backendName:"wasm",setupFunc:eee,kernelFunc:tee};var KL;function ree(r){KL=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function oee(r){let{inputs:e,backend:t}=r,{condition:o,t:n,e:s}=e,a=t.dataIdMap.get(o.dataId).id,i=t.dataIdMap.get(n.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=t.makeOutput(n.shape,n.dtype),c=t.dataIdMap.get(u.dataId).id,p=o.shape.length,m=n.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(n.shape.slice(1));return KL(a,i,l,f,c),u}var XL={kernelName:xs,backendName:"wasm",kernelFunc:oee,setupFunc:ree};var YL;function nee(r){YL=r.wasm.cwrap(An,null,["number","number"])}function see(r){let{backend:e,inputs:{x:t}}=r,o=e.dataIdMap.get(t.dataId).id,n=e.makeOutput(t.shape,t.dtype),s=e.dataIdMap.get(n.dataId).id;return y.sizeFromShape(n.shape)===0||YL(o,s),n}var ZL={kernelName:"Sigmoid",backendName:"wasm",setupFunc:nee,kernelFunc:see};var JL=At(En);function gc(r){let{inputs:{x:e},attrs:{begin:t,size:o},backend:n}=r,[s,a]=or.parseSliceParams(e,t,o),i=or.isSliceContinous(e.shape,s,a),l=n.readSync(e.dataId),u=n.makeOutput(a,e.dtype),c=y.computeStrides(e.shape),p=n.dataIdMap.get(u.dataId);if(i){let d=or.computeFlatOffset(s,c);return e.dtype==="string"?p.stringBytes=l.slice(d,d+y.sizeFromShape(a)):n.typedArrayFromHeap(u).set(l.subarray(d,d+y.sizeFromShape(a))),u}if(e.dtype==="string"){let d=Zd(l,s,a,e.shape,e.dtype);return p.stringBytes=d,u}let m=n.typedArrayFromHeap(u),f=e.shape.length;if(f===2)iee(l,c[0],m,s,a);else if(f===3)aee(l,c[0],c[1],m,s,a);else if(f===4)lee(l,c[0],c[1],c[2],m,s,a);else{let d=Zd(l,s,a,e.shape,e.dtype);m.set(d)}return u}function iee(r,e,t,o,n){let s=0,a=o[0],i=o[1],l=a+n[0];for(let u=a;u{let m=[...c];m[i]=p;let f=gc({inputs:{x:n},attrs:{begin:u,size:m},backend:o});return u[i]+=p,f})}var rz={kernelName:bs,backendName:"wasm",kernelFunc:pee};var oz=At(Dn);var nz=At(ga);var mee=!0,sz=_t(Fn,mee);var iz;function fee(r){iz=r.wasm.cwrap($o,null,["number","number","number"])}function dee(r){let{backend:e,inputs:t,attrs:o}=r,{alpha:n}=o,{x:s}=t,a=e.dataIdMap.get(s.dataId).id,i=e.makeOutput(s.shape,s.dtype),l=e.dataIdMap.get(i.dataId).id;return iz(a,n,l),i}var az={kernelName:$o,backendName:"wasm",setupFunc:fee,kernelFunc:dee};var lz;function hee(r){lz=r.wasm.cwrap(Ai,null,["number","array","number","array","array","array","array","array","number","number"])}function gee(r){let{backend:e,inputs:t,attrs:o}=r,{x:n}=t,{begin:s,end:a,strides:i}=o;i==null&&(i=new Array(s.length));let{beginMask:l,endMask:u,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=o,f=N.slice_util.maskToAxes(c);if(f.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(c!==0&&p!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(c!==0&&m!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");let d=n.shape.length-s.length,h=N.slice_util.maskToAxes(p),g=n.shape.slice();h.forEach(G=>{s[G]=0,a[G]=1,g.splice(G,0,1)});let x=zr({inputs:{x:n},attrs:{shape:g},backend:e}),{begin:b,end:_,strides:w}=N.slice_util.getNormalizedAxes(x.shape,f,d,s,a,i,l,u,c);s=b,a=_,i=w;let v=N.slice_util.maskToAxes(m);v.forEach(G=>{a[G]=s[G]+1,i[G]=1});let $=N.slice_util.computeOutShape(s,a,i),A=$.filter((G,W)=>v.indexOf(W)===-1);if(i.every(G=>G===1)){let G=gc({inputs:{x:n},attrs:{begin:s,size:$},backend:e});e.disposeData(x.dataId);let W=zr({inputs:{x:G},attrs:{shape:A},backend:e});return e.disposeData(G.dataId),W}let M=e.makeOutput(A,"float32");if(!A.some(G=>G===0)){let G=e.dataIdMap.get(x.dataId).id,W=new Uint8Array(new Int32Array(y.computeStrides(x.shape)).buffer),q=new Uint8Array(new Int32Array(s).buffer),Z=new Uint8Array(new Int32Array(a).buffer),X=new Uint8Array(new Int32Array(i).buffer),Y=new Uint8Array(new Int32Array(A).buffer),te=new Uint8Array(new Int32Array(y.computeStrides(A)).buffer),K=e.dataIdMap.get(M.dataId).id;lz(G,W,x.shape.length,q,Z,X,Y,te,A.length,K)}e.disposeData(x.dataId);let V=zr({inputs:{x:M},attrs:{shape:A},backend:e});return e.disposeData(M.dataId),V}var uz={kernelName:Ai,backendName:"wasm",setupFunc:hee,kernelFunc:gee};var xee=!0,cz=_t(On,xee);var pz;function yee(r){pz=r.wasm.cwrap($n,null,["number, number, number"])}function bee(r){let{backend:e,inputs:t,attrs:o}=r,{axis:n,keepDims:s}=o,{x:a}=t,i=e.dataIdMap.get(a.dataId).id,l=i,u=a,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=ns(a,n,e),d=p;if(f){let _=e.dataIdMap.get(c.dataId).id;_!==i&&(u=c,l=_,d=N.getInnerMostAxes(d.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",d,u.shape.length);let[h,g]=N.computeOutAndReduceShapes(u.shape,d),x=y.sizeFromShape(g),b=e.makeOutput(h,u.dtype);if(y.sizeFromShape(u.shape)!==0){let _=e.dataIdMap.get(b.dataId).id;pz(l,x,_)}if(f&&e.disposeData(c.dataId),s){let _=N.expandShapeToKeepDim(b.shape,m);b.shape=_}return b}var mz={kernelName:$n,backendName:"wasm",setupFunc:yee,kernelFunc:bee};var fz=At(Pn);var dz;function _ee(r){dz=r.wasm.cwrap(yo,null,["number","array","number","array","number","number"])}function wee(r){let{inputs:e,backend:t,attrs:o}=r,{x:n}=e,s=t.dataIdMap.get(n.dataId).id,{reps:a}=o,i=new Array(n.shape.length);for(let m=0;m{let{x:o}=r,{k:n,sorted:s}=t,a=e.dataIdMap.get(o.dataId).id,i=new Uint8Array(new Int32Array(o.shape).buffer),l=o.shape.slice();l[l.length-1]=n;let u=e.makeOutput(l,o.dtype),c=e.dataIdMap.get(u.dataId).id,p=e.makeOutput(l,"int32"),m=e.dataIdMap.get(p.dataId).id;return gz(a,i,o.shape.length,zt[o.dtype],n,s,c,m),[u,p]},xz={kernelName:$i,backendName:"wasm",setupFunc:kee,kernelFunc:vee};function Cee(r){let{inputs:e,backend:t,attrs:o}=r,{value:n}=e,{axis:s}=o;s<0&&(s+=n.shape.length);let a=n.shape[s],i=n.shape.length,l=new Array(i-1),u=0;for(let f=0;f({dataId:f,dtype:d,shape:l}))}var yz={kernelName:_s,backendName:"wasm",kernelFunc:Cee};function Iee(r){let{inputs:{x:e},backend:t}=r,o=t.makeOutput(e.shape,e.dtype);return t.typedArrayFromHeap(o).fill(0),o}var bz={kernelName:ws,backendName:"wasm",kernelFunc:Iee};var Nee=[eM,tM,oM,lM,cM,fM,dM,hM,xM,yM,_M,kM,vM,IM,SM,EM,DM,$M,RM,FM,OM,MM,LM,zM,QP,VM,WM,jM,qM,XM,YM,ZM,nM,QM,eL,tL,rL,oL,sL,iL,lL,cL,mL,fL,dL,hL,xL,bL,wL,kL,CL,IL,NL,TL,EL,DL,RL,FL,OL,PL,ML,pM,zL,VL,WL,jL,UL,qL,XL,ZL,JL,QL,tz,rz,oz,nz,sz,az,uz,cz,mz,fz,hz,xz,iM,yz,bz];for(let r of Nee)Qa(r);var oI=U();oI.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])));oI.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(oI.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(r){return!1}});var lI=Tc(kz());var vz='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}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;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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["dynCall_ii"](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"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){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.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");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()}}}}';var Iz=Tc(Cz());var ny=class extends js{constructor(e){super();this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new Ya(this,Fo())}write(e,t,o){let n={id:this.dataIdNextNumber++};return this.move(n,e,t,o,1),n}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=y.now();return e(),{kernelMs:y.now()-t}}move(e,t,o,n,s){let a=this.dataIdNextNumber++;if(n==="string"){let c=t;this.dataIdMap.set(e,{id:a,stringBytes:c,shape:o,dtype:n,memoryOffset:null,refCount:s});return}let i=y.sizeFromShape(o),l=i*y.bytesPerElement(n),u=this.wasm._malloc(l);this.dataIdMap.set(e,{id:a,memoryOffset:u,shape:o,dtype:n,refCount:s}),this.wasm.tfjs.registerTensor(a,i,u),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,l),u)}async read(e){return this.readSync(e)}readSync(e){let{memoryOffset:t,dtype:o,shape:n,stringBytes:s}=this.dataIdMap.get(e);if(o==="string")return s;let a=this.wasm.HEAPU8.slice(t,t+y.sizeFromShape(n)*y.bytesPerElement(o));return See(a.buffer,o)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let o=this.dataIdMap.get(e);if(o.refCount--,!t&&o.refCount>0)return!1;this.wasm._free(o.memoryOffset),this.wasm.tfjs.disposeData(o.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(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,o){let n;if(o==null)n=this.write(null,e,t);else{let s=this.dataIdNextNumber++;n={id:s},this.dataIdMap.set(n,{id:s,memoryOffset:o,shape:e,dtype:t,refCount:1});let a=y.sizeFromShape(e);this.wasm.tfjs.registerTensor(s,a,o)}return{dataId:n,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:o}){let n=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(o),a=y.sizeFromShape(e);switch(t){case"float32":return new Float32Array(n,s,a);case"int32":return new Int32Array(n,s,a);case"bool":return new Uint8Array(n,s,a);default:throw new Error(`Unknown dtype ${t}`)}}};function Tee(r){return(e,t)=>(y.fetch(r,{credentials:"same-origin"}).then(o=>{o.ok||e.env.a(`failed to load wasm binary file at '${r}'`),o.arrayBuffer().then(n=>{WebAssembly.instantiate(n,e).then(s=>{t(s.instance)})})}),{})}function Nz(r,e,t){if(sy!=null)return sy;let o="tfjs-backend-wasm.wasm";return r&&e?o="tfjs-backend-wasm-threaded-simd.wasm":r&&(o="tfjs-backend-wasm-simd.wasm"),xh!=null&&xh[o]!=null?xh[o]:t+o}async function Sz(){let[r,e]=await Promise.all([U().getAsync("WASM_HAS_SIMD_SUPPORT"),U().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((t,o)=>{let n={};n.locateFile=(l,u)=>{if(l.endsWith(".worker.js")){let c=vz,p=new Blob([c],{type:"application/javascript"});return URL.createObjectURL(p)}return l.endsWith(".wasm")?Nz(r,e,yh!=null?yh:u):u+l},uI&&(n.instantiateWasm=Tee(Nz(r,e,yh!=null?yh:"")));let s;e&&r&&sy==null?(s=lI.default(n),s.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+lI.default.toString()],{type:"text/javascript"})):s=Iz.default(n);let a=null;s.tfjs={init:s.cwrap("init",null,[]),registerTensor:s.cwrap("register_tensor",null,["number","number","number"]),disposeData:s.cwrap("dispose_data",a,["number"]),dispose:s.cwrap("dispose",a,[])};let i=!1;s.onRuntimeInitialized=()=>{i=!0,bh=!1,t({wasm:s})},s.onAbort=()=>{if(i||bh)return;bh=!0,o({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"})}})}function See(r,e){switch(e){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${e}`)}}var Eee=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],sy=null,yh=null,xh={},bh=!1,uI=!1;function Aee(r,e=!1){if(ag("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),bh)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");sy=r,uI=e}function Dee(r,e=!1){if(bh)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")yh=r;else{xh=r;let t=Eee.filter(o=>xh[o]==null);if(t.length>0)throw new Error(`There were no entries found for the following binaries: ${t.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.`)}uI=e}var $ee="3.1.0";var Ree=2;bu("wasm",async()=>{let{wasm:r}=await Sz();return new ny(r)},Ree);export{us as Abs,Ks as Acos,Xs as Acosh,rp as AdadeltaOptimizer,op as AdagradOptimizer,np as AdamOptimizer,sp as AdamaxOptimizer,xo as Add,qo as AddN,Vl as All,Gl as Any,Ko as ArgMax,oa as ArgMin,Ys as Asin,Zs as Asinh,Js as Atan,ei as Atan2,Qs as Atanh,Xo as AvgPool,na as AvgPool3D,Ul as AvgPool3DGrad,Wl as AvgPoolGrad,ny as BackendWasm,Yo as BatchMatMul,sa as BatchToSpaceND,jl as Bincount,Cb as BroadcastTo,tx as Callback,Mg as CallbackList,Eo as Cast,Zo as Ceil,Ao as ClipByValue,Hl as Complex,ia as ComplexAbs,cs as Concat,Jo as Conv2D,ql as Conv2DBackpropFilter,Qo as Conv2DBackpropInput,aa as Conv3D,Kl as Conv3DBackpropFilterV2,Xl as Conv3DBackpropInputV2,en as Cos,ti as Cosh,ri as CropAndResize,tn as Cumsum,zg as CustomCallback,Ya as DataStorage,Yl as DenseBincount,oi as DepthToSpace,rn as DepthwiseConv2dNative,Zl as DepthwiseConv2dNativeBackpropFilter,Jl as DepthwiseConv2dNativeBackpropInput,Ql as Diag,la as Dilation2D,Fc as Dilation2DBackpropFilter,Rc as Dilation2DBackpropInput,wb as ENV,ox as EarlyStopping,ni as Elu,eu as EluGrad,jh as Environment,ii as Equal,si as Erf,nn as Exp,ps as ExpandDims,ai as Expm1,tu as FFT,ua as Fill,li as FlipLeftRight,sn as Floor,an as FloorDiv,Oc as FromPixels,ln as FusedBatchNorm,vs as FusedConv2D,Cs as FusedDepthwiseConv2D,ui as GatherNd,ms as GatherV2,bx as GraphModel,ci as Greater,un as GreaterEqual,Lg as History,ru as IFFT,Do as Identity,ou as Imag,Et as InputSpec,pi as IsFinite,mi as IsInf,fi as IsNan,js as KernelBackend,ca as LRN,su as LRNGrad,If as LayerVariable,vo as LayersModel,cn as LeakyRelu,di as Less,hi as LessEqual,nu as LinSpace,pn as Log,gi as Log1p,Ib as LogSoftmax,xi as LogicalAnd,Za as LogicalNot,Ja as LogicalOr,mn as Max,dn as MaxPool,pa as MaxPool3D,au as MaxPool3DGrad,iu as MaxPoolGrad,lu as MaxPoolWithArgmax,fn as Maximum,hn as Mean,gn as Min,xn as Minimum,ma as MirrorPad,yi as Mod,ip as MomentumOptimizer,uu as Multinomial,yn as Multiply,fs as Neg,_i as NonMaxSuppressionV3,wi as NonMaxSuppressionV4,ki as NonMaxSuppressionV5,bi as NotEqual,LI as OP_SCOPE_SUFFIX,bn as OneHot,ds as OnesLike,Fr as Optimizer,hs as Pack,_n as PadV2,g3 as Pool,wn as Pow,kn as Prelu,vi as Prod,ap as RMSPropOptimizer,ao as RNN,fa as Range,Ab as Rank,cu as Real,on as RealDiv,Ci as Reciprocal,Gt as Reduction,vn as Relu,In as Relu6,gs as Reshape,Cn as ResizeBilinear,mu as ResizeBilinearGrad,da as ResizeNearestNeighbor,pu as ResizeNearestNeighborGrad,Nn as Reverse,Ri as RotateWithOffset,Sn as Round,Tn as Rsqrt,ll as SGDOptimizer,Ii as ScatterNd,xs as Select,Ni as Selu,Hi as Sequential,An as Sigmoid,Ti as Sign,En as Sin,Si as Sinh,ys as Slice,Rn as Softmax,Ei as Softplus,ha as SpaceToBatchND,fu as SparseToDense,bs as SplitV,Dn as Sqrt,ga as Square,Fn as SquaredDifference,$o as Step,Ai as StridedSlice,On as Sub,$n as Sum,Lr as SymbolicTensor,Di as Tan,Pn as Tanh,Ve as Tensor,ct as TensorBuffer,yo as Tile,$i as TopK,Mn as Transpose,du as Unique,_s as Unpack,xa as UnsortedSegmentSum,tl as Variable,ws as ZerosLike,ks as _FusedMatMul,Tt as abs,Nm as acos,Sm as acosh,Q as add,i_ as addN,wu as all,nl as any,sl as argMax,Tm as argMin,Em as asin,Am as asinh,Dm as atan,$m as atan2,Rm as atanh,va as avgPool,Fm as avgPool3d,s_ as backend,N as backend_util,dG as basicLSTMCell,zn as batchNorm,c_ as batchNorm2d,p_ as batchNorm3d,m_ as batchNorm4d,Ca as batchToSpaceND,f_ as bincount,kU as booleanMaskAsync,il as broadcastTo,tg as browser,Ce as buffer,D1 as callbacks,oe as cast,Om as ceil,nr as clipByValue,Ro as clone,bo as complex,Je as concat,d_ as concat1d,h_ as concat2d,g_ as concat3d,x_ as concat4d,uw as constraints,Cu as conv1d,jr as conv2d,Iu as conv2dTranspose,Pm as conv3d,OG as conv3dTranspose,b3 as copyRegisteredKernels,Ia as cos,Nu as cosh,lf as cosineWindow,Su as cumsum,Hr as customGrad,Mk as data,y_ as denseBincount,ag as deprecationWarn,Mm as depthToSpace,Ns as depthwiseConv2d,F1 as deregisterOp,Vc as device_util,WG as diag,Lm as dilation2d,SV as disableDeprecationWarnings,Te as dispose,TV as disposeVariables,de as div,zm as divNoNan,b_ as dot,j_ as dropout,Ss as elu,NV as enableDebugMode,IV as enableProdMode,H_ as enclosingPowerOfTwo,Fo as engine,U as env,_o as equal,Bm as erf,Xt as exp,sr as expandDims,Vm as expm1,Xc as eye,Ra as fft,Na as fill,FV as findBackend,OV as findBackendFactory,Ts as floor,_u as floorDiv,Wn as fused,Bn as gather,U_ as gatherND,rg as gather_util,$V as getBackend,Hh as getGradient,Mc as getKernel,_m as getKernelsForBackend,yW as grad,bW as grads,Qt as greater,to as greaterEqual,zi as ifft,Tu as imag,Rs as image,DU as inTopKAsync,dw as initializers,Qg as input,vr as io,Bu as irfft,__ as isFinite,w_ as isInf,k_ as isNaN,Dt as keep,Sr as kernel_impls,Yw as layers,Sa as leakyRelu,Eu as less,Mo as lessEqual,Z_ as linalg,v_ as linspace,uE as loadGraphModel,y1 as loadLayersModel,Gm as localResponseNormalization,ir as log,Au as log1p,C_ as logSigmoid,Du as logSoftmax,Um as logSumExp,fr as logicalAnd,Ta as logicalNot,$u as logicalOr,T_ as logicalXor,vj as losses,We as matMul,hN as math,ar as max,Ea as maxPool,jm as maxPool3d,E_ as maxPoolWithArgmax,qr as maximum,ht as mean,Hc as memory,ek as metrics,Li as min,As as minimum,Hm as mirrorPad,qm as mod,g1 as model,tk as models,Yc as moments,IU as movingAverage,O as mul,KW as multiRNNCell,A_ as multinomial,je as neg,uf as nextFrame,Wu as norm,Gn as notEqual,Is as oneHot,Cr as ones,er as onesLike,S as op,QW as outerProduct,$r as pad,r4 as pad1d,n4 as pad2d,i4 as pad3d,l4 as pad4d,D_ as pool,Rr as pow,Da as prelu,Kb as print,Ru as prod,EV as profile,x4 as rand,I4 as randomGamma,dg as randomNormal,Ds as randomUniform,Jc as range,DV as ready,al as real,Xm as reciprocal,bu as registerBackend,b1 as registerCallbackConstructor,Sb as registerGradient,Qa as registerKernel,R1 as registerOp,rk as regularizers,Ir as relu,Ou as relu6,RV as removeBackend,L as reshape,qt as reverse,F4 as reverse1d,P4 as reverse2d,L4 as reverse3d,B4 as reverse4d,Fa as rfft,Ym as round,Pu as rsqrt,le as scalar,W_ as scatterND,og as scatter_util,Mu as selu,Zm as separableConv2d,x1 as sequential,J as serialization,DN as setBackend,PV as setPlatform,Aee as setWasmPath,Dee as setWasmPaths,B_ as setdiff1dAsync,Ur as sigmoid,Jm as sign,kj as signal,Lu as sin,zu as sinh,Fe as slice,Qm as slice1d,hg as slice2d,ef as slice3d,Qc as slice4d,or as slice_util,$a as softmax,Es as softplus,Aa as spaceToBatchND,af as sparseToDense,wj as spectral,lr as split,xt as sqrt,Pe as square,Vu as squaredDifference,wo as squeeze,Bt as stack,$s as step,tf as stridedSlice,ue as sub,ye as sum,gu as sumOutType,rf as tan,Mi as tanh,Dr as tensor,Vt as tensor1d,Bi as tensor2d,Jb as tensor3d,mU as tensor4d,fU as tensor5d,dU as tensor6d,Ln as tensor_util,TN as test_util,B as tidy,Po as tile,AV as time,of as topk,ul as train,Ue as transpose,Gu as truncatedNormal,ep as unique,y3 as unregisterGradient,x3 as unregisterKernel,nf as unsortedSegmentSum,ur as unstack,mr as upcastType,y as util,_W as valueAndGrad,wW as valueAndGrads,V_ as variable,pg as variableGrads,_9 as version,_x as version_converter,n_ as version_core,hl as version_layers,$ee as version_wasm,$t as where,sf as whereAsync,gt as zeros,Ie as zerosLike}; /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/tfjs.esm.js.map b/dist/tfjs.esm.js.map index 56bc3db..0477e8e 100644 --- a/dist/tfjs.esm.js.map +++ b/dist/tfjs.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts"], - "sourcesContent": ["", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":169,\"maximum\":169+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256480,STACKTOP=STACK_BASE,STACK_MAX=13600,DYNAMIC_BASE=5256480,DYNAMICTOP_PTR=12672;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13584;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13072;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":151,\"maximum\":151+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Step\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}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;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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[\"dynCall_ii\"](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\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){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.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\");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()}}}}';", null, null, null], - "mappings": "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AC7C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAwHA,GAAM,IAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCpOnB,AA4BA,IAAuB,UAAU,IAAM,WACrC,YAAK,kBACE,GAAI,OC9Bb,AA4BA,IAAuB,UAAU,KAAO,WACtC,YAAK,kBACE,GAAK,OC9Bd,AA4BA,IAAuB,UAAU,MAAQ,WACvC,YAAK,kBACE,GAAM,OC9Bf,AA2BA,IAAuB,UAAU,IAAM,SACnC,GACF,YAAK,kBACE,EAAI,KAAM,IC9BnB,AA2BA,IAAuB,UAAU,IAAM,SAC1B,EAAwB,GACnC,YAAK,kBACE,GAAI,KAAM,EAAM,IC9BzB,AA2BA,IAAuB,UAAU,IAAM,SAC1B,EAAwB,GACnC,YAAK,kBACE,GAAI,KAAM,EAAM,IC9BzB,AA0BA,IAAuB,UAAU,OAAS,SACtC,GACF,YAAK,kBACE,GAAO,KAAM,IC7BtB,AA0BA,IAAuB,UAAU,OAAS,SACtC,GACF,YAAK,kBACE,GAAO,KAAM,IC7BtB,AAgCA,IAAuB,UAAU,SAAW,WAE1C,YAAK,kBACL,EAAO,KAAK,OAAS,EAAG,IAAM,uCACvB,EAAQ,KAAM,KCpCvB,AAm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CA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GC7UjB,ACAA,AAiBA,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,GACxB,GAAS,GAAgB,EAGrB,YAA0B,GAC9B,GAAI,CAAE,KAAgB,MACpB,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,gBAAQ,IAAI,0CAA2C,GAChD,KAGX,GAAM,GAAK,GAAS,GACpB,MAAI,GAAG,gBACL,OAAO,IAAS,GACT,GAAgB,IAGzB,GAAG,QAAQ,EAAG,YACd,EAAG,QAAQ,EAAG,cACd,EAAG,QAAQ,EAAG,OACd,EAAG,QAAQ,EAAG,QACd,EAAG,QAAQ,EAAG,qBACd,EAAG,QAAQ,EAAG,iBACd,EAAG,OAAO,EAAG,cACb,EAAG,OAAO,EAAG,WACb,EAAG,SAAS,EAAG,MAER,GAAS,IA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,UAAS,MAAO,CAAC,MAAO,KAE3D,EAAS,EACb,GAAI,GAAe,MACjB,EAAU,KAAK,GACf,GAAM,GAAO,EAAa,uBAAuB,GACjD,EAAS,GAAU,CAAC,OAAQ,CAAC,EAAG,GAAS,UAAS,MAAO,CAAC,UAG5D,SAAU,QAAQ,GAAK,EAAQ,8BAA8B,IACtD,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,QACb,WAAY,IChHd,AA4KA,GAAM,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GCxUjB,ACAA,AAGA,GAAM,IAAU,QCHhB,AA4CO,GAAM,IAAU,CACrB,YAAa,GACb,mBAAoB,GACpB,qBAAsB,GACtB,YAAa,GACb,cAAe,GACf,iBAAkB,GAClB,KAAQ,ICnDV,AAkBA,GAAY,IAAZ,AAAA,U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", + "sources": ["../node_modules/node-fetch/browser.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "(disabled):crypto", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "(disabled):path", "(disabled):worker_threads", "(disabled):perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dense_bincount.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ComplexAbs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ExpandDims_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LeakyRelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mean_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Neg_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/RealDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Select_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/zeros_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Scatter_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/All.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Any.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/arg_min_max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ArgMin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchToSpaceND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Bincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ComplexAbs.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DenseBincount.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Diag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/dilation_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/EluGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LinSpace.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LogicalOr.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRN.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/LRNGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3D.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool3DGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multinomial.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeBilinearGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighbor.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ResizeNearestNeighborGrad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SparseToDense.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/UnsortedSegmentSum.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ExpandDims.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LeakyRelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Neg.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prod.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Range.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RealDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Select.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SplitV.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/TopK.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts"], + "sourcesContent": ["", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(typeof _scriptDir !== \"undefined\" && _scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":171,\"maximum\":171+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256464,STACKTOP=STACK_BASE,STACK_MAX=13584,DYNAMIC_BASE=5256464,DYNAMICTOP_PTR=12656;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13568;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=13056;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"wb\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"xb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"yb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"zb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Ab\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"Bb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"Cb\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"Db\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":153,\"maximum\":153+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _Ceil=Module[\"_Ceil\"]=function(){return(_Ceil=Module[\"_Ceil\"]=Module[\"asm\"][\"Ceil\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _Floor=Module[\"_Floor\"]=function(){return(_Floor=Module[\"_Floor\"]=Module[\"asm\"][\"Floor\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _LeakyRelu=Module[\"_LeakyRelu\"]=function(){return(_LeakyRelu=Module[\"_LeakyRelu\"]=Module[\"asm\"][\"LeakyRelu\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Mean=Module[\"_Mean\"]=function(){return(_Mean=Module[\"_Mean\"]=Module[\"asm\"][\"Mean\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Neg=Module[\"_Neg\"]=function(){return(_Neg=Module[\"_Neg\"]=Module[\"asm\"][\"Neg\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Prod=Module[\"_Prod\"]=function(){return(_Prod=Module[\"_Prod\"]=Module[\"asm\"][\"Prod\"]).apply(null,arguments)};var _RealDiv=Module[\"_RealDiv\"]=function(){return(_RealDiv=Module[\"_RealDiv\"]=Module[\"asm\"][\"RealDiv\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Round=Module[\"_Round\"]=function(){return(_Round=Module[\"_Round\"]=Module[\"asm\"][\"Round\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _Step=Module[\"_Step\"]=function(){return(_Step=Module[\"_Step\"]=Module[\"asm\"][\"Step\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _TopK=Module[\"_TopK\"]=function(){return(_TopK=Module[\"_TopK\"]=Module[\"asm\"][\"TopK\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;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:selfThreadId})}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};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;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)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}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;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;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[\"dynCall_ii\"](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\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){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.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\");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()}}}}';", null, null, null], + "mappings": "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IAA2C,CACtD,WAAY,GACZ,aAAc,CAAC,cACf,SAAU,CAAC,EAAY,KACrB,GAAM,CAAC,GAAc,EAKrB,MAAO,CAAC,EAHK,IACJ,GAAoB,EAAI,MAMrC,YAA+C,EAAM,GAInD,GAAM,GAAqB,GAAQ,EAAS,GAAU,IAChD,EAAW,GAAO,EAAG,GACvB,EAAa,GAAa,EAAS,GAAO,EAAG,UAC3C,EAAW,EAAS,KAAO,EAAW,KAC5C,OAAS,GAAI,EAAG,EAAI,EAAU,EAAE,EAC9B,EAAa,GAAW,EAAY,EAAI,GAE1C,EAAa,GAAW,EAAY,GAAK,EAAS,MAAO,SACzD,GAAM,GAAY,GAAU,GAC5B,MAAO,IAAM,EAAY,EAAU,GCxDrC,AAsBO,GAAM,IAAkC,CAC7C,WAAY,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAwHA,GAAM,IAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAkB,IAC3B,GAAiB,GCpOnB,AA4BA,IAAuB,UAAU,IAAM,WACrC,YAAK,kBACE,GAAI,OC9Bb,AA4BA,IAAuB,UAAU,KAAO,WACtC,YAAK,kBACE,GAAK,OC9Bd,AA4BA,IAAuB,UAAU,MAAQ,WACvC,YAAK,kBACE,GAAM,OC9Bf,AA2BA,IAAuB,U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K,CAAC,OAAQ,EAAK,UAAS,MAAO,CAAC,KAAM,KAEzD,SAAc,QAAQ,GAAK,EAAQ,8BAA8B,IAE1D,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,MACb,WAAY,ICrFd,AAgLA,GAAM,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,OAAW,KAAgB,IACzB,GAAe,GC7UjB,ACAA,AAiBA,GAAM,IAAmD,GAEnD,GAA2C,CAC/C,MAAO,GACP,UAAW,GACX,mBAAoB,GACpB,sBAAuB,GACvB,MAAO,GACP,QAAS,GACT,6BAA8B,IAO1B,YACF,EAAsB,GACxB,GAAS,GAAgB,EAGrB,YAA0B,GAC9B,GAAI,CAAE,KAAgB,MACpB,GAAM,GAAS,GAAyB,GACxC,GAAI,IAAW,KACb,GAAS,GAAgB,MAEzB,gBAAQ,IAAI,0C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C,EAAG,GACZ,UACA,MAAO,CAAC,KAAM,CAAC,EAAS,MAG1B,SAAU,KAAK,GACf,EAAU,KAAK,GAGX,EAAa,EAAQ,EAAW,EAAU,EAAO,IAIrD,EAAc,EAChB,EAAK,qBAAsB,EAAY,EAAa,GAElD,EACF,GAAQ,CAAC,OAAQ,CAAC,GAAiB,UAAS,MAAO,CAAC,MAAO,KAE3D,EAAS,EACb,GAAI,GAAe,MACjB,EAAU,KAAK,GACf,GAAM,GAAO,EAAa,uBAAuB,GACjD,EAAS,GAAU,CAAC,OAAQ,CAAC,EAAG,GAAS,UAAS,MAAO,CAAC,UAG5D,SAAU,QAAQ,GAAK,EAAQ,8BAA8B,IACtD,EAGF,GAAM,IAAyC,CACpD,WAAY,GACZ,YAAa,QACb,WAAY,IChHd,AA4KA,GAAM,IAAgC,CACpC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,O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", "names": [] } diff --git a/dist/tfjs.esm.json b/dist/tfjs.esm.json index 53faf09..f478d54 100644 --- a/dist/tfjs.esm.json +++ b/dist/tfjs.esm.json @@ -1,7 +1,7 @@ { "inputs": { "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js": { - "bytes": 3401, + "bytes": 3244, "imports": [] }, "node_modules/@tensorflow/tfjs-core/dist/util_base.js": { @@ -56,7 +56,7 @@ ] }, "node_modules/@tensorflow/tfjs-core/dist/profiler.js": { - "bytes": 4164, + "bytes": 4460, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/environment.js", @@ -129,7 +129,7 @@ ] }, "node_modules/@tensorflow/tfjs-core/dist/engine.js": { - "bytes": 42541, + "bytes": 42719, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js", @@ -15092,7 +15092,7 @@ ] }, "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js": { - "bytes": 1473, + "bytes": 3608, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -15114,7 +15114,7 @@ ] }, "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js": { - "bytes": 13319, + "bytes": 14167, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -15834,7 +15834,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js": { - "bytes": 6098, + "bytes": 6720, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -19593,7 +19593,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js": { - "bytes": 37513, + "bytes": 37906, "imports": [ { "path": "node_modules/@tensorflow/tfjs-backend-webgl/dist/flags_webgl.js", @@ -19779,7 +19779,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js": { - "bytes": 2158, + "bytes": 1859, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -20559,7 +20559,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js": { - "bytes": 3833, + "bytes": 3791, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -21026,7 +21026,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Cumsum.js": { - "bytes": 3156, + "bytes": 3164, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -23847,7 +23847,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js": { - "bytes": 1385, + "bytes": 1489, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -23856,7 +23856,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/BatchMatMul.js": { - "bytes": 4225, + "bytes": 4299, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -23877,6 +23877,19 @@ } ] }, + "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Ceil.js": { + "bytes": 896, + "imports": [ + { + "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", + "kind": "import-statement" + }, + { + "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/unary_kernel.js", + "kind": "import-statement" + } + ] + }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ClipByValue.js": { "bytes": 1504, "imports": [ @@ -24135,7 +24148,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherV2.js": { - "bytes": 3076, + "bytes": 3164, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -24555,7 +24568,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reverse.js": { - "bytes": 1965, + "bytes": 2033, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -24742,7 +24755,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/StridedSlice.js": { - "bytes": 4609, + "bytes": 4847, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -24846,7 +24859,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/register_all_kernels.js": { - "bytes": 7372, + "bytes": 7433, "imports": [ { "path": "node_modules/@tensorflow/tfjs-core/dist/index.js", @@ -24884,6 +24897,10 @@ "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js", "kind": "import-statement" }, + { + "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Ceil.js", + "kind": "import-statement" + }, { "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ClipByValue.js", "kind": "import-statement" @@ -25220,7 +25237,7 @@ "imports": [] }, "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js": { - "bytes": 74186, + "bytes": 74296, "imports": [ { "path": "(disabled):path", @@ -25249,7 +25266,7 @@ "imports": [] }, "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js": { - "bytes": 28523, + "bytes": 28635, "imports": [ { "path": "(disabled):path", @@ -25262,7 +25279,7 @@ ] }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/backend_wasm.js": { - "bytes": 13836, + "bytes": 14751, "imports": [ { "path": "node_modules/@tensorflow/tfjs-backend-wasm/dist/flags_wasm.js", @@ -25347,7 +25364,7 @@ "imports": [], "exports": [], "inputs": {}, - "bytes": 1127242 + "bytes": 1129507 }, "dist/tfjs.esm.js": { "imports": [], @@ -25859,13 +25876,13 @@ "bytesInOutput": 18 }, "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js": { - "bytesInOutput": 45591 + "bytesInOutput": 45664 }, "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js": { - "bytesInOutput": 18078 + "bytesInOutput": 18153 }, "node_modules/@tensorflow/tfjs-core/dist/backends/backend.js": { - "bytesInOutput": 956 + "bytesInOutput": 1032 }, "node_modules/@tensorflow/tfjs-core/dist/util_base.js": { "bytesInOutput": 6291 @@ -25886,7 +25903,7 @@ "bytesInOutput": 1966 }, "node_modules/@tensorflow/tfjs-core/dist/profiler.js": { - "bytesInOutput": 1214 + "bytesInOutput": 1324 }, "node_modules/@tensorflow/tfjs-core/dist/tape.js": { "bytesInOutput": 1538 @@ -25904,7 +25921,7 @@ "bytesInOutput": 802 }, "node_modules/@tensorflow/tfjs-core/dist/engine.js": { - "bytesInOutput": 15293 + "bytesInOutput": 15341 }, "node_modules/@tensorflow/tfjs-core/dist/device_util.js": { "bytesInOutput": 2280 @@ -27773,13 +27790,13 @@ "bytesInOutput": 1762 }, "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_utils.js": { - "bytesInOutput": 212 + "bytesInOutput": 923 }, "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_array.js": { "bytesInOutput": 4188 }, "node_modules/@tensorflow/tfjs-converter/dist/executor/tensor_list.js": { - "bytesInOutput": 4531 + "bytesInOutput": 4744 }, "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/control_executor.js": { "bytesInOutput": 4753 @@ -27920,7 +27937,7 @@ "bytesInOutput": 166 }, "node_modules/@tensorflow/tfjs-backend-cpu/dist/backend_cpu.js": { - "bytesInOutput": 2391 + "bytesInOutput": 2540 }, "node_modules/@tensorflow/tfjs-backend-cpu/dist/shared.js": { "bytesInOutput": 588 @@ -28532,7 +28549,7 @@ "bytesInOutput": 388 }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/backend_webgl.js": { - "bytesInOutput": 14380 + "bytesInOutput": 14364 }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/version.js": { "bytesInOutput": 15 @@ -28553,7 +28570,7 @@ "bytesInOutput": 178 }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Complex.js": { - "bytesInOutput": 398 + "bytesInOutput": 290 }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/LeakyRelu.js": { "bytesInOutput": 542 @@ -28706,7 +28723,7 @@ "bytesInOutput": 1481 }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/Slice.js": { - "bytesInOutput": 1127 + "bytesInOutput": 1101 }, "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/BatchToSpaceND.js": { "bytesInOutput": 717 @@ -29279,14 +29296,17 @@ "bytesInOutput": 1029 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reshape.js": { - "bytesInOutput": 363 + "bytesInOutput": 390 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/BatchMatMul.js": { - "bytesInOutput": 1607 + "bytesInOutput": 1655 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Cast.js": { "bytesInOutput": 209 }, + "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Ceil.js": { + "bytesInOutput": 14 + }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ClipByValue.js": { "bytesInOutput": 360 }, @@ -29348,7 +29368,7 @@ "bytesInOutput": 539 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/GatherV2.js": { - "bytesInOutput": 997 + "bytesInOutput": 1045 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Greater.js": { "bytesInOutput": 30 @@ -29447,7 +29467,7 @@ "bytesInOutput": 678 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Reverse.js": { - "bytesInOutput": 610 + "bytesInOutput": 642 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/RotateWithOffset.js": { "bytesInOutput": 597 @@ -29459,10 +29479,10 @@ "bytesInOutput": 14 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/ScatterNd.js": { - "bytesInOutput": 612 + "bytesInOutput": 616 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Select.js": { - "bytesInOutput": 505 + "bytesInOutput": 509 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sigmoid.js": { "bytesInOutput": 333 @@ -29492,7 +29512,7 @@ "bytesInOutput": 331 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/StridedSlice.js": { - "bytesInOutput": 1766 + "bytesInOutput": 1878 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/kernels/Sub.js": { "bytesInOutput": 25 @@ -29516,13 +29536,13 @@ "bytesInOutput": 176 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/register_all_kernels.js": { - "bytesInOutput": 291 + "bytesInOutput": 294 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/flags_wasm.js": { "bytesInOutput": 484 }, "node_modules/@tensorflow/tfjs-backend-wasm/dist/backend_wasm.js": { - "bytesInOutput": 4488 + "bytesInOutput": 4771 }, "node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js": { "bytesInOutput": 3414 @@ -29537,7 +29557,7 @@ "bytesInOutput": 0 } }, - "bytes": 1053904 + "bytes": 1055784 } } } diff --git a/package-lock.json b/package-lock.json index c30de7e..9ef5350 100644 --- a/package-lock.json +++ b/package-lock.json @@ -156,17 +156,17 @@ } }, "@tensorflow/tfjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.0.0.tgz", - "integrity": "sha512-8u4BGKhxJ+SHg6pWEwBqIM8Z4hdXmy3Lts8xilC1uMALoVfIActp3icUufZL5PfoXe+v7OsQe3CqC+8qTNLYoA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.1.0.tgz", + "integrity": "sha512-6w3LHpALAlBd8m3G+Gx/OvZeOYepvuBtu80+YbajSIEBp/gMJW2NCF4/mHyHcq1f1xJen0+LpwaCL7oho9v+FA==", "dev": true, "requires": { - "@tensorflow/tfjs-backend-cpu": "3.0.0", - "@tensorflow/tfjs-backend-webgl": "3.0.0", - "@tensorflow/tfjs-converter": "3.0.0", - "@tensorflow/tfjs-core": "3.0.0", - "@tensorflow/tfjs-data": "3.0.0", - "@tensorflow/tfjs-layers": "3.0.0", + "@tensorflow/tfjs-backend-cpu": "3.1.0", + "@tensorflow/tfjs-backend-webgl": "3.1.0", + "@tensorflow/tfjs-converter": "3.1.0", + "@tensorflow/tfjs-core": "3.1.0", + "@tensorflow/tfjs-data": "3.1.0", + "@tensorflow/tfjs-layers": "3.1.0", "argparse": "^1.0.10", "chalk": "^4.1.0", "core-js": "3", @@ -175,9 +175,9 @@ } }, "@tensorflow/tfjs-backend-cpu": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.0.0.tgz", - "integrity": "sha512-W7IX+xga007cYiFmq+QpEuDCy8SK+fsiVwawfjMFN+Dfs2FFi7JW6cHCLun/SQ5WC7dTWOhJVTwCaSBWQz6bjw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.1.0.tgz", + "integrity": "sha512-BsuDEg11z3QDuvjZSge/ssITl/GHUvHjvHgJOptz4lVwAMFxzNErkL/e8fUeWQp2SI2m7oWsx2vx/H1Y9cd3Gg==", "dev": true, "requires": { "@types/seedrandom": "2.4.27", @@ -185,22 +185,22 @@ } }, "@tensorflow/tfjs-backend-wasm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.0.0.tgz", - "integrity": "sha512-L3DDoHqNtbW4J8G/sPVvBIuVqm7xm+Ty/Z38NnbPpt8LhTlDlafcXQCFMJcJhx7HWqquL0GAyOik1GbzhWf+Og==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.1.0.tgz", + "integrity": "sha512-PKnIrPG1LunQrX1BaFo4GTa0fAM0c/CgCmpGVanFsIwH4Fs6BDfxLOm58ykojXPER0zv71761jFFwNh+5AGncw==", "dev": true, "requires": { - "@tensorflow/tfjs-backend-cpu": "3.0.0", + "@tensorflow/tfjs-backend-cpu": "3.1.0", "@types/emscripten": "~0.0.34" } }, "@tensorflow/tfjs-backend-webgl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.0.0.tgz", - "integrity": "sha512-ydgmwIMLQcX65I8CYXwuY03ShHi9atDn7WopjGb561/asWleL25kg/KfcZRQKbgbCFD3PRePvmW0ytqtXgDdpw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.1.0.tgz", + "integrity": "sha512-9J80sJR35Cg6BxTmQE8ljF4XLT3DXdvfLKF3C1xhRqV25PWsBvwlcvEuv6yCXp109topqJgbVnsmewS6vvVtDw==", "dev": true, "requires": { - "@tensorflow/tfjs-backend-cpu": "3.0.0", + "@tensorflow/tfjs-backend-cpu": "3.1.0", "@types/offscreencanvas": "~2019.3.0", "@types/seedrandom": "2.4.27", "@types/webgl-ext": "0.0.30", @@ -209,15 +209,15 @@ } }, "@tensorflow/tfjs-converter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.0.0.tgz", - "integrity": "sha512-3Mw7gLQiG65rap8EHKaoPxaWkwjz1hH8EbsDAaatW/ez5bWFY576hdmn/dXN56XOfdvNMDJjTgXTiU6VApH6Sg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.1.0.tgz", + "integrity": "sha512-V1DJ9ha9fy7pSXm6H6IGH4iF/5V32o32M8ZhFy7eydYUNWTJau8svpFI/i8AhJ1htVHKXtPTEPAo/T5XXsWN/g==", "dev": true }, "@tensorflow/tfjs-core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.0.0.tgz", - "integrity": "sha512-bqE6q8afvXtTa21T27+/YIqwj0wvoH3leeAl8ciNvGuOVmYA69hIaDfwthSA8WsvqR0BQDK+8qDxR/BEUtmj7g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.1.0.tgz", + "integrity": "sha512-KGSJEB6CTIk5YVgKbdpW0nAKuNtWaMdqYSrNYX43IAGdNrH0vDsipACH/bhrQyo9/NYiK/4Jbkr4k9pGwwiPJQ==", "dev": true, "requires": { "@types/offscreencanvas": "~2019.3.0", @@ -228,9 +228,9 @@ } }, "@tensorflow/tfjs-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.0.0.tgz", - "integrity": "sha512-pZjs8Z+7vD6Y0wnEIUP6qca4+db4C6v1lsV0QAgSqbnfOMz2QxQNorKxTqbrNP1mYkpqfxqR/5mLe+tD7gy36w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.1.0.tgz", + "integrity": "sha512-ZxcOvgiTK/Q6DEwCJj7TxyonqA0eCkNkV+SVODU900CHwigpihlpguzRK6h20spa7YNliLDtPfALX+qyvl0isg==", "dev": true, "requires": { "@types/node-fetch": "^2.1.2", @@ -238,19 +238,18 @@ } }, "@tensorflow/tfjs-layers": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.0.0.tgz", - "integrity": "sha512-nNtWXycmlEm56cFMXvTzS4Wr4rslgBbFJ6PC47Qbtl0qSfwV57qNTifDr4VOb9yCovOPiPUZGsi3FTaSr23Q5g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.1.0.tgz", + "integrity": "sha512-Qd5ZwdpaoKvH6Khq2U9mdeO7MArnRmKDC9/WWVfbss7+l8LC800pT9ESzIiO3P/qtDuHV1ssa0wOD31TadMOZQ==", "dev": true }, "@tensorflow/tfjs-node": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-3.0.0.tgz", - "integrity": "sha512-eeZIst3uZZ3iYj/8YiCE6nZUSNP9ISgQ9Y3BgrWp3EnySvuZv03F+XWSZ/8mNjyq4S0pBzbt08u5dY7jBRP5Tg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node/-/tfjs-node-3.1.0.tgz", + "integrity": "sha512-FhMfDgR/usnOeuDdqYXW62Z5aU+f60mPmkjwxMCwsLLYG6/fEjaeeJXu+rgwxOP+DwboLiE25EomUDNDqjrDYw==", "dev": true, "requires": { - "@tensorflow/tfjs": "3.0.0", - "@tensorflow/tfjs-core": "3.0.0", + "@tensorflow/tfjs": "3.1.0", "adm-zip": "^0.4.11", "google-protobuf": "^3.9.2", "https-proxy-agent": "^2.2.1", @@ -272,13 +271,12 @@ } }, "@tensorflow/tfjs-node-gpu": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-3.0.0.tgz", - "integrity": "sha512-K0VNB0saaHihbSyS6utFZI7hXsAOhWZsRjFEj38PUS9kA7Li7PBA6u6/rhlRFfjID44SsvhbpaWN8HsFv+brXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-node-gpu/-/tfjs-node-gpu-3.1.0.tgz", + "integrity": "sha512-l0Pl53GsOg9lCpBABhyGvLVRdBTKwjf+uk551W+PbC9uX5giYgN6ARUeyGafcV3xkjR2zJgYluSpnBR2zyWYSg==", "dev": true, "requires": { - "@tensorflow/tfjs": "3.0.0", - "@tensorflow/tfjs-core": "3.0.0", + "@tensorflow/tfjs": "3.1.0", "adm-zip": "^0.4.11", "google-protobuf": "^3.9.2", "https-proxy-agent": "^2.2.1", @@ -318,9 +316,9 @@ "dev": true }, "@types/node": { - "version": "14.14.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.27.tgz", - "integrity": "sha512-Ecfmo4YDQPwuqTCl1yBxLV5ihKfRlkBmzUEDcfIRvDxOTGQEeikr317Ln7Gcv0tjA8dVgKI3rniqW2G1OyKDng==", + "version": "14.14.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.28.tgz", + "integrity": "sha512-lg55ArB+ZiHHbBBttLpzD07akz0QPrZgUODNakeC09i62dnrywr9mFErHuaPlB6I7z+sEbK+IYmplahvplCj2g==", "dev": true }, "@types/node-fetch": { @@ -358,13 +356,13 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.0.tgz", - "integrity": "sha512-DJgdGZW+8CFUTz5C/dnn4ONcUm2h2T0itWD85Ob5/V27Ndie8hUoX5HKyGssvR8sUMkAIlUc/AMK67Lqa3kBIQ==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.1.tgz", + "integrity": "sha512-yW2epMYZSpNJXZy22Biu+fLdTG8Mn6b22kR3TqblVk50HGNV8Zya15WAXuQCr8tKw4Qf1BL4QtI6kv6PCkLoJw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.15.0", - "@typescript-eslint/scope-manager": "4.15.0", + "@typescript-eslint/experimental-utils": "4.15.1", + "@typescript-eslint/scope-manager": "4.15.1", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -400,28 +398,28 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.0.tgz", - "integrity": "sha512-V4vaDWvxA2zgesg4KPgEGiomWEBpJXvY4ZX34Y3qxK8LUm5I87L+qGIOTd9tHZOARXNRt9pLbblSKiYBlGMawg==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.1.tgz", + "integrity": "sha512-9LQRmOzBRI1iOdJorr4jEnQhadxK4c9R2aEAsm7WE/7dq8wkKD1suaV0S/JucTL8QlYUPU1y2yjqg+aGC0IQBQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.15.0", - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/typescript-estree": "4.15.0", + "@typescript-eslint/scope-manager": "4.15.1", + "@typescript-eslint/types": "4.15.1", + "@typescript-eslint/typescript-estree": "4.15.1", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.0.tgz", - "integrity": "sha512-L6Dtbq8Bc7g2aZwnIBETpmUa9XDKCMzKVwAArnGp5Mn7PRNFjf3mUzq8UeBjL3K8t311hvevnyqXAMSmxO8Gpg==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.1.tgz", + "integrity": "sha512-V8eXYxNJ9QmXi5ETDguB7O9diAXlIyS+e3xzLoP/oVE4WCAjssxLIa0mqCLsCGXulYJUfT+GV70Jv1vHsdKwtA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.15.0", - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/typescript-estree": "4.15.0", + "@typescript-eslint/scope-manager": "4.15.1", + "@typescript-eslint/types": "4.15.1", + "@typescript-eslint/typescript-estree": "4.15.1", "debug": "^4.1.1" }, "dependencies": { @@ -443,29 +441,29 @@ } }, "@typescript-eslint/scope-manager": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.0.tgz", - "integrity": "sha512-CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.1.tgz", + "integrity": "sha512-ibQrTFcAm7yG4C1iwpIYK7vDnFg+fKaZVfvyOm3sNsGAerKfwPVFtYft5EbjzByDJ4dj1WD8/34REJfw/9wdVA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/visitor-keys": "4.15.0" + "@typescript-eslint/types": "4.15.1", + "@typescript-eslint/visitor-keys": "4.15.1" } }, "@typescript-eslint/types": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.0.tgz", - "integrity": "sha512-su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.1.tgz", + "integrity": "sha512-iGsaUyWFyLz0mHfXhX4zO6P7O3sExQpBJ2dgXB0G5g/8PRVfBBsmQIc3r83ranEQTALLR3Vko/fnCIVqmH+mPw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.0.tgz", - "integrity": "sha512-jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.1.tgz", + "integrity": "sha512-z8MN3CicTEumrWAEB2e2CcoZa3KP9+SMYLIA2aM49XW3cWIaiVSOAGq30ffR5XHxRirqE90fgLw3e6WmNx5uNw==", "dev": true, "requires": { - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/visitor-keys": "4.15.0", + "@typescript-eslint/types": "4.15.1", + "@typescript-eslint/visitor-keys": "4.15.1", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -500,12 +498,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.0.tgz", - "integrity": "sha512-RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.1.tgz", + "integrity": "sha512-tYzaTP9plooRJY8eNlpAewTOqtWW/4ff/5wBjNVaJ0S0wC4Gpq/zDVRTJa5bq2v1pCNQ08xxMCndcvR+h7lMww==", "dev": true, "requires": { - "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/types": "4.15.1", "eslint-visitor-keys": "^2.0.0" } }, @@ -963,9 +961,9 @@ } }, "esbuild": { - "version": "0.8.45", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.45.tgz", - "integrity": "sha512-AhR+h/Kat9QMssi0rSJIei0yR+dJ0DQ5aDqnZy4VLu9kOBHdJh8vDSE2XzUlwnm4umvMFnfQTELZlsH7Zmvksw==", + "version": "0.8.46", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.46.tgz", + "integrity": "sha512-xck9sXNCNmjDHCCfxTCyhKTiFuEBweh+IDAhMLOJI990v1Fzii6MyIkT1LbkvjgoVgPX2SK1kpi5eZVGNrl8yg==", "dev": true }, "escalade": { @@ -1413,9 +1411,9 @@ "dev": true }, "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "requires": { "asynckit": "^0.4.0", @@ -2646,9 +2644,9 @@ }, "dependencies": { "ajv": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", - "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.1.tgz", + "integrity": "sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -2921,9 +2919,9 @@ } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.5.tgz", + "integrity": "sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg==", "dev": true } } diff --git a/package.json b/package.json index 37d8316..225a104 100644 --- a/package.json +++ b/package.json @@ -41,15 +41,15 @@ "@vladmandic/pilogger": "^0.2.14" }, "devDependencies": { - "@tensorflow/tfjs": "^3.0.0", - "@tensorflow/tfjs-backend-wasm": "^3.0.0", - "@tensorflow/tfjs-node": "^3.0.0", - "@tensorflow/tfjs-node-gpu": "^3.0.0", - "@types/node": "^14.14.27", - "@typescript-eslint/eslint-plugin": "^4.15.0", - "@typescript-eslint/parser": "^4.15.0", + "@tensorflow/tfjs": "^3.1.0", + "@tensorflow/tfjs-backend-wasm": "^3.1.0", + "@tensorflow/tfjs-node": "^3.1.0", + "@tensorflow/tfjs-node-gpu": "^3.1.0", + "@types/node": "^14.14.28", + "@typescript-eslint/eslint-plugin": "^4.15.1", + "@typescript-eslint/parser": "^4.15.1", "chokidar": "^3.5.1", - "esbuild": "^0.8.45", + "esbuild": "^0.8.46", "eslint": "^7.20.0", "eslint-config-airbnb-base": "^14.2.1", "eslint-plugin-import": "^2.22.1",