mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 10:56:15 -08:00
8 lines
1.3 MiB
Plaintext
8 lines
1.3 MiB
Plaintext
|
|
/*!
|
|
* artplayer-plugin-danmuku-mask.js v1.0.0
|
|
* Github: https://github.com/zhw2590582/ArtPlayer
|
|
* (c) 2017-2026 Harvey Zhao
|
|
* Released under the MIT License.
|
|
*/
|
|
!function(e,t,r,n,s){var a="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{},o="function"==typeof a[n]&&a[n],l=o.i||{},i=o.cache||{},p="u">typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(t,r){if(!i[t]){if(!e[t]){if(s[t])return s[t];var l="function"==typeof a[n]&&a[n];if(!r&&l)return l(t,!0);if(o)return o(t,!0);if(p&&"string"==typeof t)return p(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},f.cache={};var d=i[t]=new u.Module(t);e[t][0].call(d.exports,f,d,d.exports,a)}return i[t].exports;function f(e){var t=f.resolve(e);if(!1===t)return{};if(Array.isArray(t)){var r={__esModule:!0};return t.forEach(function(e){var t=e[0],n=e[1],s=e[2]||e[0],a=u(n);"*"===t?Object.keys(a).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return a[e]}})}):"*"===s?Object.defineProperty(r,t,{enumerable:!0,value:a}):Object.defineProperty(r,t,{enumerable:!0,get:function(){return"default"===s?a.__esModule?a.default:a:a[s]}})}),r}return u(t)}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.require=p,this.exports={}},u.modules=e,u.cache=i,u.parent=o,u.distDir=void 0,u.publicUrl=void 0,u.devServer=void 0,u.i=l,u.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(u,"root",{get:function(){return a[n]}}),a[n]=u;for(var c=0;c<t.length;c++)u(t[c]);if(r){var d=u(r);"object"==typeof exports&&"u">typeof module?module.exports=d:"function"==typeof define&&define.amd&&define(function(){return d})}}({ecCzQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow-models/body-segmentation"),o=e("@tensorflow/tfjs-core");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,p=null,u=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await o.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU",e.message),await o.setBackend("cpu")}}async function f(){await d();let e=a.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await a.createSegmenter(e,t),u=!0}catch(e){console.error("Error initializing segmenter:",e),u=!1}}async function m(){if(!u||r.paused||r.ended){p=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){p=requestAnimationFrame(m);return}let t=await a.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await a.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let o=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(o),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}p=requestAnimationFrame(m)}async function h(){u||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",p&&(cancelAnimationFrame(p),p=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"u">typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow-models/body-segmentation":"5Otso","@tensorflow/tfjs-core":"2Gtps","@tensorflow/tfjs-backend-webgl":"2ZcDF","@tensorflow/tfjs-backend-cpu":"b4yJT","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5Otso":[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eJ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>e$),a.export(r,"drawBokehEffect",()=>eQ),a.export(r,"drawMask",()=>eZ),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eK),a.export(r,"toColoredMask",()=>eX);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),p=function(e,t){return(p=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function u(e,t){function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function d(e,t,r,n){return new(r||(r=Promise))(function(s,a){function o(e){try{i(n.next(e))}catch(e){a(e)}}function l(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var t;e.done?s(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t)})).then(o,l)}i((n=n.apply(e,t||[])).next())})}function f(e,t){var r,n,s,a,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){var i=[a,l];if(r)throw TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=(s=o.trys).length>0&&s[s.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}function m(e){return e instanceof SVGAnimatedLength?e.baseVal.value:e}function h(e){return d(this,void 0,void 0,function(){var t,r;return f(this,function(n){switch(n.label){case 0:return t=document.createElement("canvas"),e instanceof o.Tensor?[4,o.browser.toPixels(e,t)]:[3,2];case 1:return n.sent(),[3,3];case 2:t.width=m(e.width),t.height=m(e.height),r=t.getContext("2d"),e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0),n.label=3;case 3:return[2,t]}})})}function g(e){return d(this,void 0,void 0,function(){var t,r,n,s,a,l;return f(this,function(i){switch(i.label){case 0:return e instanceof o.Tensor?(r=(t=e.shape.slice(0,2))[0],n=t[1],s=ImageData.bind,[4,o.browser.toPixels(e)]):[3,2];case 1:return[2,new(s.apply(ImageData,[void 0,i.sent(),n,r]))];case 2:return l=(a=document.createElement("canvas")).getContext("2d"),a.width=m(e.width),a.height=m(e.height),l.drawImage(e,0,0),[2,l.getImageData(0,0,a.width,a.height)]}})})}function x(e){return d(this,void 0,void 0,function(){var t,r;return f(this,function(n){switch(n.label){case 0:return e instanceof SVGImageElement||e instanceof OffscreenCanvas?[4,h(e)]:[3,2];case 1:return r=n.sent(),[3,3];case 2:r=e,n.label=3;case 3:return t=r,[2,o.browser.fromPixels(t,4)]}})})}function y(e){if(e<0||e>=256)throw Error("Mask value must be in range [0, 255] but got "+e);if(!Number.isInteger(e))throw Error("Mask value must be an integer but got "+e)}var v=[[110,64,170],[143,61,178],[178,60,178],[210,62,167],[238,67,149],[255,78,125],[255,94,99],[255,115,75],[255,140,56],[239,167,47],[217,194,49],[194,219,64],[175,240,91],[135,245,87],[96,247,96],[64,243,115],[40,234,141],[28,219,169],[26,199,194],[33,176,213],[47,150,224],[65,125,224],[84,101,214],[99,81,195]];function b(e){if(y(e),e<v.length){var t=v[e];return{r:t[0],g:t[1],b:t[2],a:255}}throw Error("Mask value must be in range [0, "+v.length+")")}function k(e){var t=e.shape[2],r=(0,o.argMax)(e,2),n=(0,o.reshape)(r,[-1]);return(0,o.oneHot)(n,t)}function _(e,t){return(0,o.tidy)(function(){return(0,o.cast)((0,o.greater)(e,(0,o.scalar)(t)),"int32")})}var I=function(){function e(e,t){this.model=e,this.outputStride=t;var r=this.model.inputs[0].shape;o.util.assert(-1===r[1]&&-1===r[2],function(){return"Input shape ["+r[1]+", "+r[2]+"] must both be equal to or -1"})}return e.prototype.predict=function(e){var t=this;return(0,o.tidy)(function(){var r=t.preprocessInput((0,o.cast)(e,"float32")),n=(0,o.expandDims)(r,0),s=t.model.predict(n).map(function(e){return(0,o.squeeze)(e,[0])}),a=t.nameOutputResults(s);return{heatmapScores:(0,o.sigmoid)(a.heatmap),offsets:a.offsets,displacementFwd:a.displacementFwd,displacementBwd:a.displacementBwd,segmentation:a.segmentation,partHeatmaps:a.partHeatmaps,longOffsets:a.longOffsets,partOffsets:a.partOffsets}})},e.prototype.dispose=function(){this.model.dispose()},e}(),j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.preprocessInput=function(e){return(0,o.tidy)(function(){return(0,o.sub)((0,o.div)(e,127.5),1)})},t.prototype.nameOutputResults=function(e){return{offsets:e[0],segmentation:e[1],partHeatmaps:e[2],longOffsets:e[3],heatmap:e[4],displacementFwd:e[5],displacementBwd:e[6],partOffsets:e[7]}},t}(I),w=["nose","leftEye","rightEye","leftEar","rightEar","leftShoulder","rightShoulder","leftElbow","rightElbow","leftWrist","rightWrist","leftHip","rightHip","leftKnee","rightKnee","leftAnkle","rightAnkle"],T=w.length,S=w.reduce(function(e,t,r){return e[t]=r,e},{});function C(e,t,r){var n=e[0],s=e[1],a=t[0],o=t[1],l=r.top,i=r.bottom;return[o/(r.left+r.right+s),a/(l+i+n)]}function N(e,t,r,n){return{y:n.get(e,t,r),x:n.get(e,t,r+T)}}function E(e,t,r){var n=N(e.heatmapY,e.heatmapX,e.id,r),s=n.y,a=n.x;return{x:e.heatmapX*t+a,y:e.heatmapY*t+s}}function F(e,t){return{x:e.x+t.x,y:e.y+t.y}}function A(e,t,r,n,s,a,o,l,i,p){for(var u=s[0],c=s[1],d=a[0],f=a[1],m=l[0],h=l[1],g=[],x=function(e){var t,r,n,s,a,o,l;return t=[u,c],r=[d,f],n=t[0],s=t[1],a=r[0],o=r[1],l=Math.round(((n+e.y+1)*o-1)/i),{x:Math.round(((s+e.x+1)*a-1)/i),y:l}},y=0;y<n;y++){var v=function(e,t,r,n,s,a,o){for(var l=o[0],i=o[1],p=r(e),u=p.y*n+p.x,c=s[2*u*T+t],d=s[T*(2*u+1)+t],f=e.y+c,m=e.x+d,h=0;h<a;h++){f=Math.min(f,l-1);var g=r({x:m=Math.min(m,i-1),y:f}),x=g.y*n+g.x;f+=c=s[2*x*T+t],m+=d=s[T*(2*x+1)+t]}return{x:m,y:f}}(e,y,x,o,t,p,[m,h]);g.push(v)}for(var b=-1,k=1/0,_=0;_<r.length;_++){var I=function(e,t,r){void 0===r&&(r=.3);for(var n=0,s=0,a=0;a<e.length;a++)t.keypoints[a].score>r&&(s+=1,n+=Math.pow(e[a].x-t.keypoints[a].position.x,2)+Math.pow(e[a].y-t.keypoints[a].position.y,2));return 0===s?n=1/0:n/=s,n}(g,r[_]);I<k&&(b=_,k=I)}return b}function R(e,t){var r=e[0];return[Math.round((e[1]-1)/t+1),Math.round((r-1)/t+1)]}function P(e,t,r,n,s,a,l,i,p,u,c){for(var d=l[0],f=l[1],m=e.shape,h=m[0],g=m[1],x=t.shape.slice(0,2),y=x[0],v=x[1],b=(0,o.reshape)(t,[y,v,2,T]),k=new Float32Array(c*T*3).fill(0),_=0;_<r.length;_++)for(var I=_*T*3,j=r[_],w=0;w<T;w++){var S=j.keypoints[w],N=I+3*w;k[N]=S.score,k[N+1]=S.position.y,k[N+2]=S.position.x}var E=C([n,s],[d,f],i),F=E[0],A=E[1],R=(0,o.tensor)(k,[c,T,3]),P=i.top,$=i.left,O={variableNames:["segmentation","longOffsets","poses"],outputShape:[h,g],userCode:"\n int convertToPositionInOutput(int pos, int pad, float scale, int stride) {\n return round(((float(pos + pad) + 1.0) * scale - 1.0) / float(stride));\n }\n\n float convertToPositionInOutputFloat(\n int pos, int pad, float scale, int stride) {\n return ((float(pos + pad) + 1.0) * scale - 1.0) / float(stride);\n }\n\n float dist(float x1, float y1, float x2, float y2) {\n return pow(x1 - x2, 2.0) + pow(y1 - y2, 2.0);\n }\n\n float sampleLongOffsets(float h, float w, int d, int k) {\n float fh = fract(h);\n float fw = fract(w);\n int clH = int(ceil(h));\n int clW = int(ceil(w));\n int flH = int(floor(h));\n int flW = int(floor(w));\n float o11 = getLongOffsets(flH, flW, d, k);\n float o12 = getLongOffsets(flH, clW, d, k);\n float o21 = getLongOffsets(clH, flW, d, k);\n float o22 = getLongOffsets(clH, clW, d, k);\n float o1 = mix(o11, o12, fw);\n float o2 = mix(o21, o22, fw);\n return mix(o1, o2, fh);\n }\n\n int findNearestPose(int h, int w) {\n float prob = getSegmentation(h, w);\n if (prob < 1.0) {\n return -1;\n }\n\n // Done(Tyler): convert from output space h/w to strided space.\n float stridedH = convertToPositionInOutputFloat(\n h, "+P+", "+A+", "+a+");\n float stridedW = convertToPositionInOutputFloat(\n w, "+$+", "+F+", "+a+");\n\n float minDist = 1000000.0;\n int iMin = -1;\n for (int i = 0; i < "+c+"; i++) {\n float curDistSum = 0.0;\n int numKpt = 0;\n for (int k = 0; k < "+T+"; k++) {\n float dy = sampleLongOffsets(stridedH, stridedW, 0, k);\n float dx = sampleLongOffsets(stridedH, stridedW, 1, k);\n\n float y = float(h) + dy;\n float x = float(w) + dx;\n\n for (int s = 0; s < "+p+"; s++) {\n int yRounded = round(min(y, float("+(n-1)+")));\n int xRounded = round(min(x, float("+(s-1)+")));\n\n float yStrided = convertToPositionInOutputFloat(\n yRounded, "+P+", "+A+", "+a+");\n float xStrided = convertToPositionInOutputFloat(\n xRounded, "+$+", "+F+", "+a+");\n\n float dy = sampleLongOffsets(yStrided, xStrided, 0, k);\n float dx = sampleLongOffsets(yStrided, xStrided, 1, k);\n\n y = y + dy;\n x = x + dx;\n }\n\n float poseScore = getPoses(i, k, 0);\n float poseY = getPoses(i, k, 1);\n float poseX = getPoses(i, k, 2);\n if (poseScore >"+u+") {\n numKpt = numKpt + 1;\n curDistSum = curDistSum + dist(x, y, poseX, poseY);\n }\n }\n if (numKpt > 0 && curDistSum / float(numKpt)< minDist) {\n minDist = curDistSum / float(numKpt);\n iMin = i;\n }\n }\n return iMin;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int nearestPose = findNearestPose(coords[0], coords[1]);\n setOutput(float(nearestPose));\n }\n "};return(0,o.backend)().compileAndRun(O,[e,b,R])}function $(){return"webgl"===(0,o.getBackend)()}function O(e){return Math.floor(e/2)}[["leftHip","leftShoulder"],["leftElbow","leftShoulder"],["leftElbow","leftWrist"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["rightHip","rightShoulder"],["rightElbow","rightShoulder"],["rightElbow","rightWrist"],["rightHip","rightKnee"],["rightKnee","rightAnkle"],["leftShoulder","rightShoulder"],["leftHip","rightHip"]].map(function(e){var t=e[0],r=e[1];return[S[t],S[r]]});var D=function(){function e(e,t){this.priorityQueue=Array(e),this.numberOfElements=-1,this.getElementValue=t}return e.prototype.enqueue=function(e){this.priorityQueue[++this.numberOfElements]=e,this.swim(this.numberOfElements)},e.prototype.dequeue=function(){var e=this.priorityQueue[0];return this.exchange(0,this.numberOfElements--),this.sink(0),this.priorityQueue[this.numberOfElements+1]=null,e},e.prototype.empty=function(){return -1===this.numberOfElements},e.prototype.size=function(){return this.numberOfElements+1},e.prototype.all=function(){return this.priorityQueue.slice(0,this.numberOfElements+1)},e.prototype.max=function(){return this.priorityQueue[0]},e.prototype.swim=function(e){for(;e>0&&this.less(O(e),e);)this.exchange(e,O(e)),e=O(e)},e.prototype.sink=function(e){for(;2*e<=this.numberOfElements;){var t=2*e;if(t<this.numberOfElements&&this.less(t,t+1)&&t++,!this.less(e,t))break;this.exchange(e,t),e=t}},e.prototype.getValueAt=function(e){return this.getElementValue(this.priorityQueue[e])},e.prototype.less=function(e,t){return this.getValueAt(e)<this.getValueAt(t)},e.prototype.exchange=function(e,t){var r=this.priorityQueue[e];this.priorityQueue[e]=this.priorityQueue[t],this.priorityQueue[t]=r},e}(),M=[["nose","leftEye"],["leftEye","leftEar"],["nose","rightEye"],["rightEye","rightEar"],["nose","leftShoulder"],["leftShoulder","leftElbow"],["leftElbow","leftWrist"],["leftShoulder","leftHip"],["leftHip","leftKnee"],["leftKnee","leftAnkle"],["nose","rightShoulder"],["rightShoulder","rightElbow"],["rightElbow","rightWrist"],["rightShoulder","rightHip"],["rightHip","rightKnee"],["rightKnee","rightAnkle"]].map(function(e){var t=e[0],r=e[1];return[S[t],S[r]]}),B=M.map(function(e){return e[1]}),G=M.map(function(e){return e[0]});function V(e,t,r,n){var s,a,o,l;return{y:(s=Math.round(e.y/t),a=r-1,s<0?0:s>a?a:s),x:(o=Math.round(e.x/t),l=n-1,o<0?0:o>l?l:o)}}function L(e,t,r,n,s,a,o,l){void 0===l&&(l=2);for(var i,p,u=n.shape,c=u[0],d=u[1],f=(i=V(t.position,a,c,d),p=o.shape[2]/2,{y:o.get(i.y,i.x,e),x:o.get(i.y,i.x,p+e)}),m=F(t.position,f),h=0;h<l;h++){var g=V(m,a,c,d),x=N(g.y,g.x,r,s);m=F({x:g.x*a,y:g.y*a},{x:x.x,y:x.y})}var y=V(m,a,c,d),v=n.get(y.y,y.x,r);return{position:m,part:w[r],score:v}}function z(e,t,r,n){var s=r.x,a=r.y;return e.some(function(e){var r,o,l,i,p=e.keypoints[n].position;return r=p.y,o=p.x,(l=r-a)*l+(i=o-s)*i<=t})}function U(e,t,r,n,s,a,o,l){void 0===o&&(o=.5),void 0===l&&(l=20);for(var i=[],p=function(e,t){for(var r=t.shape,n=r[0],s=r[1],a=r[2],o=new D(n*s*a,function(e){return e.score}),l=0;l<n;++l)for(var i=0;i<s;++i)for(var p=0;p<a;++p){var u=t.get(l,i,p);u<e||function(e,t,r,n,s){for(var a=s.shape,o=a[0],l=a[1],i=!0,p=Math.max(r-1,0),u=Math.min(r+1+1,o),c=p;c<u;++c){for(var d=Math.max(n-1,0),f=Math.min(n+1+1,l),m=d;m<f;++m)if(s.get(c,m,e)>t){i=!1;break}if(!i)break}return i}(p,u,l,i,t)&&o.enqueue({score:u,part:{heatmapY:l,heatmapX:i,id:p}})}return o}(o,e),u=l*l;i.length<a&&!p.empty();){var c=p.dequeue();if(!z(i,u,E(c.part,s,t),c.part.id)){var d=function(e,t,r,n,s,a){var o=t.shape[2],l=B.length,i=Array(o),p=e.part,u=e.score,c=E(p,n,r);i[p.id]={score:u,part:w[p.id],position:c};for(var d=l-1;d>=0;--d){var f=B[d],m=G[d];i[f]&&!i[m]&&(i[m]=L(d,i[f],m,t,r,n,a))}for(d=0;d<l;++d)f=G[d],m=B[d],i[f]&&!i[m]&&(i[m]=L(d,i[f],m,t,r,n,s));return i}(c,e,t,s,r,n),f=function(e,t,r){return r.reduce(function(r,n,s){var a=n.position,o=n.score;return z(e,t,a,s)||(r+=o),r},0)/r.length}(i,u,d);i.push({keypoints:d,score:f})}}return i}var W,q=[-123.15,-115.9,-103.06],H=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return u(t,e),t.prototype.preprocessInput=function(e){return(0,o.add)(e,q)},t.prototype.nameOutputResults=function(e){var t=e[0],r=e[1],n=e[2],s=e[3],a=e[4],o=e[5];return{offsets:a,segmentation:e[6],partHeatmaps:o,longOffsets:s,heatmap:n,displacementFwd:r,displacementBwd:t,partOffsets:e[7]}},t}(I),K="https://storage.googleapis.com/tfjs-models/savedmodel/bodypix/resnet50/",X="https://storage.googleapis.com/tfjs-models/savedmodel/bodypix/mobilenet/";function Z(e){if("u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof OffscreenCanvas&&e instanceof OffscreenCanvas||"u">typeof HTMLImageElement&&e instanceof HTMLImageElement){if("offsetHeight"in e&&0!==e.offsetHeight&&"offsetWidth"in e&&0!==e.offsetWidth)return[e.offsetHeight,e.offsetWidth];if(null!=e.height&&null!=e.width)return[e.height,e.width];throw Error("HTMLImageElement must have height and width attributes set.")}if("u">typeof ImageData&&e instanceof ImageData)return[e.height,e.width];if("u">typeof HTMLVideoElement&&e instanceof HTMLVideoElement)return e.hasAttribute("height")&&e.hasAttribute("width")?[e.height,e.width]:[e.videoHeight,e.videoWidth];if(e instanceof o.Tensor)return[e.shape[0],e.shape[1]];throw Error("error: Unknown input type: "+e+".")}function Y(e,t){return(e-1)%t==0?e:Math.floor(e/t)*t+1}var Q={low:"low",medium:"medium",high:"high",full:"full"},J=((W={})[Q.low]=.25,W[Q.medium]=.5,W[Q.high]=.75,W[Q.full]=1,W);function ee(e,t,r){var n=r[0],s=r[1],a=function(e){if("string"==typeof e){var t=J[e];return o.util.assert("number"==typeof t,function(){return"string value of inputResolution must be one of "+Object.values(Q).join(",")+" but was "+e+"."}),t}return o.util.assert("number"==typeof e&&e<=2&&e>=.1,function(){return"inputResolution must be a string or number between 0.1 and 2, but was "+e}),e}(e);return[Y(n*a,t),Y(s*a,t)]}function et(e,t,r,n,s){var a=t[0],l=t[1],i=r[0],p=r[1],u=n[0],c=u[0],d=u[1],f=n[1],m=f[0],h=f[1];return void 0===s&&(s=!1),(0,o.tidy)(function(){var t,r,n,u,f,g,x,y,v,b,k,_=o.image.resizeBilinear(e,[i,p],!0);return s&&(_=(0,o.sigmoid)(_)),t=_,r=[a,l],n=[[c,d],[m,h]],u=r[0],f=r[1],x=(g=n[0])[0],y=g[1],b=(v=n[1])[0],k=v[1],(0,o.tidy)(function(){var e=(0,o.expandDims)(t);return(0,o.squeeze)(o.image.cropAndResize(e,[[x/(u+x+y-1),b/(f+b+k-1),(x+u-1)/(u+x+y-1),(b+f-1)/(f+b+k-1)]],[0],[u,f]),[0])})})}function er(e,t){var r=t[0],n=t[1],s=Z(e),a=s[0],l=s[1],i=n/r,p=0,u=0,c=0,d=0;return l/a<i?(p=0,u=0,c=Math.round(.5*(i*a-l)),d=Math.round(.5*(i*a-l))):(p=Math.round(.5*(1/i*l-a)),u=Math.round(.5*(1/i*l-a)),c=0,d=0),{resized:(0,o.tidy)(function(){var t=e instanceof o.Tensor?e:o.browser.fromPixels(e);return t=(0,o.pad3d)(t,[[p,u],[c,d],[0,0]]),o.image.resizeBilinear(t,[r,n])}),padding:{top:p,left:c,right:d,bottom:u}}}function en(e){return d(this,void 0,void 0,function(){return f(this,function(t){return[2,Promise.all(e.map(function(e){return e.buffer()}))]})})}function es(e,t,r,n,s){var a,o,l,i,p=t[0],u=t[1],c=r[0],d=r[1],f=(a=(p+n.top+n.bottom)/c,o=(u+n.left+n.right)/d,l=-n.top,i=-n.left,void 0===l&&(l=0),void 0===i&&(i=0),1===o&&1===a&&0===l&&0===i?e:e.map(function(e){var t,r;return void 0===(t=l)&&(t=0),void 0===(r=i)&&(r=0),{score:e.score,keypoints:e.keypoints.map(function(e){var n=e.score,s=e.part,l=e.position;return{score:n,part:s,position:{x:l.x*o+r,y:l.y*a+t}}})}}));return s?u<=0?f:f.map(function(e){return{score:e.score,keypoints:e.keypoints.map(function(e){var t=e.score,r=e.part,n=e.position;return{score:t,part:r,position:{x:u-1-n.x,y:n.y}}})}}):f}var ea={architecture:"MobileNetV1",outputStride:16,quantBytes:4,multiplier:.75},eo=["MobileNetV1","ResNet50"],el={MobileNetV1:[8,16,32],ResNet50:[32,16]},ei={MobileNetV1:[.5,.75,1],ResNet50:[1]},ep=[1,2,4],eu={flipHorizontal:!1,internalResolution:"medium",segmentationThreshold:.7,maxDetections:10,scoreThreshold:.4,nmsRadius:20},ec={flipHorizontal:!1,internalResolution:"medium",segmentationThreshold:.7,maxDetections:10,scoreThreshold:.4,nmsRadius:20,minKeypointScore:.3,refineSteps:10};function ed(e){var t=e.segmentationThreshold,r=e.maxDetections,n=e.scoreThreshold,s=e.nmsRadius;if(t<0||t>1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be >0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".")}function ef(e){var t=e.segmentationThreshold,r=e.maxDetections,n=e.scoreThreshold,s=e.nmsRadius,a=e.minKeypointScore,o=e.refineSteps;if(t<0||t>1)throw Error("segmentationThreshold "+t+". Should be in range [0.0, 1.0]");if(r<=0)throw Error("Invalid maxDetections "+r+". Should be >0");if(n<0||n>1)throw Error("Invalid scoreThreshold "+n+". Should be in range [0.0, 1.0]");if(s<=0)throw Error("Invalid nmsRadius "+s+".");if(a<0||a>1)throw Error("Invalid minKeypointScore "+a+".Should be in range [0.0, 1.0]");if(o<=0||o>20)throw Error("Invalid refineSteps "+o+".Should be in range [1, 20]")}var em=function(){function e(e){this.baseModel=e}return e.prototype.predictForPersonSegmentation=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForPersonSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,partHeatmapLogits:t.partHeatmaps,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd}},e.prototype.predictForMultiPersonInstanceSegmentationAndPart=function(e){var t=this.baseModel.predict(e);return{segmentLogits:t.segmentation,longOffsets:t.longOffsets,heatmapScores:t.heatmapScores,offsets:t.offsets,displacementFwd:t.displacementFwd,displacementBwd:t.displacementBwd,partHeatmaps:t.partHeatmaps}},e.prototype.segmentPersonActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=Z(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),p=er(e,i),u=p.resized,c=p.padding,d=(0,o.tidy)(function(){var e=n.predictForPersonSegmentation(u),t=e.segmentLogits,s=e.heatmapScores,i=e.offsets,p=e.displacementFwd,d=e.displacementBwd,f=u.shape,m=et(t,[a,l],[f[0],f[1]],[[c.top,c.bottom],[c.left,c.right]],!0);return{segmentation:_((0,o.squeeze)(m),r),heatmapScores:s,offsets:i,displacementFwd:p,displacementBwd:d}}),f=d.segmentation,m=d.heatmapScores,h=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return u.dispose(),{segmentation:f,heatmapScores:m,offsets:h,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPerson=function(e,t){return void 0===t&&(t=eu),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,p,u,d,m,h,g,x,y,v;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},eu),t)),n=(r=this.segmentPersonActivation(e,t.internalResolution,t.segmentationThreshold)).segmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,p=r.internalResolutionHeightAndWidth,d=(u=n.shape)[0],m=u[1],[4,n.data()];case 1:return h=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],y=g[1],v=es(v=U(x,y,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,m],p,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:m,data:h,allPoses:v}]}})})},e.prototype.segmentMultiPerson=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,p,u,m,h,g,x,y,v,b,k,I,j,w,T=this;return f(this,function(S){switch(S.label){case 0:return ef(t=c(c({},ec),t)),n=(r=Z(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,p=l.padding,m=(u=(0,o.tidy)(function(){var e=T.predictForMultiPersonInstanceSegmentationAndPart(i),r=e.segmentLogits,l=e.longOffsets,u=e.heatmapScores,c=e.offsets,d=e.displacementFwd,f=e.displacementBwd,m=et(r,[n,s],a,[[p.top,p.bottom],[p.left,p.right]],!0);return{segmentation:_((0,o.squeeze)(m),t.segmentationThreshold),longOffsets:l,heatmapScoresRaw:u,offsetsRaw:c,displacementFwdRaw:d,displacementBwdRaw:f}})).segmentation,h=u.longOffsets,g=u.heatmapScoresRaw,x=u.offsetsRaw,y=u.displacementFwdRaw,v=u.displacementBwdRaw,[4,en([g,x,y,v])];case 1:return k=(b=S.sent())[0],I=b[1],j=es(j=U(k,I,b[2],b[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,p,!1),[4,function(e,t,r,n,s,a,l,i,p,u,c,m){var h=l[0],g=l[1];return void 0===p&&(p=.2),void 0===u&&(u=8),void 0===c&&(c=.3),void 0===m&&(m=10),d(this,void 0,void 0,function(){var l,d,x,y,v;return f(this,function(f){switch(f.label){case 0:return l=r.filter(function(e){return e.score>=p}),$()?[4,Promise.all((x=(0,o.tidy)(function(){var r=P(e,t,l,n,s,a,[h,g],i,u,c,m),p=(0,o.engine)().makeTensorFromDataId(r.dataId,r.shape,r.dtype);return l.map(function(e,t){return(0,o.tidy)(function(){return(0,o.cast)((0,o.equal)(p,(0,o.scalar)(t)),"int32")})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),x.forEach(function(e){return e.dispose()}),[3,5];case 2:return[4,e.data()];case 3:return y=f.sent(),[4,t.data()];case 4:v=f.sent(),d=function(e,t,r,n,s,a,o,l,i,p){var u=o[0],c=o[1];void 0===p&&(p=5);for(var d=r.map(function(e){return new Uint8Array(n*s).fill(0)}),f=l.top,m=l.left,h=C([n,s],[u,c],l),g=h[0],x=h[1],y=R([u,c],a)[0],v=0;v<n;v+=1)for(var b=0;b<s;b+=1){var k=v*s+b;if(1===e[k]){var _=A({x:b,y:v},t,r,p,[f,m],[g,x],y,[n,s],a,i);_>=0&&(d[_][k]=1)}}return d}(y,v,l,n,s,a,[h,g],i,u),f.label=5;case 5:return[2,d.map(function(e,t){return{data:e,pose:l[t],width:s,height:n}})]}})})}(m,h,j,n,s,this.baseModel.outputStride,a,p,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return w=S.sent(),i.dispose(),m.dispose(),h.dispose(),g.dispose(),x.dispose(),y.dispose(),v.dispose(),[2,w]}})})},e.prototype.segmentPersonPartsActivation=function(e,t,r){var n=this;void 0===r&&(r=.5);var s=Z(e),a=s[0],l=s[1],i=ee(t,this.baseModel.outputStride,[a,l]),p=er(e,i),u=p.resized,c=p.padding,d=(0,o.tidy)(function(){var e,t,s,i,p,d=n.predictForPersonSegmentationAndPart(u),f=d.segmentLogits,m=d.partHeatmapLogits,h=d.heatmapScores,g=d.offsets,x=d.displacementFwd,y=d.displacementBwd,v=u.shape,b=v[0],I=v[1],j=et(f,[a,l],[b,I],[[c.top,c.bottom],[c.left,c.right]],!0),w=et(m,[a,l],[b,I],[[c.top,c.bottom],[c.left,c.right]],!0);return{partSegmentation:(e=_((0,o.squeeze)(j),r),s=(t=w.shape)[0],i=t[1],p=t[2],(0,o.tidy)(function(){var t=k(w),r=(0,o.expandDims)((0,o.range)(0,p,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(t,r),"int32"),a=(0,o.reshape)(n,[s,i]),l=(0,o.add)(a,(0,o.scalar)(1,"int32"));return(0,o.sub)((0,o.mul)(l,e),(0,o.scalar)(1,"int32"))})),heatmapScores:h,offsets:g,displacementFwd:x,displacementBwd:y}}),f=d.partSegmentation,m=d.heatmapScores,h=d.offsets,g=d.displacementFwd,x=d.displacementBwd;return u.dispose(),{partSegmentation:f,heatmapScores:m,offsets:h,displacementFwd:g,displacementBwd:x,padding:c,internalResolutionHeightAndWidth:i}},e.prototype.segmentPersonParts=function(e,t){return void 0===t&&(t=eu),d(this,void 0,void 0,function(){var r,n,s,a,o,l,i,p,u,d,m,h,g,x,y,v;return f(this,function(f){switch(f.label){case 0:return ed(t=c(c({},eu),t)),n=(r=this.segmentPersonPartsActivation(e,t.internalResolution,t.segmentationThreshold)).partSegmentation,s=r.heatmapScores,a=r.offsets,o=r.displacementFwd,l=r.displacementBwd,i=r.padding,p=r.internalResolutionHeightAndWidth,d=(u=n.shape)[0],m=u[1],[4,n.data()];case 1:return h=f.sent(),n.dispose(),[4,en([s,a,o,l])];case 2:return x=(g=f.sent())[0],y=g[1],v=es(v=U(x,y,g[2],g[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[d,m],p,i,!1),s.dispose(),a.dispose(),o.dispose(),l.dispose(),[2,{height:d,width:m,data:h,allPoses:v}]}})})},e.prototype.segmentMultiPersonParts=function(e,t){return void 0===t&&(t=ec),d(this,void 0,void 0,function(){var r,n,s,a,l,i,p,u,m,h,g,x,y,v,b,I,j,w,T,S,N=this;return f(this,function(E){switch(E.label){case 0:return ef(t=c(c({},ec),t)),n=(r=Z(e))[0],s=r[1],i=(l=er(e,a=ee(t.internalResolution,this.baseModel.outputStride,[n,s]))).resized,p=l.padding,m=(u=(0,o.tidy)(function(){var e,r,l,u,c=N.predictForMultiPersonInstanceSegmentationAndPart(i),d=c.segmentLogits,f=c.longOffsets,m=c.heatmapScores,h=c.offsets,g=c.displacementFwd,x=c.displacementBwd,y=c.partHeatmaps,v=et(d,[n,s],a,[[p.top,p.bottom],[p.left,p.right]],!0),b=et(y,[n,s],a,[[p.top,p.bottom],[p.left,p.right]],!0);return{segmentation:_((0,o.squeeze)(v),t.segmentationThreshold),longOffsets:f,heatmapScoresRaw:m,offsetsRaw:h,displacementFwdRaw:g,displacementBwdRaw:x,partSegmentation:(r=(e=b.shape)[0],l=e[1],u=e[2],(0,o.tidy)(function(){var e=k(b),t=(0,o.expandDims)((0,o.range)(0,u,1,"int32"),1),n=(0,o.cast)((0,o.matMul)(e,t),"int32");return(0,o.reshape)(n,[r,l])}))}})).segmentation,h=u.longOffsets,g=u.heatmapScoresRaw,x=u.offsetsRaw,y=u.displacementFwdRaw,v=u.displacementBwdRaw,b=u.partSegmentation,[4,en([g,x,y,v])];case 1:return j=(I=E.sent())[0],w=I[1],T=es(T=U(j,w,I[2],I[3],this.baseModel.outputStride,t.maxDetections,t.scoreThreshold,t.nmsRadius),[n,s],a,p,!1),[4,function(e,t,r,n,s,a,l,i,p,u,c,m,h){var g=i[0],x=i[1];return void 0===u&&(u=.2),void 0===c&&(c=8),void 0===m&&(m=.3),void 0===h&&(h=10),d(this,void 0,void 0,function(){var i,d,y,v,b,k;return f(this,function(f){switch(f.label){case 0:return i=n.filter(function(e){return e.score>=u}),$()?[4,Promise.all((y=(0,o.tidy)(function(){var n=P(e,t,i,s,a,l,[g,x],p,c,m,h),u=(0,o.engine)().makeTensorFromDataId(n.dataId,n.shape,n.dtype);return i.map(function(e,t){return(0,o.tidy)(function(){return(0,o.sub)((0,o.mul)((0,o.cast)((0,o.equal)(u,(0,o.scalar)(t)),"int32"),(0,o.add)(r,1)),1)})})})).map(function(e){return e.data()}))]:[3,2];case 1:return d=f.sent(),y.forEach(function(e){return e.dispose()}),[3,6];case 2:return[4,e.data()];case 3:return v=f.sent(),[4,t.data()];case 4:return b=f.sent(),[4,r.data()];case 5:k=f.sent(),d=function(e,t,r,n,s,a,o,l,i,p,u){var c=l[0],d=l[1];void 0===u&&(u=5);for(var f=n.map(function(e){return new Int32Array(s*a).fill(-1)}),m=i.top,h=i.left,g=C([s,a],[c,d],i),x=g[0],y=g[1],v=R([c,d],o)[0],b=0;b<s;b+=1)for(var k=0;k<a;k+=1){var _=b*a+k;if(1===e[_]){var I=A({x:k,y:b},t,n,u,[m,h],[x,y],v,[s,a],o,p);I>=0&&(f[I][_]=r[_])}}return f}(v,b,k,i,s,a,l,[g,x],p,c),f.label=6;case 6:return[2,d.map(function(e,t){return{pose:i[t],data:e,height:s,width:a}})]}})})}(m,h,b,T,n,s,this.baseModel.outputStride,a,p,t.scoreThreshold,t.refineSteps,t.minKeypointScore,t.maxDetections)];case 2:return S=E.sent(),i.dispose(),m.dispose(),h.dispose(),g.dispose(),x.dispose(),y.dispose(),v.dispose(),b.dispose(),[2,S]}})})},e.prototype.dispose=function(){this.baseModel.dispose()},e}(),eh=["left_face","right_face","left_upper_arm_front","left_upper_arm_back","right_upper_arm_front","right_upper_arm_back","left_lower_arm_front","left_lower_arm_back","right_lower_arm_front","right_lower_arm_back","left_hand","right_hand","torso_front","torso_back","left_upper_leg_front","left_upper_leg_back","right_upper_leg_front","right_upper_leg_back","left_lower_leg_front","left_lower_leg_back","right_lower_leg_front","right_lower_leg_back","left_feet","right_feet"],eg=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,h(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"imagedata"},e}();function ex(e){if(y(e),255!==e)throw Error("Foreground id must be 255 but got "+e);return"person"}function ey(e){if(y(e),e>=eh.length)throw Error("Invalid body part value "+e);return eh[e]}var ev=function(){function e(e){this.bodyPixModel=e}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n,s,a;return f(this,function(o){switch(o.label){case 0:return e instanceof ImageBitmap&&((r=document.createElement("canvas")).getContext("2d").drawImage(e,0,0),e=r),t.segmentBodyParts?t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPersonParts(e,t)]:[3,2]:[3,5];case 1:return s=o.sent(),[3,4];case 2:return[4,this.bodyPixModel.segmentPersonParts(e,t)];case 3:s=[o.sent()],o.label=4;case 4:return n=s.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){-1===e?(s[4*t]=eh.length,s[4*t+3]=0):(s[4*t]=e,s[4*t+3]=255)}),{maskValueToLabel:ey,mask:new eg(new ImageData(s,r,n))}}),[3,10];case 5:return t.multiSegmentation?[4,this.bodyPixModel.segmentMultiPerson(e,t)]:[3,7];case 6:return a=o.sent(),[3,9];case 7:return[4,this.bodyPixModel.segmentPerson(e,t)];case 8:a=[o.sent()],o.label=9;case 9:n=a.map(function(e){var t=e.data,r=e.width,n=e.height,s=new Uint8ClampedArray(r*n*4).fill(0);return t.forEach(function(e,t){0===e?(s[4*t]=0,s[4*t+3]=0):(s[4*t]=255,s[4*t+3]=255)}),{maskValueToLabel:ex,mask:new eg(new ImageData(s,r,n))}}),o.label=10;case 10:return[2,n]}})})},e.prototype.dispose=function(){this.bodyPixModel.dispose()},e.prototype.reset=function(){},e}(),eb={runtime:"mediapipe",modelType:"general"},ek=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,x(this.mask)]})})},e.prototype.getUnderlyingType=function(){return"canvasimagesource"},e}();function e_(e){return y(e),"person"}var eI=function(){function e(e){var t,r,n=this;this.selfieMode=!1,t=+(this.selfieSegmentationSolution=new(0,i.SelfieSegmentation)({locateFile:null!=(r=e.locateFile)?r:function(t,r){return e.solutionPath?e.solutionPath.replace(/\/+$/,"")+"/"+t:r+"/"+t}}),"landscape"===e.modelType),this.selfieSegmentationSolution.setOptions({modelSelection:t,selfieMode:this.selfieMode}),this.selfieSegmentationSolution.onResults(function(e){n.segmentation=[{maskValueToLabel:e_,mask:new ek(e.segmentationMask)}]})}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(s.label){case 0:return t&&t.flipHorizontal&&t.flipHorizontal!==this.selfieMode&&(this.selfieMode=t.flipHorizontal,this.selfieSegmentationSolution.setOptions({selfieMode:this.selfieMode})),e instanceof o.Tensor?(n=ImageData.bind,[4,o.browser.toPixels(e)]):[3,2];case 1:return r=new(n.apply(ImageData,[void 0,s.sent(),e.shape[1],e.shape[0]])),[3,3];case 2:r=e,s.label=3;case 3:return e=r,[4,this.selfieSegmentationSolution.send({image:e})];case 4:return s.sent(),[2,this.segmentation]}})})},e.prototype.dispose=function(){this.selfieSegmentationSolution.close()},e.prototype.reset=function(){this.selfieSegmentationSolution.reset(),this.segmentation=null,this.selfieMode=!1},e.prototype.initialize=function(){return this.selfieSegmentationSolution.initialize()},e}();function ej(e){return e instanceof o.Tensor?{height:e.shape[0],width:e.shape[1]}:{height:e.height,width:e.width}}function ew(e,t){o.util.assert(0!==e.width,function(){return t+" width cannot be 0."}),o.util.assert(0!==e.height,function(){return t+" height cannot be 0."})}var eT={runtime:"tfjs",modelType:"general",modelUrl:"https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1"},eS={flipHorizontal:!1},eC={outputTensorSize:{width:256,height:256},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eN={outputTensorSize:{width:256,height:144},keepAspectRatio:!1,borderMode:"zero",outputTensorFloatRange:[0,1]},eE={activation:"none"},eF=function(){function e(e){this.mask=e}return e.prototype.toCanvasImageSource=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,h(this.mask)]})})},e.prototype.toImageData=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,g(this.mask)]})})},e.prototype.toTensor=function(){return d(this,void 0,void 0,function(){return f(this,function(e){return[2,this.mask]})})},e.prototype.getUnderlyingType=function(){return"tensor"},e}();function eA(e){return y(e),"person"}var eR,eP=function(){function e(e,t){this.modelType=e,this.model=t}return e.prototype.segmentPeople=function(e,t){return d(this,void 0,void 0,function(){var r=this;return f(this,function(n){return t=function(e){if(null==e)return c({},eS);var t=c({},e);return null==t.flipHorizontal&&(t.flipHorizontal=eS.flipHorizontal),t}(t),null==e?(this.reset(),[2,[]]):[2,[{maskValueToLabel:eA,mask:new eF((0,o.tidy)(function(){var t,n,s,a,l,i,p,u,c,d,f,m,h,g,x,y,v,b,k,_,I,j,w=(x=(t="general"===r.modelType?eC:eN).outputTensorSize,y=t.keepAspectRatio,v=t.borderMode,b=t.outputTensorFloatRange,I=function(e,t,r){if(void 0===r&&(r=!1),!r)return{top:0,left:0,right:0,bottom:0};var n=t.height,s=t.width;ew(t,"targetSize"),ew(e,"roi");var a,o,l=n/s,i=e.height/e.width,p=0,u=0;return l>i?(a=e.width,o=e.width*l,u=(1-i/l)/2):(a=e.height/l,o=e.height,p=(1-l/i)/2),e.width=a,e.height=o,{top:u,left:p,right:p,bottom:u}}((n=k=ej(e),_={xCenter:.5*n.width,yCenter:.5*n.height,width:n.width,height:n.height,rotation:0}),x,y),s=k.width,a=k.height,l=_.width,i=_.height,p=1,u=Math.cos(_.rotation),c=Math.sin(_.rotation),d=_.xCenter,f=_.yCenter,m=1/s,h=1/a,(g=Array(16))[0]=l*u*p*m,g[1]=-i*c*m,g[2]=0,g[3]=(-.5*l*u*p+.5*i*c+d)*m,g[4]=l*c*p*h,g[5]=i*u*h,g[6]=0,g[7]=(-.5*i*u-.5*l*c*p+f)*h,g[8]=0,g[9]=0,g[10]=l*m,g[11]=0,g[12]=0,g[13]=0,g[14]=0,g[15]=1,j=function(e){if(16!==e.length)throw Error("Array length must be 16 but got "+e.length);return[[e[0],e[1],e[2],e[3]],[e[4],e[5],e[6],e[7]],[e[8],e[9],e[10],e[11]],[e[12],e[13],e[14],e[15]]]}(g),{imageTensor:(0,o.tidy)(function(){var t,r=e instanceof o.Tensor?e:o.browser.fromPixels(e),n=(0,o.tensor2d)((ew(x,"inputResolution"),[1/x.width*j[0][0]*k.width,1/x.height*j[0][1]*k.width,j[0][3]*k.width,1/x.width*j[1][0]*k.height,1/x.height*j[1][1]*k.height,j[1][3]*k.height,0,0]),[1,8]),s=o.image.transform((0,o.expandDims)((0,o.cast)(r,"float32")),n,"bilinear","zero"===v?"constant":"nearest",0,[x.height,x.width]);return null!=b?(t=function(e,t){!1;var r=(t-e)/255;return{scale:r,offset:e-0*r}}(b[0],b[1]),(0,o.tidy)(function(){return(0,o.add)((0,o.mul)(s,t.scale),t.offset)})):s}),padding:I,transformationMatrix:j}).imageTensor,T=(0,o.slice)(r.model.predict(w),[0,0,0,1],-1),S=ej(e),C=(0,o.tidy)(function(){var e=(0,o.squeeze)(T,[0]),t=e.shape[2];if(1===t){var r=e;switch(eE.activation){case"none":break;case"sigmoid":r=(0,o.sigmoid)(r);break;case"softmax":throw Error("Softmax activation requires two channels.");default:throw Error("Activation not supported ("+eE.activation+")")}var n=S?o.image.resizeBilinear(r,[S.height,S.width]):r;return(0,o.squeeze)(n,[2])}throw Error("Unsupported number of tensor channels "+t)}),N=(0,o.expandDims)(C,2),E=(0,o.pad)(N,[[0,0],[0,0],[0,1]]);return(0,o.mirrorPad)(E,[[0,0],[0,0],[0,2]],"symmetric")}))}]]})})},e.prototype.dispose=function(){this.model.dispose()},e.prototype.reset=function(){},e}();function e$(e,t){return d(this,void 0,void 0,function(){var r,n;return f(this,function(s){switch(e){case eR.MediaPipeSelfieSegmentation:if(r=void 0,null!=(n=t)){if("tfjs"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:return r="string"==typeof(t=function(e){if(null==e)return c({},eT);var t=c({},e);if(t.runtime="tfjs",null==t.modelType&&(t.modelType=eT.modelType),"general"!==t.modelType&&"landscape"!==t.modelType)throw Error("Model type must be one of general or landscape, but got "+t.modelType);return null==t.modelUrl&&("general"===t.modelType?t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/general/1":t.modelUrl="https://tfhub.dev/mediapipe/tfjs-model/selfie_segmentation/landscape/1"),t}(e)).modelUrl&&t.modelUrl.indexOf("https://tfhub.dev")>-1,[4,(0,l.loadGraphModel)(t.modelUrl,{fromTFHub:r})];case 1:return n=s.sent(),[2,new eP(t.modelType,n)]}})})}(n)];if("mediapipe"===n.runtime)return[2,function(e){return d(this,void 0,void 0,function(){var t;return f(this,function(r){switch(r.label){case 0:return[4,(t=new eI(function(e){if(null==e)return c({},eb);var t=c({},e);return t.runtime="mediapipe",null==t.modelType&&(t.modelType=eb.modelType),t}(e))).initialize()];case 1:return r.sent(),[2,t]}})})}(n)];r=n.runtime}throw Error("Expect modelConfig.runtime to be either 'tfjs' or 'mediapipe', but got "+r);case eR.BodyPix:return[2,function(e){return d(this,void 0,void 0,function(){return f(this,function(t){return[2,(function(e){return void 0===e&&(e=ea),d(this,void 0,void 0,function(){return f(this,function(t){return"ResNet50"===(e=function(e){if(null==(e=e||ea).architecture&&(e.architecture="MobileNetV1"),0>eo.indexOf(e.architecture))throw Error("Invalid architecture "+e.architecture+". Should be one of "+eo);if(null==e.outputStride&&(e.outputStride=16),0>el[e.architecture].indexOf(e.outputStride))throw Error("Invalid outputStride "+e.outputStride+". Should be one of "+el[e.architecture]+" for architecture "+e.architecture+".");if(null==e.multiplier&&(e.multiplier=1),0>ei[e.architecture].indexOf(e.multiplier))throw Error("Invalid multiplier "+e.multiplier+". Should be one of "+ei[e.architecture]+" for architecture "+e.architecture+".");if(null==e.quantBytes&&(e.quantBytes=4),0>ep.indexOf(e.quantBytes))throw Error("Invalid quantBytes "+e.quantBytes+". Should be one of "+ep+" for architecture "+e.architecture+".");return e}(e)).architecture?[2,function(e){return d(this,void 0,void 0,function(){var t,r,n;return f(this,function(s){switch(s.label){case 0:var a;if(t=e.outputStride,r=e.quantBytes,null==o)throw Error("Cannot find TensorFlow.js. If you are using a<script>tag, please also include @tensorflow/tfjs on the page before using this\n model.");return a="model-stride"+t+".json",n=4===r?K+"float/"+a:K+"quant"+r+"/"+a,[4,(0,l.loadGraphModel)(e.modelUrl||n)];case 1:return[2,new em(new H(s.sent(),t))]}})})}(e)]:"MobileNetV1"===e.architecture?[2,function(e){return d(this,void 0,void 0,function(){var t,r,n,s;return f(this,function(a){switch(a.label){case 0:var i,p;if(t=e.outputStride,r=e.quantBytes,n=e.multiplier,null==o)throw Error("Cannot find TensorFlow.js. If you are using a<script>tag, please also include @tensorflow/tfjs on the page before using this\n model.");return i={1:"100",.75:"075",.5:"050"},p="model-stride"+t+".json",s=4===r?X+"float/"+i[n]+"/"+p:X+"quant"+r+"/"+i[n]+"/"+p,[4,(0,l.loadGraphModel)(e.modelUrl||s)];case 1:return[2,new em(new j(a.sent(),t))]}})})}(e)]:[2,null]})})})(e).then(function(e){return new ev(e)})]})})}(n=t)];default:throw Error(e+" is not a supported model name.")}})})}(s=eR||(eR={})).BodyPix="BodyPix",s.MediaPipeSelfieSegmentation="MediaPipeSelfieSegmentation";var eO="blurred",eD="blurred-mask",eM="mask",eB={};function eG(e,t,r,n){var s=e.width,a=e.height,o=t.width,l=t.height;if(s!==o||a!==l)throw Error("error: dimensions must match. "+r+" has dimensions "+s+"x"+a+", "+n+" has dimensions "+o+"x"+l)}function eV(e){if("u">typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"u">typeof OffscreenCanvas&&e instanceof OffscreenCanvas||"u">typeof HTMLImageElement&&e instanceof HTMLImageElement){if("offsetHeight"in e&&0!==e.offsetHeight&&"offsetWidth"in e&&0!==e.offsetWidth)return[e.offsetHeight,e.offsetWidth];if(null!=e.height&&null!=e.width)return[e.height,e.width];throw Error("HTMLImageElement must have height and width attributes set.")}if("u">typeof ImageData&&e instanceof ImageData)return[e.height,e.width];if("u">typeof HTMLVideoElement&&e instanceof HTMLVideoElement)return e.hasAttribute("height")&&e.hasAttribute("width")?[e.height,e.width]:[e.videoHeight,e.videoWidth];if(e instanceof o.Tensor)return[e.shape[0],e.shape[1]];throw Error("error: Unknown input type: "+e+".")}function eL(e){return eB[e]||(eB[e]=function(){if("u">typeof document)return document.createElement("canvas");if("u">typeof OffscreenCanvas)return new OffscreenCanvas(0,0);throw Error("Cannot create a canvas in this context")}()),eB[e]}function ez(e,t){var r=eL(t);return r.width=e.width,r.height=e.height,r.getContext("2d").putImageData(e,0,0),r}function eU(e,t,r,n,s,a){return d(this,void 0,void 0,function(){var l,i,p;return f(this,function(u){switch(u.label){case 0:return t instanceof o.Tensor?[4,o.browser.toPixels(t)]:[3,2];case 1:l=u.sent(),p=(i=eV(t))[0],t=new ImageData(l,i[1],p),u.label=2;case 2:return t instanceof ImageData&&(t=ez(t,"draw-image")),null==s||null==a?e.drawImage(t,r,n):e.drawImage(t,r,n,s,a),[2]}})})}function eW(e){var t=e.getContext("2d");t.scale(-1,1),t.translate(-e.width,0)}function eq(e,t,r){return d(this,void 0,void 0,function(){return f(this,function(n){switch(n.label){case 0:return e.globalCompositeOperation=r,[4,eU(e,t,0,0)];case 1:return n.sent(),[2]}})})}function eH(e,t,r){return d(this,void 0,void 0,function(){var n;return f(this,function(s){switch(s.label){case 0:return n=eL(r),0!==t?[3,2]:[4,function(e,t){return d(this,void 0,void 0,function(){var r,n,s;return f(this,function(a){switch(a.label){case 0:return n=(r=eV(e))[0],t.width=s=r[1],t.height=n,[4,eU(t.getContext("2d"),e,0,0,s,n)];case 1:return a.sent(),[2]}})})}(e,n)];case 1:return s.sent(),[3,4];case 2:return[4,function(e,t,r){return d(this,void 0,void 0,function(){var n,s,a,o;return f(this,function(l){switch(l.label){case 0:return s=(n=eV(e))[0],a=n[1],o=r.getContext("2d"),r.width=a,r.height=s,o.clearRect(0,0,a,s),o.save(),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?[4,function(e,t,r){return d(this,void 0,void 0,function(){var n,s,a,o,l,i,p,u;return f(this,function(c){switch(c.label){case 0:for(n=e.getContext("2d"),s=0,o=1/(2*Math.PI*(a=5)*a),l=r<3?1:2,p=-r;p<=r;p+=l)for(u=-r;u<=r;u+=l)i=o*Math.exp(-(u*u+p*p)/(2*a*a)),s+=i;p=-r,c.label=1;case 1:if(!(p<=r))return[3,6];u=-r,c.label=2;case 2:return u<=r?(n.globalAlpha=o*Math.exp(-(u*u+p*p)/(2*a*a))/s*r,[4,eU(n,t,u,p)]):[3,5];case 3:c.sent(),c.label=4;case 4:return u+=l,[3,2];case 5:return p+=l,[3,1];case 6:return n.globalAlpha=1,[2]}})})}(r,e,t)]:[3,2];case 1:return l.sent(),[3,4];case 2:return o.filter="blur("+t+"px)",[4,eU(o,e,0,0,a,s)];case 3:l.sent(),l.label=4;case 4:return o.restore(),[2]}})})}(e,t,n)];case 3:s.sent(),s.label=4;case 4:return[2,n]}})})}function eK(e,t,r,n,s,a){return void 0===t&&(t={r:0,g:0,b:0,a:0}),void 0===r&&(r={r:0,g:0,b:0,a:255}),void 0===n&&(n=!1),void 0===s&&(s=.5),void 0===a&&(a=Array.from(Array(256).keys())),d(this,void 0,void 0,function(){var o,l,i,p,u,c,d,m,h,g,x,y,v,b;return f(this,function(f){switch(f.label){case 0:return 0===(o=Array.isArray(e)?e:[e]).length?[2,null]:[4,Promise.all(o.map(function(e){return e.mask.toImageData()}))];case 1:for(c=new Uint8ClampedArray((p=(i=(l=f.sent())[0]).width)*(u=i.height)*4),d=Math.round(255*s),m=Array(256).fill(!1),a.forEach(function(e){return m[e]=!0}),h=0;h<u;h++)for(g=0;g<p;g++)for(c[4*(x=h*p+g)+0]=r.r,c[4*x+1]=r.g,c[4*x+2]=r.b,c[4*x+3]=r.a,y=0,v=l;y<v.length;y++)m[(b=v[y]).data[4*x]]&&b.data[4*x+3]>=d&&(c[4*x]=t.r,c[4*x+1]=t.g,c[4*x+2]=t.b,c[4*x+3]=t.a,n&&h-1>=0&&h+1<u&&g-1>=0&&g+1<p&&function(e,t,r,n,s,a,o){void 0===o&&(o=1);for(var l=0,i=-o;i<=o;i++)for(var p=-o;p<=o;p++)if(0!==i&&0!==p){var u=(t+i)*n+(r+p);(!s[e[4*u]]||e[4*u+3]<a)&&(l+=1)}return l>0}(b.data,h,g,p,m,d)&&function(e,t,r,n,s){void 0===s&&(s={r:0,g:255,b:255,a:255});for(var a=-1;a<=1;a++)for(var o=-1;o<=1;o++)if(0!==a&&0!==o){var l=(t+a)*n+(r+o);e[4*l+0]=s.r,e[4*l+1]=s.g,e[4*l+2]=s.b,e[4*l+3]=s.a}}(c,h,g,p));return[2,new ImageData(c,p,u)]}})})}function eX(e,t,r,n){return void 0===r&&(r={r:0,g:0,b:0,a:255}),void 0===n&&(n=.5),d(this,void 0,void 0,function(){var s,a,o,l,i,p,u,c,d,m,h,g,x;return f(this,function(f){switch(f.label){case 0:return 0===(s=Array.isArray(e)?e:[e]).length?[2,null]:[4,Promise.all(s.map(function(e){return e.mask.toImageData()}))];case 1:for(p=new Uint8ClampedArray((l=(o=(a=f.sent())[0]).width)*(i=o.height)*4),u=Math.round(255*n),c=0;c<i*l;++c)for(p[(d=4*c)+0]=r.r,p[d+1]=r.g,p[d+2]=r.b,p[d+3]=r.a,m=0,h=a;m<h.length;m++)(g=h[m]).data[d+3]>=u&&(x=t(g.data[d]),p[d+0]=x.r,p[d+1]=x.g,p[d+2]=x.b,p[d+3]=x.a);return[2,new ImageData(p,l,i)]}})})}function eZ(e,t,r,n,s,a){return void 0===n&&(n=.7),void 0===s&&(s=0),void 0===a&&(a=!1),d(this,void 0,void 0,function(){var o,l,i,p,u;return f(this,function(c){switch(c.label){case 0:return l=(o=eV(t))[0],e.width=i=o[1],e.height=l,(p=e.getContext("2d")).save(),a&&eW(e),[4,eU(p,t,0,0)];case 1:return c.sent(),p.globalAlpha=n,r?(eG({width:i,height:l},r,"image","mask"),[4,eH(ez(r,eM),s,eD)]):[3,3];case 2:u=c.sent(),p.drawImage(u,0,0,i,l),c.label=3;case 3:return p.restore(),[2]}})})}function eY(e,t,r,n,s,a,o){return void 0===n&&(n=.7),void 0===s&&(s=0),void 0===a&&(a=!1),void 0===o&&(o=10),d(this,void 0,void 0,function(){var l,i,p,u,c,d,m;return f(this,function(f){switch(f.label){case 0:return i=(l=eV(t))[0],eG({width:l[1],height:i},r,"image","mask"),[4,eH(ez(r,eM),s,eD)];case 1:for(e.width=(p=f.sent()).width,e.height=p.height,(u=e.getContext("2d")).save(),a&&eW(e),d=(c=eL("lowres-part-mask")).getContext("2d"),c.width=p.width*(1/o),c.height=p.height*(1/o),d.drawImage(p,0,0,p.width,p.height,0,0,c.width,c.height),u.imageSmoothingEnabled=!1,u.drawImage(c,0,0,c.width,c.height,0,0,e.width,e.height),m=0;m<c.width;m++)u.beginPath(),u.strokeStyle="#ffffff",u.moveTo(o*m,0),u.lineTo(o*m,e.height),u.stroke();for(m=0;m<c.height;m++)u.beginPath(),u.strokeStyle="#ffffff",u.moveTo(0,o*m),u.lineTo(e.width,o*m),u.stroke();return u.globalAlpha=1-n,[4,eU(u,t,0,0,p.width,p.height)];case 2:return f.sent(),u.restore(),[2]}})})}function eQ(e,t,r,n,s,a,o){return void 0===n&&(n=.5),void 0===s&&(s=3),void 0===a&&(a=3),void 0===o&&(o=!1),d(this,void 0,void 0,function(){var l,i,p,u,c,m;return f(this,function(h){switch(h.label){case 0:return[4,eH(t,s,eO)];case 1:return e.width=(l=h.sent()).width,e.height=l.height,i=e.getContext("2d"),Array.isArray(r)&&0===r.length?(i.drawImage(l,0,0),[2]):[4,function(e,t,r){return d(this,void 0,void 0,function(){var n;return f(this,function(s){switch(s.label){case 0:return[4,eK(e,{r:0,g:0,b:0,a:255},{r:0,g:0,b:0,a:0},!1,t)];case 1:return n=ez(s.sent(),eM),0===r?[2,n]:[2,eH(n,r,eD)]}})})}(r,n,a)];case 2:return p=h.sent(),i.save(),o&&eW(e),c=(u=eV(t))[0],m=u[1],[4,eU(i,t,0,0,m,c)];case 3:return h.sent(),[4,eq(i,p,"destination-in")];case 4:return h.sent(),[4,eq(i,l,"destination-over")];case 5:return h.sent(),i.restore(),[2]}})})}function eJ(e,t,r,n,s,a,o,l){return void 0===s&&(s=.5),void 0===a&&(a=3),void 0===o&&(o=3),void 0===l&&(l=!1),d(this,void 0,void 0,function(){var i,p,u,c,m,h;return f(this,function(g){switch(g.label){case 0:return[4,eH(t,a,eO)];case 1:return e.width=(i=g.sent()).width,e.height=i.height,p=e.getContext("2d"),Array.isArray(r)&&0===r.length?(p.drawImage(i,0,0),[2]):[4,function(e,t,r,n){return d(this,void 0,void 0,function(){var s;return f(this,function(a){switch(a.label){case 0:return[4,eK(e,{r:0,g:0,b:0,a:0},{r:0,g:0,b:0,a:255},!0,r,t)];case 1:return s=ez(a.sent(),eM),0===n?[2,s]:[2,eH(s,n,eD)]}})})}(r,n,s,o)];case 2:return u=g.sent(),p.save(),l&&eW(e),m=(c=eV(t))[0],h=c[1],[4,eU(p,t,0,0,h,m)];case 3:return g.sent(),[4,eq(p,u,"destination-in")];case 4:return g.sent(),[4,eq(p,i,"destination-over")];case 5:return g.sent(),p.restore(),[2]}})})}},{"@tensorflow/tfjs-core":"2Gtps","@tensorflow/tfjs-converter":"eHI7U","@mediapipe/selfie_segmentation":"aHbh5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2Gtps":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),e("./base_side_effects");var a=e("./optimizers/register_optimizers"),o=e("./base");s.exportAll(o,r),(0,a.registerOptimizers)()},{"./base_side_effects":"2myjr","./optimizers/register_optimizers":"iq2z6","./base":"6xSpB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2myjr":[function(e,t,r,n){var s=e("./engine");e("./flags"),e("./platforms/platform_browser"),e("./platforms/platform_node");var a=e("./ops/buffer"),o=e("./ops/cast"),l=e("./ops/clone"),i=e("./ops/print"),p=e("./tensor");(0,s.getOrMakeEngine)();let u={buffer:a.buffer,cast:o.cast,clone:l.clone,print:i.print};(0,p.setOpHandler)(u)},{"./engine":"5aImO","./flags":"44Dje","./platforms/platform_browser":"5luux","./platforms/platform_node":"5A4CI","./ops/buffer":"avZau","./ops/cast":"Qs5mF","./ops/clone":"jyVCU","./ops/print":"6OSja","./tensor":"izSBk"}],"5aImO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Engine",()=>y),s.export(r,"getOrMakeEngine",()=>v),s.export(r,"ENGINE",()=>b),s.export(r,"add",()=>k);var a=e("./backends/backend"),o=e("./environment"),l=e("./global_util"),i=e("./kernel_names"),p=e("./kernel_registry"),u=e("./log"),c=e("./profiler"),d=e("./tape"),f=e("./tensor"),m=e("./tensor_util"),h=e("./util");function g(e){return null!=e.kernelName}class x{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()}}class y{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new x}async ready(){if(null!=this.pendingBackendInit)return this.pendingBackendInit.then(()=>{});if(null!=this.backendInstance)return;let e=this.getSortedBackends();for(let t=0;t<e.length;t++){let r=e[t];if(await this.initializeBackend(r).success)return void await this.setBackend(r)}throw Error("Could not initialize any backends, all backend initializations failed.")}get backend(){if(null!=this.pendingBackendInit)throw Error(`Backend '${this.backendName}' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods`);if(null==this.backendInstance){let{name:e,asyncInit:t}=this.initializeBackendsAndReturnBest();if(t)throw Error(`The highest priority backend '${e}' has not yet been initialized. Make sure to await tf.ready() or await tf.setBackend() before calling other methods`);this.setBackend(e)}return this.backendInstance}backendNames(){return Object.keys(this.registryFactory)}findBackend(e){if(!(e in this.registry))if(!(e in this.registryFactory))return null;else{let{asyncInit:t}=this.initializeBackend(e);if(t)return null}return this.registry[e]}findBackendFactory(e){return e in this.registryFactory?this.registryFactory[e].factory:null}registerBackend(e,t,r=1){return e in this.registryFactory?(u.warn(`${e} backend was already registered. Reusing existing backend factory.`),!1):(this.registryFactory[e]={factory:t,priority:r},!0)}async setBackend(e){if(null==this.registryFactory[e])throw Error(`Backend name '${e}' not found in registry`);if(this.backendName=e,null==this.registry[e]){this.backendInstance=null;let{success:t,asyncInit:r}=this.initializeBackend(e);if(!(r?await t:t))return!1}return this.backendInstance=this.registry[e],this.setupRegisteredKernels(),this.profiler=new(0,c.Profiler)(this.backendInstance),!0}setupRegisteredKernels(){(0,p.getKernelsForBackend)(this.backendName).forEach(e=>{null!=e.setupFunc&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){(0,p.getKernelsForBackend)(e).forEach(t=>{null!=t.disposeFunc&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(null==t)throw Error(`Cannot initialize backend ${e}, no registration found.`);try{let r=t.factory();if(!r||r instanceof a.KernelBackend||"function"!=typeof r.then)return this.registry[e]=r,{success:!0,asyncInit:!1};{let t=++this.pendingBackendInitId,n=r.then(r=>!(t<this.pendingBackendInitId)&&(this.registry[e]=r,this.pendingBackendInit=null,!0)).catch(r=>!(t<this.pendingBackendInitId)&&(this.pendingBackendInit=null,u.warn(`Initialization of backend ${e} failed`),u.warn(r.stack||r.message),!1));return this.pendingBackendInit=n,{success:n,asyncInit:!0}}}catch(t){return u.warn(`Initialization of backend ${e} failed`),u.warn(t.stack||t.message),{success:!1,asyncInit:!1}}}removeBackend(e){if(!(e in this.registryFactory))throw Error(`${e} backend not found in registry`);this.backendName===e&&null!=this.pendingBackendInit&&this.pendingBackendInitId++,e in this.registry&&(this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e]),delete this.registryFactory[e],this.backendName===e&&(this.pendingBackendInit=null,this.backendName=null,this.backendInstance=null)}getSortedBackends(){if(0===Object.keys(this.registryFactory).length)throw Error("No backend found in registry.");return Object.keys(this.registryFactory).sort((e,t)=>this.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;t<e.length;t++){let r=e[t],{success:n,asyncInit:s}=this.initializeBackend(r);if(s||n)return{name:r,asyncInit:s}}throw Error("Could not initialize any backends, all backend initializations failed.")}moveData(e,t){let r=this.state.tensorInfo.get(t),n=r.backend,s=this.readSync(t),a=n.refCount(t);n.disposeData(t,!0),r.backend=e,e.move(t,s,r.shape,r.dtype,a),this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack[this.state.numDataMovesStack.length-1]++}tidy(e,t){let r,n=null;if(null==t){if("function"!=typeof e)throw Error("Please provide a function to tidy()");t=e}else{if("string"!=typeof e&&!(e instanceof String))throw Error("When calling with two arguments, the first argument to tidy() must be a string");if("function"!=typeof t)throw Error("When calling with two arguments, the 2nd argument to tidy() must be a function");n=e}return this.scopedRun(()=>this.startScope(n),()=>this.endScope(r),()=>((r=t())instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),r))}scopedRun(e,t,r){e();try{let e=r();return t(),e}catch(e){throw t(),e}}nextTensorId(){return y.nextTensorId++}nextVariableId(){return y.nextVariableId++}clone(e){let t=b.runKernel(i.Identity,{x:e});return this.addTapeNode(this.state.activeScope.name,{x:e},[t],e=>({x:()=>b.runKernel(i.Cast,{x:e},{dtype:"float32"})}),[],{}),t}runKernel(e,t,r){if(null==this.backendName&&this.backend,null==(0,p.getKernel)(e,this.backendName))throw Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:r})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,r){let n=this.backend.numDataIds(),s=0;r.forEach(e=>{s+="complex64"===e.dtype?3:1});let a=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-s-a;if(o>0)throw Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e){let t,r,n,s,a=[],o=this.isTapeOn(),l=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0),null==this.backendName&&this.backend;let u=g(e)?e.kernelName:null!=this.state.activeScope?this.state.activeScope.name:"";if(g(e)){let{kernelName:t,inputs:s,attrs:l}=e;null==this.backendName&&this.backend;let i=(0,p.getKernel)(t,this.backendName);h.assert(null!=i,()=>`Cannot find registered kernel '${t}' for backend '${this.backendName}'`),r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=i.kernelFunc({inputs:s,attrs:l,backend:this.backend}))?n:[n];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(t,e,r);let p=r.map(e=>null!=e.rank?e:this.makeTensorFromTensorInfo(e));if(o){let e=this.getTensorsForGradient(t,s,p);a=this.saveTensorsForBackwardMode(e)}return p}}else{let{forwardFunc:t}=e,s=e=>{o&&(a=e.map(e=>this.keep(this.clone(e))))};r=()=>{let e=this.backend.numDataIds(),r=Array.isArray(n=this.tidy(()=>t(this.backend,s)))?n:[n];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(u,e,r),r}}let{inputs:c,attrs:d}=e,f=g(e)?null:e.backwardsFunc;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{this.ENV.getBool("DEBUG")||this.state.profiling?(s=this.profiler.profileKernel(u,c,()=>r()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(s),t=s.outputs):t=r()}),o&&this.addTapeNode(u,c,t,f,a,d),this.state.profiling&&this.state.activeProfile.kernels.push({name:u,bytesAdded:this.state.numBytes-l,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(e=>null!=c[e]?c[e].shape:null),outputShapes:t.map(e=>e.shape),kernelTimeMs:s.timeMs,extraInfo:s.extraInfo}),Array.isArray(n)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(e=>this.keep(this.clone(e)))}getTensorsForGradient(e,t,r){let n=(0,p.getGradient)(e);if(null!=n){let e,s=n.inputsToSave||[],a=n.outputsToSave||[];n.saveAllInputs?(h.assert(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),e=Object.keys(t).map(e=>t[e])):e=s.map(e=>t[e]);let o=r.filter((e,t)=>a[t]);return e.concat(o)}return[]}makeTensor(e,t,r,n){if(null==e)throw Error("Values passed to engine.makeTensor() are null");r=r||"float32",n=n||this.backend;let s=e;"string"===r&&h.isString(e[0])&&(s=e.map(e=>h.encodeString(e)));let a=n.write(s,t,r),o=new(0,f.Tensor)(t,r,a,this.nextTensorId());if(this.trackTensor(o,n),"string"===r){let e=this.state.tensorInfo.get(a),t=(0,h.bytesFromStringArray)(s);this.state.numBytes+=t-e.bytes,e.bytes=t}return o}makeTensorFromDataId(e,t,r,n){let s={dataId:e,shape:t,dtype:r=r||"float32"};return this.makeTensorFromTensorInfo(s,n)}makeTensorFromTensorInfo(e,t){let{dataId:r,shape:n,dtype:s}=e,a=new(0,f.Tensor)(n,s,r,this.nextTensorId());return this.trackTensor(a,t),a}makeVariable(e,t=!0,r,n){r=r||this.nextVariableId().toString(),null!=n&&n!==e.dtype&&(e=e.cast(n));let s=new(0,f.Variable)(e,t,r,this.nextTensorId());if(null!=this.state.registeredVariables[s.name])throw 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++,"string"===e.dtype&&this.state.numStringTensors++;let r=0;"complex64"!==e.dtype&&"string"!==e.dtype&&(r=e.size*h.bytesPerElement(e.dtype)),this.state.numBytes+=r,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:r})),e instanceof f.Variable||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--,"string"===e.dtype&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),"complex64"!==e.dtype&&"string"!==e.dtype){let t=e.size*h.bytesPerElement(e.dtype);this.state.numBytes-=t}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),null!=this.state.registeredVariables[e.name]&&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,null==e.reasons&&(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,r=this.state.numTensors;for(let n of(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(e=>e.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-r,this.state.activeProfile.kernels))n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&0===this.state.kernelDepth}addTapeNode(e,t,r,n,s,a){let o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:r,saved:s},l=(0,p.getGradient)(e);null!=l&&(n=l.gradFunc),null!=n&&(o.gradient=e=>(e=e.map((e,t)=>{if(null==e){let e=r[t],n=h.makeZerosTypedArray(e.size,e.dtype);return this.makeTensor(n,e.shape,e.dtype)}return e}),n(e.length>1?e:e[0],s,a))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){0===this.state.gradientDepth&&(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=(0,m.getTensorsInContainer)(e),r=new Set(t.map(e=>e.id));for(let e=0;e<this.state.activeScope.track.length;e++){let t=this.state.activeScope.track[e];t.kept||r.has(t.id)||t.dispose()}let n=this.state.scopeStack.pop();this.state.activeScope=0===this.state.scopeStack.length?null:this.state.scopeStack[this.state.scopeStack.length-1],t.forEach(e=>{e.kept||e.scopeId!==n.id||this.track(e)})}gradients(e,t,r,n=!1){if(h.assert(t.length>0,()=>"gradients() received an empty list of xs."),null!=r&&"float32"!==r.dtype)throw Error(`dy must have 'float32' dtype, but has '${r.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));h.assert(s instanceof f.Tensor,()=>"The result y returned by f() must be a tensor.");let a=(0,d.getFilteredNodesXToY)(this.state.activeTape,t,s);if(!n&&0===a.length&&t.length>0)throw 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",()=>{var e;let n,o={};o[s.id]=null==r?(e=s.shape,n=(0,h.makeOnesTypedArray)((0,h.sizeFromShape)(e),"float32"),b.makeTensor(n,e,"float32")):r,(0,d.backpropagateGradients)(o,a,e=>this.tidy(e),k);let l=t.map(e=>o[e.id]);return 0===this.state.gradientDepth&&(this.state.activeTape.forEach(e=>{for(let t of e.saved)t.dispose()}),this.state.activeTape=null),{value:s,grads:l}})}customGrad(e){return h.assert(h.isFunction(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{let r;h.assert(t.every(e=>e instanceof f.Tensor),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n={};return t.forEach((e,t)=>{n[t]=e}),this.runKernelFunc({forwardFunc:(n,s)=>(r=e(...t,s),h.assert(r.value instanceof f.Tensor,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),h.assert(h.isFunction(r.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),r.value),backwardsFunc:(e,n)=>{let s=r.gradFunc(e,n),a=Array.isArray(s)?s:[s];h.assert(a.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(...)."),h.assert(a.every(e=>e instanceof f.Tensor),()=>"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 o={};return a.forEach((e,t)=>{o[t]=()=>e}),o},inputs:n})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=(0,h.now)(),r=await this.backend.time(e);return r.wallMs=(0,h.now)()-t,r}track(e){return null!=this.state.activeScope&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){for(let e in this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new x,this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}function v(){let e=(0,l.getGlobalNamespace)();if(null==e._tfengine){let t=new(0,o.Environment)(e);e._tfengine=new y(t)}return(0,o.setEnvironmentGlobal)(e._tfengine.ENV),(0,f.setTensorTracker)(()=>e._tfengine),e._tfengine}y.nextTensorId=0,y.nextVariableId=0;let b=v();function k(e,t){return b.runKernel(i.Add,{a:e,b:t})}},{"./backends/backend":"c432N","./environment":"lCEjS","./global_util":"iaFSU","./kernel_names":"bvyjS","./kernel_registry":"eNDWR","./log":"jXKXX","./profiler":"9wEzc","./tape":"8vfFt","./tensor":"izSBk","./tensor_util":"5lFsY","./util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],c432N:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>a),s.export(r,"EPSILON_FLOAT16",()=>o),s.export(r,"DataStorage",()=>l),s.export(r,"KernelBackend",()=>i);let a=1e-7,o=1e-4;class l{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}}class i{refCount(e){return p("refCount")}incRef(e){return p("incRef")}timerAvailable(){return!0}time(e){return p("time")}read(e){return p("read")}readSync(e){return p("readSync")}readToGPU(e,t){return p("readToGPU")}numDataIds(){return p("numDataIds")}disposeData(e,t){return p("disposeData")}write(e,t,r){return p("write")}move(e,t,r,n,s){return p("move")}createTensorFromGPUData(e,t,r){return p("createTensorFromGPUData")}memory(){return p("memory")}floatPrecision(){return p("floatPrecision")}epsilon(){return 32===this.floatPrecision()?a:o}dispose(){return p("dispose")}}function p(e){throw Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,r,n){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[r]}})}),t},r.export=function(e,t,r){Object.defineProperty(e,t,{enumerable:!0,get:r})}},{}],lCEjS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Environment",()=>l),s.export(r,"getQueryParams",()=>i),s.export(r,"env",()=>p),s.export(r,"ENV",()=>u),s.export(r,"setEnvironmentGlobal",()=>c);var a=e("./util_base");let o="tfjsflags";class l{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.getQueryParams=i,this.populateURLFlags()}setPlatform(e,t){null==this.platform||u.getBool("IS_TEST")||u.getBool("PROD")||console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${e}.`),this.platformName=e,this.platform=t}registerFlag(e,t,r){if(this.flagRegistry[e]={evaluationFn:t,setHook:r},null!=this.urlFlags[e]){let t=this.urlFlags[e];u.getBool("IS_TEST")||u.getBool("PROD")||console.warn(`Setting feature override from URL ${e}: ${t}.`),this.set(e,t)}}async getAsync(e){return e in this.flags||(this.flags[e]=await this.evaluateFlag(e)),this.flags[e]}get(e){if(e in this.flags)return this.flags[e];let t=this.evaluateFlag(e);if((0,a.isPromise)(t))throw Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getString(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(null==this.flagRegistry[e])throw Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,null!=this.flagRegistry[e].setHook&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(null==this.flagRegistry[e])throw Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(void 0===this.global||void 0===this.global.location||void 0===this.global.location.search)return;let e=this.getQueryParams(this.global.location.search);o in e&&e[o].split(",").forEach(e=>{var t;let r,[n,s]=e.split(":");this.urlFlags[n]="true"===(r=(t=s).toLowerCase())||"false"===r?"true"===r:`${+r}`===r?+r:t})}}function i(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...r)=>{var n,s,a;return n=t,s=r[0],a=r[1],n[decodeURIComponent(s)]=decodeURIComponent(a||""),r.join("=")}),t}function p(){return u}let u=null;function c(e){u=e}},{"./util_base":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],F0lVc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let t=e.length,r=0;for(;t>0;)r=Math.random()*t|0,p(e,--t,r)}function o(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 r=e.length,n=0;for(;r>0;)n=Math.random()*r|0,p(e,--r,n),p(t,r,n)}function l(e,t,r){return Math.max(e,Math.min(t,r))}function i(e){return e%2==0?e:e+1}function p(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function u(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t}function c(e,t){let r=Math.random();return t*r+(1-r)*e}function d(e,t){let r=0;for(let n=0;n<e.length;n++){let s=Number(e[n])-Number(t[n]);r+=s*s}return r}function f(e,t){if(!e)throw Error("string"==typeof t?t:t())}function m(e,t,r=""){f(v(e,t),()=>r+` Shapes ${e} and ${t} must match`)}function h(e){f(null!=e,()=>"The input to the tensor constructor must be a non-null value.")}function g(e){if(0===e.length)return 1;let t=e[0];for(let r=1;r<e.length;r++)t*=e[r];return t}function x(e){return 0===e.length}function y(e,t){if(e===t)return!0;if(null==e||null==t||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(null!==e[r]&&null!==t[r]&&e[r]!==t[r])return!1;return!0}function v(e,t){if(e===t)return!0;if(null==e||null==t||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function b(e){return e%1==0}function k(e){if(null!=Math.tanh)return Math.tanh(e);if(e===1/0)return 1;{if(e===-1/0)return -1;let t=Math.exp(2*e);return(t-1)/(t+1)}}function _(e){let t=Math.ceil(Math.sqrt(e));return[t,Math.ceil(e/t)]}function I(e){let t=new Uint32Array(e);for(let r=0;r<e;++r)t[r]=r;return a(t),t}function j(e,t){return t<=e.length?e:e+" ".repeat(t-e.length)}function w(e,t=e=>0,r,n){return new Promise((s,a)=>{let o=0,l=()=>{if(e())return void s();let i=t(++o);null!=r&&o>=r?a():null!=n?n(l,i):setTimeout(l,i)};l()})}function T(e,t){let r=1,n=-1;for(let t=0;t<e.length;++t)if(e[t]>=0)r*=e[t];else if(-1===e[t]){if(-1!==n)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${t}`);n=t}else if(e[t]<0)throw Error(`Shapes can not be < 0. Found ${e[t]} at dim ${t}`);if(-1===n){if(t>0&&t!==r)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(0===r)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%r!=0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${r}`);let s=e.slice();return s[n]=t/r,s}function S(e,t){let r=t.length;return f((e=null==e?t.map((e,t)=>t):[].concat(e)).every(e=>e>=-r&&e<r),()=>`All values in axis param must be in range [-${r}, ${r}) but got axis ${e}`),f(e.every(e=>b(e)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(e=>e<0?r+e:e)}function C(e,t){let r=[],n=[],s=null!=t&&Array.isArray(t)&&0===t.length,a=null==t||s?null:S(t,e).sort(),o=0;for(let t=0;t<e.length;++t){if(null!=a){if(a[o]===t&&1!==e[t])throw Error(`Can't squeeze axis ${t} since its dim '${e[t]}' is not 1`);(null==a[o]||a[o]>t)&&1===e[t]&&(r.push(e[t]),n.push(t)),a[o]<=t&&o++}1!==e[t]&&(r.push(e[t]),n.push(t))}return{newShape:r,keptDims:n}}function N(e,t){return E(e,t)}function E(e,t){let r=null;if(null==e||"float32"===e)r=new Float32Array(t);else if("int32"===e)r=new Int32Array(t);else if("bool"===e)r=new Uint8Array(t);else if("string"===e)r=Array(t);else throw Error(`Unknown data type ${e}`);return r}function F(e,t){for(let r=0;r<e.length;r++){let n=e[r];if(isNaN(n)||!isFinite(n))throw Error(`A tensor of type ${t} being uploaded contains ${n}.`)}}function A(e){return"bool"===e||"complex64"===e||"float32"===e||"int32"===e||"string"===e}function R(e,t){return"complex64"!==t&&("float32"!==t||"complex64"===e)&&("int32"!==t||"float32"===e||"complex64"===e)&&("bool"!==t||"bool"!==e)}function P(e){if("float32"===e||"int32"===e)return 4;if("complex64"===e)return 8;if("bool"===e)return 1;throw Error(`Unknown dtype ${e}`)}function $(e){if(null==e)return 0;let t=0;return e.forEach(e=>t+=e.length),t}function O(e){return"string"==typeof e||e instanceof String}function D(e){return"boolean"==typeof e}function M(e){return"number"==typeof e}function B(e){return!!(e&&e.constructor&&e.call&&e.apply)}function G(e,t){for(let r=t;r<e;++r)if(e%r==0)return r;return e}function V(e){let t=e.length;if(t<2)return[];let r=Array(t-1);r[t-2]=e[t-1];for(let n=t-3;n>=0;--n)r[n]=r[n+1]*e[n+1];return r}function L(e,t,r=!1){if(0===e.length)return t[0];let n=e.reduce((e,t)=>e*t)*(r?2:1);if(0===n)return[];if(n!==t.length)throw Error(`[${e}] does not match the input size ${t.length}${r?" for a complex tensor":""}.`);return function e(t,r,n,s=!1){let a=[];if(1===r.length){let e=r[0]*(s?2:1);for(let r=0;r<e;r++)a[r]=n[t+r]}else{let o=r[0],l=r.slice(1),i=l.reduce((e,t)=>e*t)*(s?2:1);for(let r=0;r<o;r++)a[r]=e(t+r*i,l,n,s)}return a}(0,e,t,r)}function z(e,t){if(Array.isArray(e))return e;if("float32"===t)return e instanceof Float32Array?e:new Float32Array(e);if("int32"===t)return e instanceof Int32Array?e:new Int32Array(e);if("bool"===t||"string"===t)return Uint8Array.from(new Int32Array(e));throw Error(`Unknown dtype ${t}`)}function U(e,t){let r=W(e,t);for(let e=0;e<r.length;e++)r[e]=1;return r}function W(e,t){if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t)return new Uint8Array(e);throw Error(`Unknown data type ${t}`)}function q(e,t){let r=e.reduce((e,t)=>e*t,1);if(null==t||"float32"===t)return L(e,new Float32Array(r));if("int32"===t)return L(e,new Int32Array(r));if("bool"===t)return L(e,new Uint8Array(r));throw Error(`Unknown data type ${t}`)}function H(e){e.forEach(t=>{f(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function K(e,t,r){if(0===t)return 0;if(1===t)return e[0];let n=e[e.length-1];for(let t=0;t<e.length-1;++t)n+=r[t]*e[t];return n}function X(e,t,r){if(0===t)return[];if(1===t)return[e];let n=Array(t);for(let t=0;t<n.length-1;++t)n[t]=Math.floor(e/r[t]),e-=n[t]*r[t];return n[n.length-1]=e,n}function Z(e){return e&&e.then&&"function"==typeof e.then}s.defineInteropFlag(r),s.export(r,"shuffle",()=>a),s.export(r,"shuffleCombo",()=>o),s.export(r,"clamp",()=>l),s.export(r,"nearestLargerEven",()=>i),s.export(r,"swap",()=>p),s.export(r,"sum",()=>u),s.export(r,"randUniform",()=>c),s.export(r,"distSquared",()=>d),s.export(r,"assert",()=>f),s.export(r,"assertShapesMatch",()=>m),s.export(r,"assertNonNull",()=>h),s.export(r,"sizeFromShape",()=>g),s.export(r,"isScalarShape",()=>x),s.export(r,"arraysEqualWithNull",()=>y),s.export(r,"arraysEqual",()=>v),s.export(r,"isInt",()=>b),s.export(r,"tanh",()=>k),s.export(r,"sizeToSquarishShape",()=>_),s.export(r,"createShuffledIndices",()=>I),s.export(r,"rightPad",()=>j),s.export(r,"repeatedTry",()=>w),s.export(r,"inferFromImplicitShape",()=>T),s.export(r,"parseAxisParam",()=>S),s.export(r,"squeezeShape",()=>C),s.export(r,"getTypedArrayFromDType",()=>N),s.export(r,"getArrayFromDType",()=>E),s.export(r,"checkConversionForErrors",()=>F),s.export(r,"isValidDtype",()=>A),s.export(r,"hasEncodingLoss",()=>R),s.export(r,"bytesPerElement",()=>P),s.export(r,"bytesFromStringArray",()=>$),s.export(r,"isString",()=>O),s.export(r,"isBoolean",()=>D),s.export(r,"isNumber",()=>M),s.export(r,"inferDtype",()=>function e(t){if(Array.isArray(t))return e(t[0]);if(t instanceof Float32Array);else if(t instanceof Int32Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray)return"int32";else if(M(t));else if(O(t))return"string";else if(D(t))return"bool";return"float32"}),s.export(r,"isFunction",()=>B),s.export(r,"nearestDivisor",()=>G),s.export(r,"computeStrides",()=>V),s.export(r,"toNestedArray",()=>L),s.export(r,"convertBackendValuesAndArrayBuffer",()=>z),s.export(r,"makeOnesTypedArray",()=>U),s.export(r,"makeZerosTypedArray",()=>W),s.export(r,"makeZerosNestedTypedArray",()=>q),s.export(r,"assertNonNegativeIntegerDimensions",()=>H),s.export(r,"locToIndex",()=>K),s.export(r,"indexToLoc",()=>X),s.export(r,"isPromise",()=>Z)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iaFSU:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(){if(null==s){let e;if("u">typeof window)e=window;else if("u">typeof global)e=global;else if("u">typeof process)e=process;else if("u">typeof self)e=self;else throw Error("Could not find a global object");s=e}return s}function l(e,t){let r,n=(null==(r=o())._tfGlobals&&(r._tfGlobals=new Map),r._tfGlobals);if(n.has(e))return n.get(e);{let r=t();return n.set(e,r),n.get(e)}}a.defineInteropFlag(r),a.export(r,"getGlobalNamespace",()=>o),a.export(r,"getGlobal",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bvyjS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Abs",()=>a),s.export(r,"Acos",()=>o),s.export(r,"Acosh",()=>l),s.export(r,"Add",()=>i),s.export(r,"AddN",()=>p),s.export(r,"All",()=>u),s.export(r,"Any",()=>c),s.export(r,"ArgMax",()=>d),s.export(r,"ArgMin",()=>f),s.export(r,"Asin",()=>m),s.export(r,"Asinh",()=>h),s.export(r,"Atan",()=>g),s.export(r,"Atanh",()=>x),s.export(r,"Atan2",()=>y),s.export(r,"AvgPool",()=>v),s.export(r,"AvgPoolGrad",()=>b),s.export(r,"AvgPool3D",()=>k),s.export(r,"AvgPool3DGrad",()=>_),s.export(r,"BatchMatMul",()=>I),s.export(r,"BatchToSpaceND",()=>j),s.export(r,"Bincount",()=>w),s.export(r,"BitwiseAnd",()=>T),s.export(r,"BroadcastTo",()=>S),s.export(r,"BroadcastArgs",()=>C),s.export(r,"Cast",()=>N),s.export(r,"Ceil",()=>E),s.export(r,"ClipByValue",()=>F),s.export(r,"Complex",()=>A),s.export(r,"ComplexAbs",()=>R),s.export(r,"Concat",()=>P),s.export(r,"Conv2D",()=>$),s.export(r,"Conv2DBackpropFilter",()=>O),s.export(r,"Conv2DBackpropInput",()=>D),s.export(r,"Conv3D",()=>M),s.export(r,"Conv3DBackpropFilterV2",()=>B),s.export(r,"Conv3DBackpropInputV2",()=>G),s.export(r,"Cos",()=>V),s.export(r,"Cosh",()=>L),s.export(r,"Cumprod",()=>z),s.export(r,"Cumsum",()=>U),s.export(r,"CropAndResize",()=>W),s.export(r,"DenseBincount",()=>q),s.export(r,"DepthToSpace",()=>H),s.export(r,"DepthwiseConv2dNative",()=>K),s.export(r,"DepthwiseConv2dNativeBackpropFilter",()=>X),s.export(r,"DepthwiseConv2dNativeBackpropInput",()=>Z),s.export(r,"Diag",()=>Y),s.export(r,"Dilation2D",()=>Q),s.export(r,"Dilation2DBackpropInput",()=>J),s.export(r,"Dilation2DBackpropFilter",()=>ee),s.export(r,"Draw",()=>et),s.export(r,"RealDiv",()=>er),s.export(r,"Einsum",()=>en),s.export(r,"Elu",()=>es),s.export(r,"EluGrad",()=>ea),s.export(r,"Erf",()=>eo),s.export(r,"Equal",()=>el),s.export(r,"Exp",()=>ei),s.export(r,"ExpandDims",()=>ep),s.export(r,"Expm1",()=>eu),s.export(r,"FFT",()=>ec),s.export(r,"Fill",()=>ed),s.export(r,"FlipLeftRight",()=>ef),s.export(r,"Floor",()=>em),s.export(r,"FloorDiv",()=>eh),s.export(r,"FusedBatchNorm",()=>eg),s.export(r,"GatherV2",()=>ex),s.export(r,"GatherNd",()=>ey),s.export(r,"Greater",()=>ev),s.export(r,"GreaterEqual",()=>eb),s.export(r,"Identity",()=>ek),s.export(r,"IFFT",()=>e_),s.export(r,"Imag",()=>eI),s.export(r,"IsFinite",()=>ej),s.export(r,"IsInf",()=>ew),s.export(r,"IsNan",()=>eT),s.export(r,"LeakyRelu",()=>eS),s.export(r,"Less",()=>eC),s.export(r,"LessEqual",()=>eN),s.export(r,"LinSpace",()=>eE),s.export(r,"Log",()=>eF),s.export(r,"Log1p",()=>eA),s.export(r,"LogicalAnd",()=>eR),s.export(r,"LogicalNot",()=>eP),s.export(r,"LogicalOr",()=>e$),s.export(r,"LogicalXor",()=>eO),s.export(r,"LogSoftmax",()=>eD),s.export(r,"LowerBound",()=>eM),s.export(r,"LRN",()=>eB),s.export(r,"LRNGrad",()=>eG),s.export(r,"MatrixBandPart",()=>eV),s.export(r,"Max",()=>eL),s.export(r,"Maximum",()=>ez),s.export(r,"MaxPool",()=>eU),s.export(r,"MaxPoolGrad",()=>eW),s.export(r,"MaxPool3D",()=>eq),s.export(r,"MaxPool3DGrad",()=>eH),s.export(r,"MaxPoolWithArgmax",()=>eK),s.export(r,"Mean",()=>eX),s.export(r,"Min",()=>eZ),s.export(r,"Minimum",()=>eY),s.export(r,"MirrorPad",()=>eQ),s.export(r,"Mod",()=>eJ),s.export(r,"Multinomial",()=>e0),s.export(r,"Multiply",()=>e1),s.export(r,"Neg",()=>e2),s.export(r,"NotEqual",()=>e3),s.export(r,"NonMaxSuppressionV3",()=>e6),s.export(r,"NonMaxSuppressionV4",()=>e4),s.export(r,"NonMaxSuppressionV5",()=>e5),s.export(r,"OnesLike",()=>e8),s.export(r,"OneHot",()=>e9),s.export(r,"Pack",()=>e7),s.export(r,"PadV2",()=>te),s.export(r,"Pool",()=>tt),s.export(r,"Pow",()=>tr),s.export(r,"Prelu",()=>tn),s.export(r,"Prod",()=>ts),s.export(r,"RaggedGather",()=>ta),s.export(r,"RaggedRange",()=>to),s.export(r,"RaggedTensorToTensor",()=>tl),s.export(r,"Range",()=>ti),s.export(r,"Real",()=>tp),s.export(r,"Reciprocal",()=>tu),s.export(r,"Relu",()=>tc),s.export(r,"Reshape",()=>td),s.export(r,"ResizeNearestNeighbor",()=>tf),s.export(r,"ResizeNearestNeighborGrad",()=>tm),s.export(r,"ResizeBilinear",()=>th),s.export(r,"ResizeBilinearGrad",()=>tg),s.export(r,"Relu6",()=>tx),s.export(r,"Reverse",()=>ty),s.export(r,"Round",()=>tv),s.export(r,"Rsqrt",()=>tb),s.export(r,"ScatterNd",()=>tk),s.export(r,"TensorScatterUpdate",()=>t_),s.export(r,"SearchSorted",()=>tI),s.export(r,"Select",()=>tj),s.export(r,"Selu",()=>tw),s.export(r,"Slice",()=>tT),s.export(r,"Sin",()=>tS),s.export(r,"Sinh",()=>tC),s.export(r,"Sign",()=>tN),s.export(r,"Sigmoid",()=>tE),s.export(r,"Softplus",()=>tF),s.export(r,"Sqrt",()=>tA),s.export(r,"Sum",()=>tR),s.export(r,"SpaceToBatchND",()=>tP),s.export(r,"SplitV",()=>t$),s.export(r,"Softmax",()=>tO),s.export(r,"SparseFillEmptyRows",()=>tD),s.export(r,"SparseReshape",()=>tM),s.export(r,"SparseSegmentMean",()=>tB),s.export(r,"SparseSegmentSum",()=>tG),s.export(r,"SparseToDense",()=>tV),s.export(r,"SquaredDifference",()=>tL),s.export(r,"Square",()=>tz),s.export(r,"StaticRegexReplace",()=>tU),s.export(r,"StridedSlice",()=>tW),s.export(r,"StringNGrams",()=>tq),s.export(r,"StringSplit",()=>tH),s.export(r,"StringToHashBucketFast",()=>tK),s.export(r,"Sub",()=>tX),s.export(r,"Tan",()=>tZ),s.export(r,"Tanh",()=>tY),s.export(r,"Tile",()=>tQ),s.export(r,"TopK",()=>tJ),s.export(r,"Transform",()=>t0),s.export(r,"Transpose",()=>t1),s.export(r,"Unique",()=>t2),s.export(r,"Unpack",()=>t3),s.export(r,"UnsortedSegmentSum",()=>t6),s.export(r,"UpperBound",()=>t4),s.export(r,"ZerosLike",()=>t5),s.export(r,"Step",()=>t8),s.export(r,"FromPixels",()=>t9),s.export(r,"RotateWithOffset",()=>t7),s.export(r,"_FusedMatMul",()=>re),s.export(r,"FusedConv2D",()=>rt),s.export(r,"FusedDepthwiseConv2D",()=>rr);let a="Abs",o="Acos",l="Acosh",i="Add",p="AddN",u="All",c="Any",d="ArgMax",f="ArgMin",m="Asin",h="Asinh",g="Atan",x="Atanh",y="Atan2",v="AvgPool",b="AvgPoolGrad",k="AvgPool3D",_="AvgPool3DGrad",I="BatchMatMul",j="BatchToSpaceND",w="Bincount",T="BitwiseAnd",S="BroadcastTo",C="BroadcastArgs",N="Cast",E="Ceil",F="ClipByValue",A="Complex",R="ComplexAbs",P="Concat",$="Conv2D",O="Conv2DBackpropFilter",D="Conv2DBackpropInput",M="Conv3D",B="Conv3DBackpropFilterV2",G="Conv3DBackpropInputV2",V="Cos",L="Cosh",z="Cumprod",U="Cumsum",W="CropAndResize",q="DenseBincount",H="DepthToSpace",K="DepthwiseConv2dNative",X="DepthwiseConv2dNativeBackpropFilter",Z="DepthwiseConv2dNativeBackpropInput",Y="Diag",Q="Dilation2D",J="Dilation2DBackpropInput",ee="Dilation2DBackpropFilter",et="Draw",er="RealDiv",en="Einsum",es="Elu",ea="EluGrad",eo="Erf",el="Equal",ei="Exp",ep="ExpandDims",eu="Expm1",ec="FFT",ed="Fill",ef="FlipLeftRight",em="Floor",eh="FloorDiv",eg="FusedBatchNorm",ex="GatherV2",ey="GatherNd",ev="Greater",eb="GreaterEqual",ek="Identity",e_="IFFT",eI="Imag",ej="IsFinite",ew="IsInf",eT="IsNan",eS="LeakyRelu",eC="Less",eN="LessEqual",eE="LinSpace",eF="Log",eA="Log1p",eR="LogicalAnd",eP="LogicalNot",e$="LogicalOr",eO="LogicalXor",eD="LogSoftmax",eM="LowerBound",eB="LRN",eG="LRNGrad",eV="MatrixBandPart",eL="Max",ez="Maximum",eU="MaxPool",eW="MaxPoolGrad",eq="MaxPool3D",eH="MaxPool3DGrad",eK="MaxPoolWithArgmax",eX="Mean",eZ="Min",eY="Minimum",eQ="MirrorPad",eJ="Mod",e0="Multinomial",e1="Multiply",e2="Neg",e3="NotEqual",e6="NonMaxSuppressionV3",e4="NonMaxSuppressionV4",e5="NonMaxSuppressionV5",e8="OnesLike",e9="OneHot",e7="Pack",te="PadV2",tt="Pool",tr="Pow",tn="Prelu",ts="Prod",ta="RaggedGather",to="RaggedRange",tl="RaggedTensorToTensor",ti="Range",tp="Real",tu="Reciprocal",tc="Relu",td="Reshape",tf="ResizeNearestNeighbor",tm="ResizeNearestNeighborGrad",th="ResizeBilinear",tg="ResizeBilinearGrad",tx="Relu6",ty="Reverse",tv="Round",tb="Rsqrt",tk="ScatterNd",t_="TensorScatterUpdate",tI="SearchSorted",tj="Select",tw="Selu",tT="Slice",tS="Sin",tC="Sinh",tN="Sign",tE="Sigmoid",tF="Softplus",tA="Sqrt",tR="Sum",tP="SpaceToBatchND",t$="SplitV",tO="Softmax",tD="SparseFillEmptyRows",tM="SparseReshape",tB="SparseSegmentMean",tG="SparseSegmentSum",tV="SparseToDense",tL="SquaredDifference",tz="Square",tU="StaticRegexReplace",tW="StridedSlice",tq="StringNGrams",tH="StringSplit",tK="StringToHashBucketFast",tX="Sub",tZ="Tan",tY="Tanh",tQ="Tile",tJ="TopK",t0="Transform",t1="Transpose",t2="Unique",t3="Unpack",t6="UnsortedSegmentSum",t4="UpperBound",t5="ZerosLike",t8="Step",t9="FromPixels",t7="RotateWithOffset",re="_FusedMatMul",rt="FusedConv2D",rr="FusedDepthwiseConv2D"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eNDWR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getKernel",()=>u),s.export(r,"getGradient",()=>c),s.export(r,"getKernelsForBackend",()=>d),s.export(r,"registerKernel",()=>f),s.export(r,"registerGradient",()=>m),s.export(r,"unregisterKernel",()=>h),s.export(r,"unregisterGradient",()=>g),s.export(r,"copyRegisteredKernels",()=>x);var a=e("./environment"),o=e("./global_util"),l=e("./log");let i=(0,o.getGlobal)("kernelRegistry",()=>new Map),p=(0,o.getGlobal)("gradRegistry",()=>new Map);function u(e,t){let r=y(e,t);return i.get(r)}function c(e){return p.get(e)}function d(e){let t=i.entries(),r=[];for(;;){let{done:n,value:s}=t.next();if(n)break;let[a,o]=s,[l]=a.split("_");l===e&&r.push(o)}return r}function f(e){let{kernelName:t,backendName:r}=e,n=y(t,r);i.has(n)&&l.warn(`The kernel '${t}' for backend '${r}' is already registered`),i.set(n,e)}function m(e){let{kernelName:t}=e;p.has(t)&&(0,a.env)().getBool("DEBUG")&&l.warn(`Overriding the gradient for '${t}'`),p.set(t,e)}function h(e,t){let r=y(e,t);if(!i.has(r))throw Error(`The kernel '${e}' for backend '${t}' is not registered`);i.delete(r)}function g(e){if(!p.has(e))throw Error(`The gradient '${e}' for backend is not registered`);p.delete(e)}function x(e,t){d(e).forEach(e=>{f(Object.assign({},e,{backendName:t}))})}function y(e,t){return`${t}_${e}`}},{"./environment":"lCEjS","./global_util":"iaFSU","./log":"jXKXX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jXKXX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"warn",()=>o),s.export(r,"log",()=>l);var a=e("./environment");function o(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.warn(...e)}function l(...e){(0,a.env)().getBool("IS_TEST")||(0,a.env)().getBool("PROD")||console.log(...e)}},{"./environment":"lCEjS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9wEzc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Profiler",()=>l),s.export(r,"checkComputationForErrors",()=>i),s.export(r,"Logger",()=>p);var a=e("./environment"),o=e("./util");class l{constructor(e,t){this.backendTimer=e,this.logger=t,null==t&&(this.logger=new p)}profileKernel(e,t,r){let n,s,l=()=>{n=r()},p=o.now();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(l);else{for(let e of(l(),n))e.dataSync();s=Promise.resolve({kernelMs:o.now()-p})}if((0,a.env)().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let t=0;t<n.length;t++){let r=n[t];r.data().then(t=>{i(t,r.dtype,e)})}return{kernelName:e,outputs:n,inputs:t,timeMs:s.then(e=>e.kernelMs),extraInfo:s.then(e=>null!=e.getExtraProfileInfo?e.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:r,timeMs:n,inputs:s,extraInfo:a}=e;r.forEach(e=>{Promise.all([e.data(),n,a]).then(r=>{this.logger.logKernelProfile(t,e,r[0],r[1],s,r[2])})})}}function i(e,t,r){if("float32"!==t)return!1;for(let t=0;t<e.length;t++){let n=e[t];if(isNaN(n)||!isFinite(n))return console.warn(`Found ${n} in the result of '${r}'`),!0}return!1}class p{logKernelProfile(e,t,r,n,s,a){let l="number"==typeof n?o.rightPad(`${n}ms`,9):n.error,i=o.rightPad(e,25),p=t.rank,u=t.size,c=o.rightPad(t.shape.toString(),14),d="";for(let e in s){let r=s[e];if(null!=r){let n=r.shape||t.shape,s=n.length;d+=`${e}: ${s}D ${s>0?n:""} `}}console.log(`%c${i} %c${l} %c${p}D ${c} %c${u} %c${d} %c${a}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}},{"./environment":"lCEjS","./util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"98aA6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createScalarValue",()=>p),s.export(r,"toTypedArray",()=>u),s.export(r,"now",()=>c),s.export(r,"fetch",()=>d),s.export(r,"encodeString",()=>f),s.export(r,"decodeString",()=>m),s.export(r,"isTypedArray",()=>h),s.export(r,"flatten",()=>g);var a=e("./environment"),o=e("./platforms/is_typed_array_browser"),l=e("./util_base");s.exportAll(l,r);var i=e("./hash_util");function p(e,t){return"string"===t?f(e):u([e],t)}function u(e,t){var r;if("string"===t)throw Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=g(e)),(0,a.env)().getBool("DEBUG")&&l.checkConversionForErrors(e,t),(r=e)instanceof Float32Array&&"float32"===t||r instanceof Int32Array&&"int32"===t||r instanceof Uint8Array&&"bool"===t)return e;if(null==t||"float32"===t||"complex64"===t)return new Float32Array(e);if("int32"===t)return new Int32Array(e);if("bool"===t){let t=new Uint8Array(e.length);for(let r=0;r<t.length;++r)0!==Math.round(e[r])&&(t[r]=1);return t}throw Error(`Unknown data type ${t}`)}function c(){return(0,a.env)().platform.now()}function d(e,t){return(0,a.env)().platform.fetch(e,t)}function f(e,t="utf-8"){return t=t||"utf-8",(0,a.env)().platform.encode(e,t)}function m(e,t="utf-8"){return t=t||"utf-8",(0,a.env)().platform.decode(e,t)}function h(e){return null!=(0,a.env)().platform.isTypedArray?(0,a.env)().platform.isTypedArray(e):(0,o.isTypedArrayBrowser)(e)}function g(e,t=[],r=!1){if(null==t&&(t=[]),"boolean"==typeof e||"number"==typeof e||"string"==typeof e||l.isPromise(e)||null==e||h(e)&&r)t.push(e);else if(Array.isArray(e)||h(e))for(let n=0;n<e.length;++n)g(e[n],t,r);else{let n=-1;for(let t of Object.keys(e))/^([1-9]+[0-9]*|0)$/.test(t)&&(n=Math.max(n,Number(t)));for(let s=0;s<=n;s++)g(e[s],t,r)}return t}s.exportAll(i,r)},{"./environment":"lCEjS","./platforms/is_typed_array_browser":"jU57f","./util_base":"F0lVc","./hash_util":"7fmW2","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jU57f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray}s.defineInteropFlag(r),s.export(r,"isTypedArrayBrowser",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7fmW2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hexToLong",()=>l),s.export(r,"fingerPrint64",()=>x);var a=e("long");let o=a.default||a;function l(e){return o.fromString(e,!0,16)}let i=l("c3a5c85c97cb3127"),p=l("b492b66fbe98f273"),u=l("9ae16a3b2f90404f");function c(e){return e.xor(e.shru(47))}function d(e,t,r){let n=e.slice(t,t+r);return o.fromBytes(Array.from(n),!0,!0)}function f(e,t){return d(e,t,8)}function m(e,t){return 0===t?e:e.shru(t).or(e.shl(64-t))}function h(e,t,r=l("9ddfea08eb382d69")){let n=e.xor(t).mul(r);n=n.xor(n.shru(47));let s=t.xor(n).mul(r);return(s=s.xor(s.shru(47))).mul(r)}function g(e,t,r,n){var s,a,o,l,i,p;let u;return s=f(e,t),a=f(e,t+8),o=f(e,t+16),l=f(e,t+24),i=r,p=n,i=i.add(s),p=m(p.add(i).add(l),21),u=i,i=(i=i.add(a)).add(o),p=p.add(m(i,44)),[i.add(l),p.add(u)]}function x(e,t=e.length){let r=o.fromNumber(81,!0);if(t<=32)if(t<=16)return function(e,t=e.length){if(t>=8){let r=u.add(2*t),n=f(e,0).add(u),s=f(e,t-8);return h(m(s,37).mul(r).add(n),m(n,25).add(s).mul(r),r)}if(t>=4){let r=u.add(2*t);return h(d(e,0,4).shl(3).add(t),d(e,t-4,4),r)}if(t>0){let r=e[0],n=e[t>>1],s=e[t-1];return c(u.mul(r+(n<<8)).xor(i.mul(t+(s<<2)))).mul(u)}return u}(e,t);else return function(e,t=e.length){let r=u.add(2*t),n=f(e,0).mul(p),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(u);return h(m(n.add(s),43).add(m(a,30)).add(o),n.add(m(s.add(u),18)).add(a),r)}(e,t);if(t<=64)return function(e,t=e.length){let r=u.add(2*t),n=f(e,0).mul(u),s=f(e,8),a=f(e,t-8).mul(r),o=f(e,t-16).mul(u),l=m(n.add(s),43).add(m(a,30)).add(o),i=h(l,n.add(m(s.add(u),18)).add(a),r),p=f(e,16).mul(r),c=f(e,24),d=l.add(f(e,t-32)).mul(r),g=i.add(f(e,t-24)).mul(r);return h(m(p.add(c),43).add(m(d,30)).add(g),p.add(m(c.add(n),18)).add(d),r)}(e,t);let n=r,s=r.mul(p).add(113),a=c(s.mul(u).add(113)).mul(u),l=[o.UZERO,o.UZERO],y=[o.UZERO,o.UZERO];n=n.mul(u).add(f(e,0));let v=0,b=(t-1>>6)*64,k=b+(t-1&63)-63;do n=m(n.add(s).add(l[0]).add(f(e,v+8)),37).mul(p),s=m(s.add(l[1]).add(f(e,v+48)),42).mul(p),n=n.xor(y[1]),s=s.add(l[0]).add(f(e,v+40)),a=m(a.add(y[0]),33).mul(p),l=g(e,v,l[1].mul(p),n.add(y[0])),y=g(e,v+32,a.add(y[1]),s.add(f(e,v+16))),[a,n]=[n,a],v+=64;while(v!==b)let _=p.add(a.and(255).shl(1));return v=k,y[0]=y[0].add(t-1&63),l[0]=l[0].add(y[0]),y[0]=y[0].add(l[0]),n=m(n.add(s).add(l[0]).add(f(e,v+8)),37).mul(_),s=m(s.add(l[1]).add(f(e,v+48)),42).mul(_),n=n.xor(y[1].mul(9)),s=s.add(l[0].mul(9).add(f(e,v+40))),a=m(a.add(y[0]),33).mul(_),l=g(e,v,l[1].mul(_),n.add(y[0])),y=g(e,v+32,a.add(y[1]),s.add(f(e,v+16))),[a,n]=[n,a],h(h(l[0],y[0],_).add(c(s).mul(i)).add(a),h(l[1],y[1],_).add(n),_)}},{long:"gaqJf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gaqJf:[function(e,t,r,n){t.exports=a;var s=null;try{s=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function a(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function o(e){return!0===(e&&e.__isLong__)}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0}),a.isLong=o;var l={},i={};function p(e,t){var r,n,s;if(t)return(e>>>=0,(s=0<=e&&e<256)&&(n=i[e]))?n:(r=c(e,(0|e)<0?-1:0,!0),s&&(i[e]=r),r);return(e|=0,(s=-128<=e&&e<128)&&(n=l[e]))?n:(r=c(e,e<0?-1:0,!1),s&&(l[e]=r),r)}function u(e,t){if(isNaN(e))return t?b:v;if(t){if(e<0)return b;if(e>=g)return w}else{if(e<=-x)return T;if(e+1>=x)return j}return e<0?u(-e,t).neg():c(e%h|0,e/h|0,t)}function c(e,t,r){return new a(e,t,r)}a.fromInt=p,a.fromNumber=u,a.fromBits=c;var d=Math.pow;function f(e,t,r){if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return v;if("number"==typeof t?(r=t,t=!1):t=!!t,(r=r||10)<2||36<r)throw RangeError("radix");if((n=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===n)return f(e.substring(1),t,r).neg();for(var n,s=u(d(r,8)),a=v,o=0;o<e.length;o+=8){var l=Math.min(8,e.length-o),i=parseInt(e.substring(o,o+l),r);if(l<8){var p=u(d(r,l));a=a.mul(p).add(u(i))}else a=(a=a.mul(s)).add(u(i))}return a.unsigned=t,a}function m(e,t){return"number"==typeof e?u(e,t):"string"==typeof e?f(e,t):c(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}a.fromString=f,a.fromValue=m;var h=0x100000000,g=0xffffffffffffffff,x=0x8000000000000000,y=p(0x1000000),v=p(0);a.ZERO=v;var b=p(0,!0);a.UZERO=b;var k=p(1);a.ONE=k;var _=p(1,!0);a.UONE=_;var I=p(-1);a.NEG_ONE=I;var j=c(-1,0x7fffffff,!1);a.MAX_VALUE=j;var w=c(-1,-1,!0);a.MAX_UNSIGNED_VALUE=w;var T=c(0,-0x80000000,!1);a.MIN_VALUE=T;var S=a.prototype;S.toInt=function(){return this.unsigned?this.low>>>0:this.low},S.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},S.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(!this.eq(T))return"-"+this.neg().toString(e);else{var t=u(e),r=this.div(t),n=r.mul(t).sub(this);return r.toString(e)+n.toInt().toString(e)}for(var s=u(d(e,6),this.unsigned),a=this,o="";;){var l=a.div(s),i=(a.sub(l.mul(s)).toInt()>>>0).toString(e);if((a=l).isZero())return i+o;for(;i.length<6;)i="0"+i;o=""+i+o}},S.getHighBits=function(){return this.high},S.getHighBitsUnsigned=function(){return this.high>>>0},S.getLowBits=function(){return this.low},S.getLowBitsUnsigned=function(){return this.low>>>0},S.getNumBitsAbs=function(){if(this.isNegative())return this.eq(T)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&(e&1<<t)==0;t--);return 0!=this.high?t+33:t+1},S.isZero=function(){return 0===this.high&&0===this.low},S.eqz=S.isZero,S.isNegative=function(){return!this.unsigned&&this.high<0},S.isPositive=function(){return this.unsigned||this.high>=0},S.isOdd=function(){return(1&this.low)==1},S.isEven=function(){return(1&this.low)==0},S.equals=function(e){return o(e)||(e=m(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&this.high===e.high&&this.low===e.low},S.eq=S.equals,S.notEquals=function(e){return!this.eq(e)},S.neq=S.notEquals,S.ne=S.notEquals,S.lessThan=function(e){return 0>this.comp(e)},S.lt=S.lessThan,S.lessThanOrEqual=function(e){return 0>=this.comp(e)},S.lte=S.lessThanOrEqual,S.le=S.lessThanOrEqual,S.greaterThan=function(e){return this.comp(e)>0},S.gt=S.greaterThan,S.greaterThanOrEqual=function(e){return this.comp(e)>=0},S.gte=S.greaterThanOrEqual,S.ge=S.greaterThanOrEqual,S.compare=function(e){if(o(e)||(e=m(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},S.comp=S.compare,S.negate=function(){return!this.unsigned&&this.eq(T)?T:this.not().add(k)},S.neg=S.negate,S.add=function(e){o(e)||(e=m(e));var t,r,n=this.high>>>16,s=65535&this.high,a=this.low>>>16,l=65535&this.low,i=e.high>>>16,p=65535&e.high,u=e.low>>>16,d=65535&e.low,f=0,h=0;return t=0+((r=0+(l+d))>>>16),r&=65535,t+=a+u,h+=t>>>16,t&=65535,h+=s+p,f+=h>>>16,h&=65535,f+=n+i,c(t<<16|r,(f&=65535)<<16|h,this.unsigned)},S.subtract=function(e){return o(e)||(e=m(e)),this.add(e.neg())},S.sub=S.subtract,S.multiply=function(e){if(this.isZero())return v;if(o(e)||(e=m(e)),s)return c(s.mul(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned);if(e.isZero())return v;if(this.eq(T))return e.isOdd()?T:v;if(e.eq(T))return this.isOdd()?T:v;if(this.isNegative())if(e.isNegative())return this.neg().mul(e.neg());else return this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(y)&&e.lt(y))return u(this.toNumber()*e.toNumber(),this.unsigned);var t,r,n=this.high>>>16,a=65535&this.high,l=this.low>>>16,i=65535&this.low,p=e.high>>>16,d=65535&e.high,f=e.low>>>16,h=65535&e.low,g=0,x=0;return t=0+((r=0+i*h)>>>16),r&=65535,t+=l*h,x+=t>>>16,t&=65535,t+=i*f,x+=t>>>16,t&=65535,x+=a*h,g+=x>>>16,x&=65535,x+=l*f,g+=x>>>16,x&=65535,x+=i*d,g+=x>>>16,x&=65535,g+=n*h+a*f+l*d+i*p,c(t<<16|r,(g&=65535)<<16|x,this.unsigned)},S.mul=S.multiply,S.divide=function(e){if(o(e)||(e=m(e)),e.isZero())throw Error("division by zero");if(s){var t,r,n;return this.unsigned||-0x80000000!==this.high||-1!==e.low||-1!==e.high?c((this.unsigned?s.div_u:s.div_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this}if(this.isZero())return this.unsigned?b:v;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return b;if(e.gt(this.shru(1)))return _;n=b}else{if(this.eq(T))if(e.eq(k)||e.eq(I))return T;else return e.eq(T)?k:(t=this.shr(1).div(e).shl(1)).eq(v)?e.isNegative()?k:I:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(T))return this.unsigned?b:v;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=v}for(r=this;r.gte(e);){for(var a=Math.ceil(Math.log(t=Math.max(1,Math.floor(r.toNumber()/e.toNumber())))/Math.LN2),l=a<=48?1:d(2,a-48),i=u(t),p=i.mul(e);p.isNegative()||p.gt(r);)t-=l,p=(i=u(t,this.unsigned)).mul(e);i.isZero()&&(i=k),n=n.add(i),r=r.sub(p)}return n},S.div=S.divide,S.modulo=function(e){return(o(e)||(e=m(e)),s)?c((this.unsigned?s.rem_u:s.rem_s)(this.low,this.high,e.low,e.high),s.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},S.mod=S.modulo,S.rem=S.modulo,S.not=function(){return c(~this.low,~this.high,this.unsigned)},S.and=function(e){return o(e)||(e=m(e)),c(this.low&e.low,this.high&e.high,this.unsigned)},S.or=function(e){return o(e)||(e=m(e)),c(this.low|e.low,this.high|e.high,this.unsigned)},S.xor=function(e){return o(e)||(e=m(e)),c(this.low^e.low,this.high^e.high,this.unsigned)},S.shiftLeft=function(e){return(o(e)&&(e=e.toInt()),0==(e&=63))?this:e<32?c(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):c(0,this.low<<e-32,this.unsigned)},S.shl=S.shiftLeft,S.shiftRight=function(e){return(o(e)&&(e=e.toInt()),0==(e&=63))?this:e<32?c(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):c(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},S.shr=S.shiftRight,S.shiftRightUnsigned=function(e){if(o(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return e<32?c(this.low>>>e|t<<32-e,t>>>e,this.unsigned):32===e?c(t,0,this.unsigned):c(t>>>e-32,0,this.unsigned)},S.shru=S.shiftRightUnsigned,S.shr_u=S.shiftRightUnsigned,S.toSigned=function(){return this.unsigned?c(this.low,this.high,!1):this},S.toUnsigned=function(){return this.unsigned?this:c(this.low,this.high,!0)},S.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},S.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},S.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},a.fromBytes=function(e,t,r){return r?a.fromBytesLE(e,t):a.fromBytesBE(e,t)},a.fromBytesLE=function(e,t){return new a(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},a.fromBytesBE=function(e,t){return new a(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)}},{}],"8vfFt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFilteredNodesXToY",()=>o),s.export(r,"backpropagateGradients",()=>l);var a=e("./util");function o(e,t,r){let n={},s={};for(let e=0;e<t.length;e++)n[t[e].id]=!0;for(let r=0;r<e.length;r++){let a=e[r],o=a.inputs;for(let e in o){let r=o[e],l=!1;for(let e=0;e<t.length;e++)if(n[r.id]){a.outputs.forEach(e=>n[e.id]=!0),l=!0,s[a.id]=!0;break}if(l)break}}let a={};a[r.id]=!0;let o={};for(let t=e.length-1;t>=0;t--){let r=e[t],n=r.inputs;for(let e=0;e<r.outputs.length;e++)if(a[r.outputs[e].id]){for(let e in n)a[n[e].id]=!0,o[r.id]=!0;break}}let l=[];for(let t=0;t<e.length;t++){let r=e[t];if(s[r.id]&&o[r.id]){let e={};for(let t in r.inputs){let s=r.inputs[t];n[s.id]&&(e[t]=s)}let t=Object.assign({},r);t.inputs=e,t.outputs=r.outputs,l.push(t)}}return l}function l(e,t,r,n){for(let s=t.length-1;s>=0;s--){let o=t[s],l=[];if(o.outputs.forEach(t=>{let r=e[t.id];null!=r?l.push(r):l.push(null)}),null==o.gradient)throw Error(`Cannot compute gradient: gradient function not found for ${o.kernelName}.`);let i=o.gradient(l);for(let t in o.inputs){if(!(t in i))throw Error(`Cannot backprop through input ${t}. Available gradients found: ${Object.keys(i)}.`);let s=r(()=>i[t]());if("float32"!==s.dtype)throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input ${t} must have 'float32' dtype, but has '${s.dtype}'`);let l=o.inputs[t];if(!a.arraysEqual(s.shape,l.shape))throw Error(`Error in gradient for op ${o.kernelName}. The gradient of input '${t}' has shape '${s.shape}', which does not match the shape of the input '${l.shape}'`);if(null==e[l.id])e[l.id]=s;else{let t=e[l.id];e[l.id]=n(t,s),t.dispose()}}}}},{"./util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],izSBk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorBuffer",()=>i),s.export(r,"setTensorTracker",()=>c),s.export(r,"setOpHandler",()=>d),s.export(r,"setDeprecationWarningFn",()=>f),s.export(r,"Tensor",()=>m),s.export(r,"getGlobalTensorClass",()=>h),s.export(r,"Variable",()=>g);var a=e("./global_util"),o=e("./tensor_format"),l=e("./util");class i{constructor(e,t,r){if(this.dtype=t,this.shape=e.slice(),this.size=l.sizeFromShape(e),null!=r){const e=r.length;l.assert(e===this.size,()=>`Length of values '${e}' does not match the size inferred by the shape '${this.size}'.`)}if("complex64"===t)throw 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=r||l.getArrayFromDType(t,this.size),this.strides=(0,l.computeStrides)(e)}set(e,...t){0===t.length&&(t=[0]),l.assert(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let r=this.locToIndex(t);this.values[r]=e}get(...e){0===e.length&&(e=[0]);let t=0;for(let r of e){if(r<0||r>=this.shape[t])throw Error(`Requested out of range element at ${e}. Buffer shape=${this.shape}`);t++}let r=e[e.length-1];for(let t=0;t<e.length-1;++t)r+=this.strides[t]*e[t];return this.values[r]}locToIndex(e){if(0===this.rank)return 0;if(1===this.rank)return e[0];let t=e[e.length-1];for(let r=0;r<e.length-1;++r)t+=this.strides[r]*e[r];return t}indexToLoc(e){if(0===this.rank)return[];if(1===this.rank)return[e];let t=Array(this.shape.length);for(let r=0;r<t.length-1;++r)t[r]=Math.floor(e/this.strides[r]),e-=t[r]*this.strides[r];return t[t.length-1]=e,t}get rank(){return this.shape.length}toTensor(){return p().makeTensor(this.values,this.shape,this.dtype)}}let p=null,u=null;function c(e){p=e}function d(e){u=e}function f(e){}class m{constructor(e,t,r,n){this.kept=!1,this.isDisposedInternal=!1,this.shape=e.slice(),this.dtype=t||"float32",this.size=l.sizeFromShape(e),this.strides=(0,l.computeStrides)(e),this.dataId=r,this.id=n,this.rankType=this.rank<5?this.rank.toString():"higher"}get rank(){return this.shape.length}async buffer(){let e=await this.data();return u.buffer(this.shape,this.dtype,e)}bufferSync(){return u.buffer(this.shape,this.dtype,this.dataSync())}async array(){let e=await this.data();return(0,l.toNestedArray)(this.shape,e,"complex64"===this.dtype)}arraySync(){return(0,l.toNestedArray)(this.shape,this.dataSync(),"complex64"===this.dtype)}async data(){this.throwIfDisposed();let e=p().read(this.dataId);if("string"===this.dtype){let t=await e;try{return t.map(e=>l.decodeString(e))}catch(e){throw Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),p().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=p().readSync(this.dataId);if("string"===this.dtype)try{return e.map(e=>l.decodeString(e))}catch(e){throw 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 p().read(this.dataId);return"string"===this.dtype?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(this.kerasMask&&this.kerasMask.dispose(),p().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw Error("Tensor is disposed.")}print(e=!1){return u.print(this,e)}clone(){return this.throwIfDisposed(),u.clone(this)}toString(e=!1){let t=this.dataSync();return(0,o.tensorToString)(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),u.cast(this,e)}variable(e=!0,t,r){return this.throwIfDisposed(),p().makeVariable(this,e,t,r)}}function h(){return(0,a.getGlobal)("Tensor",()=>m)}Object.defineProperty(m,Symbol.hasInstance,{value:e=>!!e&&null!=e.data&&null!=e.dataSync&&null!=e.throwIfDisposed}),h();class g extends m{constructor(e,t,r,n){super(e.shape,e.dtype,e.dataId,n),this.trainable=t,this.name=r}assign(e){if(e.dtype!==this.dtype)throw Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!l.arraysEqual(e.shape,this.shape))throw Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);p().disposeTensor(this),this.dataId=e.dataId,p().incRef(this,null)}dispose(){p().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(g,Symbol.hasInstance,{value:e=>e instanceof m&&null!=e.assign&&e.assign instanceof Function})},{"./global_util":"iaFSU","./tensor_format":"XTokn","./util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],XTokn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorToString",()=>o);var a=e("./util");function o(e,t,r,n){let s=(0,a.computeStrides)(t),o=function(e,t,r,n){let s=(0,a.sizeFromShape)(t),o=n[n.length-1],i=Array(o).fill(0),u=t.length,c="complex64"===r?p(e):e;if(u>1)for(let e=0;e<s/o;e++){let t=e*o;for(let e=0;e<o;e++)i[e]=Math.max(i[e],l(c[t+e],0,r).length)}return i}(e,t,r,s),u=t.length,c=function e(t,r,n,s,a,o=!0){let u="complex64"===n?2:1,c=r[0],d=r.length;if(0===d)return"complex64"===n?[l(p(t)[0],0,n)]:"bool"===n?[i(t[0])]:[t[0].toString()];if(1===d){if(c>20){let e=Array.from(t.slice(0,3*u)),r=Array.from(t.slice((c-3)*u,c*u));return"complex64"===n&&(e=p(e),r=p(r)),["["+e.map((e,t)=>l(e,a[t],n)).join(", ")+", ..., "+r.map((e,t)=>l(e,a[c-3+t],n)).join(", ")+"]"]}return["["+("complex64"===n?p(t):Array.from(t)).map((e,t)=>l(e,a[t],n)).join(", ")+"]"]}let f=r.slice(1),m=s.slice(1),h=s[0]*u,g=[];if(c>20){for(let r=0;r<3;r++){let s=r*h,o=s+h;g.push(...e(t.slice(s,o),f,n,m,a,!1))}g.push("...");for(let r=c-3;r<c;r++){let s=r*h,o=s+h;g.push(...e(t.slice(s,o),f,n,m,a,r===c-1))}}else for(let r=0;r<c;r++){let s=r*h,o=s+h;g.push(...e(t.slice(s,o),f,n,m,a,r===c-1))}let x=2===d?",":"";g[0]="["+(c>0?g[0]+x:"");for(let e=1;e<g.length-1;e++)g[e]=" "+g[e]+x;let y=",\n";for(let e=2;e<d;e++)y+="\n";return g[g.length-1]=" "+g[g.length-1]+"]"+(o?"":y),g}(e,t,r,s,o),d=["Tensor"];return n&&(d.push(` dtype: ${r}`),d.push(` rank: ${u}`),d.push(` shape: [${t}]`),d.push(" values:")),d.push(c.map(e=>" "+e).join("\n")),d.join("\n")}function l(e,t,r){let n;return n=Array.isArray(e)?`${parseFloat(e[0].toFixed(7))} + ${parseFloat(e[1].toFixed(7))}j`:(0,a.isString)(e)?`'${e}'`:"bool"===r?i(e):parseFloat(e.toFixed(7)).toString(),(0,a.rightPad)(n,t)}function i(e){return 0===e?"false":"true"}function p(e){let t=[];for(let r=0;r<e.length;r+=2)t.push([e[r],e[r+1]]);return t}},{"./util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5lFsY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeTypesMatch",()=>i),s.export(r,"assertTypesMatch",()=>p),s.export(r,"isTensorInList",()=>u),s.export(r,"getTensorsInContainer",()=>c);var a=e("./tensor"),o=e("./types"),l=e("./util");function i(e,t){if(e.dtype===t.dtype)return[e,t];let r=(0,o.upcastType)(e.dtype,t.dtype);return[e.cast(r),t.cast(r)]}function p(e,t){(0,l.assert)(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function u(e,t){return t.some(t=>t.id===e.id)}function c(e){let t=[];return function e(t,r,n){var s;if(null!=t){if(t instanceof a.Tensor)return void r.push(t);if(Array.isArray(s=t)||"object"==typeof s)for(let s in t){let a=t[s];n.has(a)||(n.add(a),e(a,r,n))}}}(e,t,new Set),t}},{"./tensor":"izSBk","./types":"c6lOT","./util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],c6lOT:[function(e,t,r,n){var s,a,o,l,i,p,u,c,d,f,m=e("@parcel/transformer-js/src/esmodule-helpers.js");m.defineInteropFlag(r),m.export(r,"Rank",()=>p),m.export(r,"upcastType",()=>g),m.export(r,"sumOutType",()=>x),m.export(r,"isWebGLData",()=>y),m.export(r,"isWebGPUData",()=>v),(s=p||(p={})).R0="R0",s.R1="R1",s.R2="R2",s.R3="R3",s.R4="R4",s.R5="R5",s.R6="R6",(a=u||(u={})).float32="float32",a.int32="int32",a.bool="int32",a.complex64="complex64",(o=c||(c={})).float32="float32",o.int32="int32",o.bool="bool",o.complex64="complex64",(l=d||(d={})).float32="float32",l.int32="float32",l.bool="float32",l.complex64="complex64",(i=f||(f={})).float32="complex64",i.int32="complex64",i.bool="complex64",i.complex64="complex64";let h={float32:d,int32:u,bool:c,complex64:f};function g(e,t){if("string"===e||"string"===t){if("string"===e&&"string"===t)return"string";throw Error(`Can not upcast ${e} with ${t}`)}return h[e][t]}function x(e){return g(e,"int32")}function y(e){return null!=e&&"object"==typeof e&&"texture"in e&&e.texture instanceof WebGLTexture}function v(e){return"u">typeof GPUBuffer&&null!=e&&"object"==typeof e&&"buffer"in e&&e.buffer instanceof GPUBuffer}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"44Dje":[function(e,t,r,n){e("./engine");var s=e("./device_util");let a=(0,e("./environment").env)();a.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.")}),a.registerFlag("IS_BROWSER",()=>s.isBrowser()),a.registerFlag("IS_NODE",()=>!1),a.registerFlag("IS_CHROME",()=>"u">typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)),a.registerFlag("IS_SAFARI",()=>"u">typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Safari/.test(navigator.userAgent)&&/Apple/.test(navigator.vendor)),a.registerFlag("PROD",()=>!1),a.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>a.getBool("DEBUG")),a.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0),a.registerFlag("IS_TEST",()=>!1),a.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>a.getBool("DEBUG")),a.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1),a.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1),a.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1)},{"./engine":"5aImO","./device_util":"bIfnh","./environment":"lCEjS"}],bIfnh:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e){s=e}function l(e){if(void 0!==s)return s;if(e||"u">typeof navigator&&null!=navigator){if(e||(e=navigator),"ReactNative"===e.product)return!0;let t=e.userAgent||e.vendor||("u">typeof window?window.opera:"");if(!t){let t=e;return t.userAgentData&&t.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function i(){return"u">typeof window&&null!=window.document||"u">typeof WorkerGlobalScope}a.defineInteropFlag(r),a.export(r,"mockIsMobile",()=>o),a.export(r,"isMobile",()=>l),a.export(r,"isBrowser",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5luux":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PlatformBrowser",()=>u),e("../flags");var a=e("../environment"),o=e("../io/indexed_db"),l=e("../io/local_storage"),i=e("../io/model_management"),p=e("./is_typed_array_browser");class u{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Browser's encoder only supports utf-8, but got ${t}`);return null==this.textEncoder&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){"u"<typeof window||!(0,a.env)().getBool("USE_SETTIMEOUTCUSTOM")?setTimeout(e,t):(this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",e=>{e.source===window&&e.data.name===this.messageName&&(e.stopPropagation(),(0,this.functionRefs[e.data.index])(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0))},!0)))}isTypedArray(e){return(0,p.isTypedArrayBrowser)(e)}}if((0,a.env)().get("IS_BROWSER")){(0,a.env)().setPlatform("browser",new u);try{i.ModelStoreManagerRegistry.registerManager(l.BrowserLocalStorage.URL_SCHEME,new(0,l.BrowserLocalStorageManager))}catch(e){}try{i.ModelStoreManagerRegistry.registerManager(o.BrowserIndexedDB.URL_SCHEME,new(0,o.BrowserIndexedDBManager))}catch(e){}}},{"../flags":"44Dje","../environment":"lCEjS","../io/indexed_db":"fCIAk","../io/local_storage":"799bQ","../io/model_management":"rDgCT","./is_typed_array_browser":"jU57f","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fCIAk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"deleteDatabase",()=>d),s.export(r,"BrowserIndexedDB",()=>h),s.export(r,"indexedDBRouter",()=>g),s.export(r,"browserIndexedDB",()=>x),s.export(r,"BrowserIndexedDBManager",()=>y),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");let p="tensorflowjs",u="models_store",c="model_info_store";async function d(){let e=f();return new Promise((t,r)=>{let n=e.deleteDatabase(p);n.onsuccess=()=>t(),n.onerror=e=>r(e)})}function f(){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e="u"<typeof window?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(null==t)throw Error("The current browser does not appear to support IndexedDB.");return t}function m(e){let t=e.result;t.createObjectStore(u,{keyPath:"modelPath"}),t.createObjectStore(c,{keyPath:"modelPath"})}class h{constructor(e){if(this.indexedDB=f(),null==e||!e)throw Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw 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((e,r)=>{let n=this.indexedDB.open(p,1);n.onupgradeneeded=()=>m(n),n.onsuccess=()=>{let s=n.result;if(null==t){let t=s.transaction(u,"readonly"),n=t.objectStore(u).get(this.modelPath);n.onsuccess=()=>{if(null==n.result)return s.close(),r(Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));e(n.result.modelArtifacts)},n.onerror=e=>(s.close(),r(n.error)),t.oncomplete=()=>s.close()}else{let n,a;t.weightData=i.CompositeArrayBuffer.join(t.weightData);let l=(0,o.getModelArtifactsInfoForJSON)(t),p=s.transaction(c,"readwrite"),d=p.objectStore(c);try{n=d.put({modelPath:this.modelPath,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>{let n,o=(a=s.transaction(u,"readwrite")).objectStore(u);try{n=o.put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:l})}catch(e){return r(e)}n.onsuccess=()=>e({modelArtifactsInfo:l}),n.onerror=e=>{let t=(d=p.objectStore(c)).delete(this.modelPath);t.onsuccess=()=>(s.close(),r(n.error)),t.onerror=e=>(s.close(),r(n.error))}},n.onerror=e=>(s.close(),r(n.error)),p.oncomplete=()=>{null==a?s.close():a.oncomplete=()=>s.close()}}},n.onerror=e=>r(n.error)})}}h.URL_SCHEME="indexeddb://";let g=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(h.URL_SCHEME)?x(e.slice(h.URL_SCHEME.length)):null;function x(e){return new h(e)}l.IORouterRegistry.registerSaveRouter(g),l.IORouterRegistry.registerLoadRouter(g);class y{constructor(){this.indexedDB=f()}async listModels(){return new Promise((e,t)=>{let r=this.indexedDB.open(p,1);r.onupgradeneeded=()=>m(r),r.onsuccess=()=>{let n=r.result,s=n.transaction(c,"readonly"),a=s.objectStore(c).getAll();a.onsuccess=()=>{let t={};for(let e of a.result)t[e.modelPath]=e.modelArtifactsInfo;e(t)},a.onerror=e=>(n.close(),t(a.error)),s.oncomplete=()=>n.close()},r.onerror=e=>t(r.error)})}async removeModel(e){var t;return e=(t=e).startsWith(h.URL_SCHEME)?t.slice(h.URL_SCHEME.length):t,new Promise((t,r)=>{let n=this.indexedDB.open(p,1);n.onupgradeneeded=()=>m(n),n.onsuccess=()=>{let s,a=n.result,o=a.transaction(c,"readwrite"),l=o.objectStore(c),i=l.get(e);i.onsuccess=()=>{if(null==i.result)return a.close(),r(Error(`Cannot find model with path '${e}' in IndexedDB.`));{let n=l.delete(e),o=()=>{let n=(s=a.transaction(u,"readwrite")).objectStore(u).delete(e);n.onsuccess=()=>t(i.result.modelArtifactsInfo),n.onerror=e=>r(i.error)};n.onsuccess=o,n.onerror=e=>(o(),a.close(),r(i.error))}},i.onerror=e=>(a.close(),r(i.error)),o.oncomplete=()=>{null==s?a.close():s.oncomplete=()=>a.close()}},n.onerror=e=>r(n.error)})}}},{"../flags":"44Dje","../environment":"lCEjS","./io_utils":"6yZPf","./router_registry":"66OpC","./composite_array_buffer":"bzWJ0","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6yZPf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"encodeWeights",()=>d),s.export(r,"decodeWeights",()=>f),s.export(r,"decodeWeightsStream",()=>x),s.export(r,"concatenateTypedArrays",()=>y),s.export(r,"stringByteLength",()=>b),s.export(r,"arrayBufferToBase64String",()=>k),s.export(r,"base64StringToArrayBuffer",()=>_),s.export(r,"concatenateArrayBuffers",()=>I),s.export(r,"basename",()=>j),s.export(r,"getModelJSONForModelArtifacts",()=>w),s.export(r,"getModelArtifactsForJSONSync",()=>T),s.export(r,"getModelArtifactsForJSON",()=>S),s.export(r,"getModelArtifactsInfoForJSON",()=>C),s.export(r,"getWeightSpecs",()=>N),s.export(r,"getFloat16Decoder",()=>E);var a=e("../ops/complex"),o=e("../ops/tensor"),l=e("../util"),i=e("./types"),p=e("./composite_array_buffer"),u=e("../globals"),c=e("../environment");async function d(e,t){let r=[],n=[],s=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);for(let a=0;a<s.length;++a){let o=s[a],l=Array.isArray(e)?e[a].tensor:e[o];if("float32"!==l.dtype&&"int32"!==l.dtype&&"bool"!==l.dtype&&"string"!==l.dtype&&"complex64"!==l.dtype)throw Error(`Unsupported dtype in weight '${o}': ${l.dtype}`);let i={name:o,shape:l.shape,dtype:l.dtype};if("string"===l.dtype){let e=new Promise(async e=>{let t=await l.bytes(),r=new Uint8Array(t.reduce((e,t)=>e+t.length,0)+4*t.length),n=0;for(let e=0;e<t.length;e++){let s=t[e],a=new Uint8Array(new Uint32Array([s.length]).buffer);r.set(a,n),n+=4,r.set(s,n),n+=s.length}e(r)});n.push(e)}else n.push(l.data());null!=t&&(i.group=t),r.push(i)}return{data:y(await Promise.all(n)),specs:r}}function f(e,t){let r=new(0,p.CompositeArrayBuffer)(e),n={},s=0;for(let e of t){let t=function(e,t){let r,n=(0,l.sizeFromShape)(e.shape);if("quantization"in e){let t=e.quantization;r=i.DTYPE_VALUE_SIZE_MAP[t.dtype]}else if("string"===e.dtype){let e=0;for(let r=0;r<n;r++)e+=4+new Uint32Array(t(e,e+4))[0];return e}else r=i.DTYPE_VALUE_SIZE_MAP[e.dtype];return n*r}(e,(e,t)=>r.slice(s+e,s+t));n[e.name]=h(e,r.slice(s,s+t)),s+=t}return n}async function m(e,t){let r,n=(0,l.sizeFromShape)(e.shape);if("quantization"in e){let t=e.quantization;r=i.DTYPE_VALUE_SIZE_MAP[t.dtype]}else if("string"===e.dtype){let e=0;for(let r=0;r<n;r++)e+=4+new Uint32Array(await t(e,e+4))[0];return e}else r=i.DTYPE_VALUE_SIZE_MAP[e.dtype];return n*r}function h(e,t){let r,n=e.name,s=e.dtype,p=e.shape,u=(0,l.sizeFromShape)(p),c=0;if("quantization"in e){let a=e.quantization;if("uint8"===a.dtype||"uint16"===a.dtype){if(!("min"in a&&"scale"in a))throw Error(`Weight ${e.name} with quantization ${a.dtype} doesn't have corresponding metadata min and scale.`)}else if("float16"===a.dtype){if("float32"!==s)throw Error(`Weight ${e.name} is quantized with ${a.dtype} which only supports weights of type float32 not ${s}.`)}else throw Error(`Weight ${e.name} has unknown quantization dtype ${a.dtype}. Supported quantization dtypes are: 'uint8', 'uint16', and 'float16'.`);let o=i.DTYPE_VALUE_SIZE_MAP[a.dtype],l="uint8"===a.dtype?new Uint8Array(t):new Uint16Array(t);if("float32"===s)if("uint8"===a.dtype||"uint16"===a.dtype){r=new Float32Array(l.length);for(let e=0;e<l.length;e++){let t=l[e];r[e]=t*a.scale+a.min}}else if("float16"===a.dtype)r=E()(l);else throw Error(`Unsupported quantization type ${a.dtype} for weight type float32.`);else if("int32"===s){if("uint8"!==a.dtype&&"uint16"!==a.dtype)throw Error(`Unsupported quantization type ${a.dtype} for weight type int32.`);r=new Int32Array(l.length);for(let e=0;e<l.length;e++){let t=l[e];r[e]=Math.round(t*a.scale+a.min)}}else throw Error(`Unsupported dtype in weight '${n}': ${s}`);c+=u*o}else if("string"===s){let n=(0,l.sizeFromShape)(e.shape);r=[];for(let e=0;e<n;e++){let e=new Uint32Array(t.slice(c,c+4))[0];c+=4;let n=new Uint8Array(t.slice(c,c+e));r.push(n),c+=e}}else{let e=i.DTYPE_VALUE_SIZE_MAP[s];if("float32"===s)r=new Float32Array(t);else if("int32"===s)r=new Int32Array(t);else if("bool"===s)r=new Uint8Array(t);else if("complex64"===s){r=new Float32Array(t);let e=new Float32Array(r.length/2),n=new Float32Array(r.length/2);for(let t=0;t<e.length;t++)e[t]=r[2*t],n[t]=r[2*t+1];let s=(0,o.tensor)(e,p,"float32"),l=(0,o.tensor)(n,p,"float32"),i=(0,a.complex)(s,l);return s.dispose(),l.dispose(),i}else throw Error(`Unsupported dtype in weight '${n}': ${s}`);c+=u*e}return(0,o.tensor)(r,p,s)}async function g(e,t,r){let n=new Uint8Array(t);for(;n.byteLength<r;){let{done:t,value:s}=await e.read();if(t&&null==s){let e=r-n.byteLength;throw Error(`Reader is done but ${e} bytes are still expected`)}let a=new Uint8Array(n.length+s.byteLength);a.set(n,0),a.set(new Uint8Array(s),n.length),n=a}return n.buffer}async function x(e,t){let r={},n=e.getReader(),s=new ArrayBuffer(0);for(let e of t){let t=await m(e,async(e,t)=>(s=await g(n,s,t)).slice(e,t)),a=(s=await g(n,s,t)).slice(0,t);s=s.slice(t);let o=h(e,a);if(r[e.name]=o,"webgpu"===(0,u.getBackend)()){let e=(0,u.backend)();"uploadToGPU"in e&&(0,l.sizeFromShape)(o.shape)>=(0,c.env)().get("WEBGPU_CPU_HANDOFF_SIZE_THRESHOLD")&&e.uploadToGPU(o.dataId)}}return r}function y(e){if(null===e)throw Error(`Invalid input value: ${JSON.stringify(e)}`);let t=0,r=[];e.forEach(e=>{if(t+=e.byteLength,r.push(e.byteLength===e.buffer.byteLength?e:new e.constructor(e)),!(e instanceof Float32Array||e instanceof Int32Array||e instanceof Uint8Array))throw Error(`Unsupported TypedArray subtype: ${e.constructor.name}`)});let n=new Uint8Array(t),s=0;return r.forEach(e=>{n.set(new Uint8Array(e.buffer),s),s+=e.byteLength}),n.buffer}let v="u">typeof Buffer&&("u"<typeof Blob||"u"<typeof atob||"u"<typeof btoa);function b(e){return v?Buffer.byteLength(e,"utf8"):new Blob([e]).size}function k(e){if(v)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),r="";for(let e=0,n=t.length;e<n;e++)r+=String.fromCharCode(t[e]);return btoa(r)}function _(e){if(v){let t=Buffer.from(e,"base64");return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}let t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<t.length;++e)r.set([t.charCodeAt(e)],e);return r.buffer}function I(e){return p.CompositeArrayBuffer.join(e)}function j(e){for(e=e.trim();e.endsWith("/");)e=e.slice(0,e.length-1);let t=e.split("/");return t[t.length-1]}function w(e,t){let r={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return null!=e.signature&&(r.signature=e.signature),null!=e.userDefinedMetadata&&(r.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(r.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(r.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(r.trainingConfig=e.trainingConfig),r}function T(e,t,r){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(null!=e.trainingConfig&&(n.trainingConfig=e.trainingConfig),null!=e.weightsManifest){if(!t)throw Error("modelJSON has weightsManifest but weightSpecs is null");if(!r)throw Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=r}return null!=e.signature&&(n.signature=e.signature),null!=e.userDefinedMetadata&&(n.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(n.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(n.initializerSignature=e.initializerSignature),n}async function S(e,t){let r,n;return null!=e.weightsManifest&&([r,n]=await t(e.weightsManifest)),T(e,r,n)}function C(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:null==e.modelTopology?0:b(JSON.stringify(e.modelTopology)),weightSpecsBytes:null==e.weightSpecs?0:b(JSON.stringify(e.weightSpecs)),weightDataBytes:null==e.weightData?0:new(0,p.CompositeArrayBuffer)(e.weightData).byteLength}}function N(e){let t=[];for(let r of e)t.push(...r.weights);return t}function E(){let e=function(){let e=e=>{let t=e<<13,r=0;for(;(8388608&t)==0;)r-=8388608,t<<=1;return(t&=-8388609)|(r+=0x38800000)},t=new Uint32Array(2048);t[0]=0;for(let r=1;r<1024;r++)t[r]=e(r);for(let e=1024;e<2048;e++)t[e]=0x38000000+(e-1024<<13);return t}(),t=function(){let e=new Uint32Array(64);e[0]=0,e[31]=0x47800000,e[32]=0x80000000,e[63]=0xc7800000;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=0x80000000+(t-32<<23);return e}(),r=function(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}();return n=>{let s=new ArrayBuffer(4*n.length),a=new Uint32Array(s);for(let s=0;s<n.length;s++){let o=n[s],l=e[r[o>>10]+(1023&o)]+t[o>>10];a[s]=l}return new Float32Array(s)}}},{"../ops/complex":"5l7Tr","../ops/tensor":"dTxMo","../util":"F0lVc","./types":"2CdJ3","./composite_array_buffer":"bzWJ0","../globals":"1ONwU","../environment":"lCEjS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5l7Tr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({complex_:function(e,t){let r=(0,l.convertToTensor)(e,"real","complex"),n=(0,l.convertToTensor)(t,"imag","complex");return i.assertShapesMatch(r.shape,n.shape,`real and imag shapes, ${r.shape} and ${n.shape}, must match in call to tf.complex().`),a.ENGINE.runKernel(o.Complex,{real:r,imag:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],feaHs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"inferShape",()=>c),s.export(r,"convertToTensor",()=>f),s.export(r,"convertToTensorArray",()=>m);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./types"),p=e("./util"),u=e("./util_base");function c(e,t){let r=e;if((0,p.isTypedArray)(e))return"string"===t?[]:[e.length];if((0,i.isWebGLData)(e)){let t=e.channels||"RGBA";return[e.height,e.width*t.length]}if((0,i.isWebGPUData)(e))return[e.buffer.size/(null==t?4:(0,u.bytesPerElement)(t))];if(!Array.isArray(e))return[];let n=[];for(;Array.isArray(r)||(0,p.isTypedArray)(r)&&"string"!==t;)n.push(r.length),r=r[0];return Array.isArray(e)&&(0,o.env)().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&function e(t,r,n){if(n=n||[],!Array.isArray(t)&&!(0,p.isTypedArray)(t))return void(0,p.assert)(0===r.length,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${r[0]} elements`);(0,p.assert)(r.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${t.length} elements`),(0,p.assert)(t.length===r[0],()=>`Element arr[${n.join("][")}] should have ${r[0]} elements, but has ${t.length} elements`);let s=r.slice(1);for(let r=0;r<t.length;++r)e(t[r],s,n.concat(r))}(e,n,[]),n}function d(e,t,r,n){if("string_or_numeric"!==e){if(null==e)throw Error("Expected dtype cannot be null.");if("numeric"!==e&&e!==t||"numeric"===e&&"string"===t)throw Error(`Argument '${r}' passed to '${n}' must be ${e} tensor, but got ${t} tensor`)}}function f(e,t,r,n="numeric"){if(e instanceof(0,l.getGlobalTensorClass)())return d(n,e.dtype,t,r),e;let s=(0,p.inferDtype)(e);if("string"!==s&&["bool","int32","float32"].indexOf(n)>=0&&(s=n),d(n,s,t,r),null==e||!(0,p.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e){let n=null==e?"null":e.constructor.name;throw Error(`Argument '${t}' passed to '${r}' must be a Tensor or TensorLike, but got '${n}'`)}let o=c(e,s);(0,p.isTypedArray)(e)||Array.isArray(e)||(e=[e]);let i="string"!==s?(0,p.toTypedArray)(e,s):(0,p.flatten)(e,[],!0);return a.ENGINE.makeTensor(i,o,s)}function m(e,t,r,n="numeric"){if(!Array.isArray(e))throw Error(`Argument ${t} passed to ${r} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((e,s)=>f(e,`${t}[${s}]`,r,n))}},{"./engine":"5aImO","./environment":"lCEjS","./tensor":"izSBk","./types":"c6lOT","./util":[["assert","F0lVc"],["inferDtype","F0lVc"],["flatten","98aA6"],["isTypedArray","98aA6"],["toTypedArray","98aA6"]],"./util_base":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2qT2c":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OP_SCOPE_SUFFIX",()=>l),s.export(r,"op",()=>i);var a=e("../engine"),o=e("../util");let l="__op";function i(e){let t=Object.keys(e);if(1!==t.length)throw Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let r=t[0],n=e[r];r.endsWith("_")&&(r=r.substring(0,r.length-1));let s=(...e)=>{a.ENGINE.startScope(r);try{let t=n(...e);return(0,o.isPromise)(t)&&console.error("Cannot return a Promise inside of tidy."),a.ENGINE.endScope(t),t}catch(e){throw a.ENGINE.endScope(null),e}};return Object.defineProperty(s,"name",{value:r+=l,configurable:!0}),s}},{"../engine":"5aImO","../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dTxMo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor",()=>l);var a=e("../tensor_util_env"),o=e("./tensor_ops_util");function l(e,t,r){let n=(0,a.inferShape)(e,r);return(0,o.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"feaHs","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5BQrn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeTensor",()=>i);var a=e("../engine"),o=e("../types"),l=e("../util");function i(e,t,r,n){if(null==n)n=(0,l.inferDtype)(e);else if("complex64"===n)throw Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if((0,o.isWebGPUData)(e)||(0,o.isWebGLData)(e)){if("float32"!==n&&"int32"!==n)throw Error(`Creating tensor from GPU data only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return a.ENGINE.backend.createTensorFromGPUData(e,t||r,n)}if(!(0,l.isTypedArray)(e)&&!Array.isArray(e)&&"number"!=typeof e&&"boolean"!=typeof e&&"string"!=typeof e)throw Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(null!=t){(0,l.assertNonNegativeIntegerDimensions)(t);let e=(0,l.sizeFromShape)(t),n=(0,l.sizeFromShape)(r);(0,l.assert)(e===n,()=>`Based on the provided shape, [${t}], the tensor should have ${e} values but has ${n}`);for(let e=0;e<r.length;++e){let n=r[e],s=e!==r.length-1||n!==(0,l.sizeFromShape)(t.slice(e));(0,l.assert)(r[e]===t[e]||!s,()=>`Error creating a new Tensor. Inferred shape (${r}) does not match the provided shape (${t}). `)}}return(0,l.isTypedArray)(e)||Array.isArray(e)||(e=[e]),t=t||r,e="string"!==n?(0,l.toTypedArray)(e,n):(0,l.flatten)(e,[],!0),a.ENGINE.makeTensor(e,t,n)}},{"../engine":"5aImO","../types":"c6lOT","../util":[["assert","F0lVc"],["assertNonNegativeIntegerDimensions","F0lVc"],["inferDtype","F0lVc"],["sizeFromShape","F0lVc"],["flatten","98aA6"],["isTypedArray","98aA6"],["toTypedArray","98aA6"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2CdJ3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DTYPE_VALUE_SIZE_MAP",()=>a);let a={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bzWJ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CompositeArrayBuffer",()=>o),s.export(r,"search",()=>l);var a=e("../util");class o{static join(e){return new o(e).slice()}constructor(e){if(this.shards=[],this.previousShardIndex=0,null==e||(e instanceof Array||(e=[e]),0===(e=e.map(e=>a.isTypedArray(e)?e.buffer:e)).length))return;this.bufferUniformSize=e[0].byteLength;let t=0;for(let r=0;r<e.length;r++){const n=e[r];r!==e.length-1&&n.byteLength!==this.bufferUniformSize&&(this.bufferUniformSize=void 0);const s=t+n.byteLength;this.shards.push({buffer:n,start:t,end:s}),t=s}0===this.shards.length&&(this.byteLength=0),this.byteLength=this.shards[this.shards.length-1].end}slice(e=0,t=this.byteLength){if(0===this.shards.length||(e=isNaN(Number(e))?0:e,t=isNaN(Number(t))?0:t,e=Math.max(0,e),(t=Math.min(this.byteLength,t))<=e))return new ArrayBuffer(0);let r=this.findShardForByte(e);if(-1===r)throw Error(`Could not find start shard for byte ${e}`);let n=new ArrayBuffer(t-e),s=new Uint8Array(n),a=0;for(let n=r;n<this.shards.length;n++){let r=this.shards[n],o=e+a-r.start,l=a,i=Math.min(t,r.end)-r.start,p=new Uint8Array(r.buffer,o,i-o);if(s.set(p,l),a+=p.length,t<r.end)break}return n}findShardForByte(e){if(0===this.shards.length||e<0||e>=this.byteLength)return -1;if(null!=this.bufferUniformSize)return this.previousShardIndex=Math.floor(e/this.bufferUniformSize),this.previousShardIndex;function t(t){return e<t.start?-1:+(e>=t.end)}if(0===t(this.shards[this.previousShardIndex]))return this.previousShardIndex;let r=l(this.shards,t);return -1===r?-1:(this.previousShardIndex=r,this.previousShardIndex)}}function l(e,t){let r=0,n=e.length;for(;r<=n;){let s=Math.floor((n-r)/2)+r,a=t(e[s]);if(0===a)return s;a<0?n=s:r=s+1}return -1}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1ONwU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"enableProdMode",()=>p),s.export(r,"enableDebugMode",()=>u),s.export(r,"disableDeprecationWarnings",()=>c),s.export(r,"deprecationWarn",()=>d),s.export(r,"disposeVariables",()=>f),s.export(r,"engine",()=>m),s.export(r,"memory",()=>h),s.export(r,"profile",()=>g),s.export(r,"tidy",()=>x),s.export(r,"dispose",()=>y),s.export(r,"keep",()=>v),s.export(r,"time",()=>b),s.export(r,"setBackend",()=>k),s.export(r,"ready",()=>_),s.export(r,"getBackend",()=>I),s.export(r,"removeBackend",()=>j),s.export(r,"findBackend",()=>w),s.export(r,"findBackendFactory",()=>T),s.export(r,"registerBackend",()=>S),s.export(r,"backend",()=>C),s.export(r,"setPlatform",()=>N);var a=e("./engine"),o=e("./environment"),l=e("./tensor"),i=e("./tensor_util");function p(){(0,o.env)().set("PROD",!0)}function u(){(0,o.env)().set("DEBUG",!0)}function c(){(0,o.env)().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function d(e){(0,o.env)().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}function f(){a.ENGINE.disposeVariables()}function m(){return a.ENGINE}function h(){return a.ENGINE.memory()}function g(e){return a.ENGINE.profile(e)}function x(e,t){return a.ENGINE.tidy(e,t)}function y(e){(0,i.getTensorsInContainer)(e).forEach(e=>e.dispose())}function v(e){return a.ENGINE.keep(e)}function b(e){return a.ENGINE.time(e)}function k(e){return a.ENGINE.setBackend(e)}function _(){return a.ENGINE.ready()}function I(){return a.ENGINE.backendName}function j(e){a.ENGINE.removeBackend(e)}function w(e){return a.ENGINE.findBackend(e)}function T(e){return a.ENGINE.findBackendFactory(e)}function S(e,t,r=1){return a.ENGINE.registerBackend(e,t,r)}function C(){return a.ENGINE.backend}function N(e,t){(0,o.env)().setPlatform(e,t)}(0,l.setDeprecationWarningFn)(d)},{"./engine":"5aImO","./environment":"lCEjS","./tensor":"izSBk","./tensor_util":"5lFsY","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"66OpC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"IORouterRegistry",()=>a),s.export(r,"registerSaveRouter",()=>o),s.export(r,"registerLoadRouter",()=>l),s.export(r,"getSaveHandlers",()=>i),s.export(r,"getLoadHandlers",()=>p);class a{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return null==a.instance&&(a.instance=new a),a.instance}static registerSaveRouter(e){a.getInstance().saveRouters.push(e)}static registerLoadRouter(e){a.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return a.getHandlers(e,"save")}static getLoadHandlers(e,t){return a.getHandlers(e,"load",t)}static getHandlers(e,t,r){let n=[];return("load"===t?a.getInstance().loadRouters:a.getInstance().saveRouters).forEach(t=>{let s=t(e,r);null!==s&&n.push(s)}),n}}let o=e=>a.registerSaveRouter(e),l=e=>a.registerLoadRouter(e),i=e=>a.getSaveHandlers(e),p=(e,t)=>a.getLoadHandlers(e,t)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"799bQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"purgeLocalStorageArtifacts",()=>d),s.export(r,"BrowserLocalStorage",()=>g),s.export(r,"localStorageRouter",()=>x),s.export(r,"browserLocalStorage",()=>y),s.export(r,"BrowserLocalStorageManager",()=>v),e("../flags");var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),p=e("./router_registry");let u="tensorflowjs_models",c="info";function d(){if(!(0,a.env)().getBool("IS_BROWSER")||"u"<typeof window||void 0===window.localStorage)throw Error("purgeLocalStorageModels() cannot proceed because local storage is unavailable in the current environment.");let e=window.localStorage,t=[];for(let r=0;r<e.length;++r){let n=e.key(r),s=u+"/";if(n.startsWith(s)&&n.length>s.length){e.removeItem(n);let r=h(n);-1===t.indexOf(r)&&t.push(r)}}return t}function f(e){return{info:[u,e,c].join("/"),topology:[u,e,"model_topology"].join("/"),weightSpecs:[u,e,"weight_specs"].join("/"),weightData:[u,e,"weight_data"].join("/"),modelMetadata:[u,e,"model_metadata"].join("/")}}function m(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function h(e){let t=e.split("/");if(t.length<3)throw Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join("/")}class g{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER")||"u"<typeof window||void 0===window.localStorage)throw Error("The current environment does not support local storage.");if(this.LS=window.localStorage,null==e||!e)throw Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=f(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),r=JSON.stringify(e.weightSpecs),n=(0,l.getModelArtifactsInfoForJSON)(e),s=i.CompositeArrayBuffer.join(e.weightData);try{this.LS.setItem(this.keys.info,JSON.stringify(n)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,r),this.LS.setItem(this.keys.weightData,(0,l.arrayBufferToBase64String)(s));let a={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:null!=e.signature?e.signature:void 0,userDefinedMetadata:null!=e.userDefinedMetadata?e.userDefinedMetadata:void 0,modelInitializer:null!=e.modelInitializer?e.modelInitializer:void 0,initializerSignature:null!=e.initializerSignature?e.initializerSignature:void 0,trainingConfig:null!=e.trainingConfig?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(a)),{modelArtifactsInfo:n}}catch(e){throw m(this.keys),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(null==e)throw Error(`In local storage, there is no model with name '${this.modelPath}'`);if("JSON"!==e.modelTopologyType)throw Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},r=JSON.parse(this.LS.getItem(this.keys.topology));if(null==r)throw Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=r;let n=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(null==n)throw 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(null!=s){let e=JSON.parse(s);t.format=e.format,t.generatedBy=e.generatedBy,t.convertedBy=e.convertedBy,null!=e.signature&&(t.signature=e.signature),null!=e.userDefinedMetadata&&(t.userDefinedMetadata=e.userDefinedMetadata),null!=e.modelInitializer&&(t.modelInitializer=e.modelInitializer),null!=e.initializerSignature&&(t.initializerSignature=e.initializerSignature),null!=e.trainingConfig&&(t.trainingConfig=e.trainingConfig)}let a=this.LS.getItem(this.keys.weightData);if(null==a)throw Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=(0,l.base64StringToArrayBuffer)(a),t}}g.URL_SCHEME="localstorage://";let x=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(g.URL_SCHEME)?y(e.slice(g.URL_SCHEME.length)):null;function y(e){return new g(e)}p.IORouterRegistry.registerSaveRouter(x),p.IORouterRegistry.registerLoadRouter(x);class v{constructor(){(0,o.assert)((0,a.env)().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),(0,o.assert)("u"<typeof window||void 0!==window.localStorage,()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=u+"/",r="/"+c;for(let n=0;n<this.LS.length;++n){let s=this.LS.key(n);s.startsWith(t)&&s.endsWith(r)&&(e[h(s)]=JSON.parse(this.LS.getItem(s)))}return e}async removeModel(e){var t;let r=f(e=(t=e).startsWith(g.URL_SCHEME)?t.slice(g.URL_SCHEME.length):t);if(null==this.LS.getItem(r.info))throw Error(`Cannot find model at path '${e}'`);let n=JSON.parse(this.LS.getItem(r.info));return m(r),n}}},{"../flags":"44Dje","../environment":"lCEjS","../util":"F0lVc","./io_utils":"6yZPf","./composite_array_buffer":"bzWJ0","./router_registry":"66OpC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],rDgCT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ModelStoreManagerRegistry",()=>l),s.export(r,"moveModel",()=>f),s.export(r,"copyModel",()=>d),s.export(r,"removeModel",()=>c),s.export(r,"listModels",()=>u);var a=e("../util"),o=e("./router_registry");class l{constructor(){this.managers={}}static getInstance(){return null==l.instance&&(l.instance=new l),l.instance}static registerManager(e,t){(0,a.assert)(null!=e,()=>"scheme must not be undefined or null."),e.endsWith("://")&&(e=e.slice(0,e.indexOf("://"))),(0,a.assert)(e.length>0,()=>"scheme must not be an empty string.");let r=l.getInstance();(0,a.assert)(null==r.managers[e],()=>`A model store manager is already registered for scheme '${e}'.`),r.managers[e]=t}static getManager(e){let t=l.getInstance().managers[e];if(null==t)throw Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(l.getInstance().managers)}}function i(e){if(-1===e.indexOf("://"))throw Error(`The url string provided does not contain a scheme. Supported schemes are: ${l.getSchemes().join(",")}`);return{scheme:e.split("://")[0],path:e.split("://")[1]}}async function p(e,t,r=!1){(0,a.assert)(e!==t,()=>`Old path and new path are the same: '${e}'`);let n=o.IORouterRegistry.getLoadHandlers(e);(0,a.assert)(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),(0,a.assert)(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);let s=n[0],u=o.IORouterRegistry.getSaveHandlers(t);(0,a.assert)(u.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),(0,a.assert)(u.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let c=u[0],d=i(e).scheme,f=i(e).path,m=d===i(e).scheme,h=await s.load();r&&m&&await l.getManager(d).removeModel(f);let g=await c.save(h);return r&&!m&&await l.getManager(d).removeModel(f),g.modelArtifactsInfo}async function u(){let e=l.getSchemes(),t={};for(let r of e){let e=await l.getManager(r).listModels();for(let n in e)t[r+"://"+n]=e[n]}return t}async function c(e){let t=i(e);return l.getManager(t.scheme).removeModel(t.path)}async function d(e,t){return p(e,t,!1)}async function f(e,t){return p(e,t,!0)}},{"../util":"F0lVc","./router_registry":"66OpC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5A4CI":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"getNodeFetch",()=>l),a.export(r,"resetSystemFetch",()=>i),a.export(r,"setSystemFetch",()=>p),a.export(r,"getSystemFetch",()=>u),a.export(r,"PlatformNode",()=>c);var o=e("../environment");let l={importFetch:()=>e("dfcdb939bb56fbb8")};function i(){s=null}function p(e){s=e}function u(){return s}class c{constructor(){this.util=e("3818a9dc927c4605"),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return null!=(0,o.env)().global.fetch?(0,o.env)().global.fetch(e,t):(null==s&&(s=l.importFetch()),s(e,t))}now(){let e=process.hrtime();return 1e3*e[0]+e[1]/1e6}encode(e,t){if("utf-8"!==t&&"utf8"!==t)throw Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return 0===e.length?"":new this.util.TextDecoder(t).decode(e)}isTypedArray(e){return this.util.types.isFloat32Array(e)||this.util.types.isInt32Array(e)||this.util.types.isUint8Array(e)||this.util.types.isUint8ClampedArray(e)}}(0,o.env)().get("IS_NODE")&&!(0,o.env)().get("IS_BROWSER")&&(0,o.env)().setPlatform("node",new c)},{"../environment":"lCEjS",dfcdb939bb56fbb8:"a3i1H","3818a9dc927c4605":"a3i1H","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],a3i1H:[function(e,t,r,n){},{}],avZau:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"buffer",()=>l);var a=e("../tensor"),o=e("../util");function l(e,t="float32",r){return t=t||"float32",o.assertNonNegativeIntegerDimensions(e),new(0,a.TensorBuffer)(e,t,r)}},{"../tensor":"izSBk","../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],Qs5mF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({cast_:function(e,t){let r=(0,l.convertToTensor)(e,"x","cast");if(!i.isValidDtype(t))throw Error(`Failed to cast to unknown dtype ${t}`);if("string"===t&&"string"!==r.dtype||"string"!==t&&"string"===r.dtype)throw Error("Only strings can be casted to strings");return a.ENGINE.runKernel(o.Cast,{x:r},{dtype:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jyVCU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clone",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({clone_:function(e){let t=(0,l.convertToTensor)(e,"x","clone","string_or_numeric");return a.ENGINE.runKernel(o.Identity,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6OSja":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t=!1){console.log(e.toString(t))}s.defineInteropFlag(r),s.export(r,"print",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iq2z6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"registerOptimizers",()=>m);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),p=e("./momentum_optimizer"),u=e("./rmsprop_optimizer"),c=e("./sgd_optimizer"),d=e("../serialization");let f=[a.AdadeltaOptimizer,o.AdagradOptimizer,l.AdamOptimizer,i.AdamaxOptimizer,p.MomentumOptimizer,u.RMSPropOptimizer,c.SGDOptimizer];function m(){for(let e of f)(0,d.registerClass)(e)}},{"./adadelta_optimizer":"3D10c","./adagrad_optimizer":"dg305","./adam_optimizer":"1yuc8","./adamax_optimizer":"9WtYe","./momentum_optimizer":"dT4iR","./rmsprop_optimizer":"9RVk0","./sgd_optimizer":"jvslj","../serialization":"dXiKG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3D10c":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),p=e("../ops/mul"),u=e("../ops/ops"),c=e("../ops/square"),d=e("../ops/zeros_like"),f=e("./optimizer");class m extends f.Optimizer{static get className(){return"Adadelta"}constructor(e,t,r=null){super(),this.learningRate=e,this.rho=t,this.epsilon=r,this.accumulatedGrads=[],this.accumulatedUpdates=[],null==r&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accum_grad`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))}),null==this.accumulatedUpdates[r]&&(this.accumulatedUpdates[r]={originalName:`${t}/accum_var`,variable:(0,o.tidy)(()=>(0,d.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable,m=this.accumulatedUpdates[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,p.mul)(f,this.rho),(0,p.mul)((0,c.square)(s),1-this.rho)),t=(0,p.mul)((0,i.div)((0,u.sqrt)((0,l.add)(m,this.epsilon)),(0,u.sqrt)((0,l.add)(f,this.epsilon))),s),r=(0,l.add)((0,p.mul)(m,this.rho),(0,p.mul)((0,c.square)(t),1-this.rho));f.assign(e),m.assign(r);let a=(0,l.add)((0,p.mul)(t,-this.learningRate),n);n.assign(a)})}),this.incrementIterations()}dispose(){null!=this.accumulatedUpdates&&((0,o.dispose)(this.accumulatedGrads.map(e=>e.variable)),(0,o.dispose)(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){let t=(e=await this.extractIterations(e)).length/2;this.accumulatedGrads=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedUpdates=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/add":"6AYbH","../ops/div":"j6hSn","../ops/mul":"6u9Cs","../ops/ops":"DBh2a","../ops/square":"iewSj","../ops/zeros_like":"gLLzC","./optimizer":"dw49G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6AYbH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"add",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({add_:function(e,t){let r=(0,i.convertToTensor)(e,"a","add"),n=(0,i.convertToTensor)(t,"b","add");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Add,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j6hSn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"div",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./floorDiv");let u=(0,e("./operation").op)({div_:function(e,t){let r=(0,i.convertToTensor)(e,"a","div"),n=(0,i.convertToTensor)(t,"b","div");if([r,n]=(0,l.makeTypesMatch)(r,n),"int32"===r.dtype&&"int32"===n.dtype)return(0,p.floorDiv)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.RealDiv,s,{})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./floorDiv":"2rEA7","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2rEA7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({floorDiv_:function(e,t){let r=(0,i.convertToTensor)(e,"a","floorDiv"),n=(0,i.convertToTensor)(t,"b","floorDiv");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.FloorDiv,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6u9Cs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mul",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({mul_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mul"),n=(0,i.convertToTensor)(t,"b","mul");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Multiply,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],DBh2a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","sqrt","float32");return a.ENGINE.runKernel(o.Sqrt,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iewSj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>l);var a=e("../engine"),o=e("../tensor_util_env");let l=(0,e("./operation").op)({square_:function(e){let t=(0,o.convertToTensor)(e,"x","square");return a.ENGINE.runKernel("Square",{x:t},{})}})},{"../engine":"5aImO","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gLLzC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({zerosLike_:function(e){let t=(0,l.convertToTensor)(e,"x","zerosLike");return a.ENGINE.runKernel(o.ZerosLike,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dw49G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Optimizer",()=>p);var a=e("../globals"),o=e("../gradients"),l=e("../ops/ops"),i=e("../serialization");class p extends i.Serializable{minimize(e,t=!1,r){let{value:n,grads:s}=this.computeGradients(e,r);if(null!=r){let e=r.map(e=>({name:e.name,tensor:s[e.name]}));this.applyGradients(e)}else this.applyGradients(s);return((0,a.dispose)(s),t)?n:(n.dispose(),null)}get iterations(){return null==this.iterations_&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return(0,o.variableGrads)(e,t)}dispose(){null!=this.iterations_&&(0,a.dispose)(this.iterations_)}async saveIterations(){return null==this.iterations_&&(this.iterations_=0),{name:"iter",tensor:(0,l.scalar)(this.iterations_,"int32")}}async getWeights(){throw Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw 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(p,Symbol.hasInstance,{value:e=>null!=e.minimize&&null!=e.computeGradients&&null!=e.applyGradients})},{"../globals":"1ONwU","../gradients":"bUS3C","../ops/ops":"fhZsH","../serialization":"dXiKG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bUS3C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"customGrad",()=>m),s.export(r,"variableGrads",()=>f),s.export(r,"valueAndGrad",()=>c),s.export(r,"valueAndGrads",()=>d),s.export(r,"grad",()=>p),s.export(r,"grads",()=>u);var a=e("./engine"),o=e("./tensor"),l=e("./tensor_util_env"),i=e("./util");function p(e){return i.assert(i.isFunction(e),()=>"The f passed in grad(f) must be a function"),(t,r)=>{let n=(0,l.convertToTensor)(t,"x","tf.grad","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grad"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(n),[n],s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),h(r),r[0]})}}function u(e){return i.assert(i.isFunction(e),()=>"The f passed in grads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=(0,l.convertToTensorArray)(t,"args","tf.grads","string_or_numeric"),s=null!=r?(0,l.convertToTensor)(r,"dy","tf.grads"):null;return a.ENGINE.tidy(()=>{let{value:t,grads:r}=a.ENGINE.gradients(()=>e(...n),n,s);return null!=s&&i.assertShapesMatch(t.shape,s.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),h(r),r})}}function c(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,r)=>{i.assert(t instanceof o.Tensor,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:s}=a.ENGINE.gradients(()=>e(t),[t],r);return h(n),{grad:n[0],value:s}}}function d(e){return i.assert(i.isFunction(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,r)=>{i.assert(Array.isArray(t)&&t.every(e=>e instanceof o.Tensor),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),i.assert(null==r||r instanceof o.Tensor,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=a.ENGINE.gradients(()=>e(...t),t,r);return null!=r&&i.assertShapesMatch(n.value.shape,r.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),h(n.grads),n}}function f(e,t){i.assert(i.isFunction(e),()=>"The f passed in variableGrads(f) must be a function"),i.assert(null==t||Array.isArray(t)&&t.every(e=>e instanceof o.Variable),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let r=null!=t;if(!r)for(let e in t=[],a.ENGINE.registeredVariables)t.push(a.ENGINE.registeredVariables[e]);let n=r?t.filter(e=>!e.trainable):null,s=t.length;t=t.filter(e=>e.trainable),i.assert(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${s} variables is trainable.`);let{value:l,grads:p}=a.ENGINE.gradients(e,t,null,!0);i.assert(p.some(e=>null!=e),()=>"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()."),i.assert(0===l.rank,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${l.rank} tensor`);let u={};return t.forEach((e,t)=>{null!=p[t]&&(u[e.name]=p[t])}),null!=n&&n.forEach(e=>u[e.name]=null),{value:l,grads:u}}function m(e){return a.ENGINE.customGrad(e)}function h(e){if(e.filter(e=>null==e).length>0)throw 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.`)}},{"./engine":"5aImO","./tensor":"izSBk","./tensor_util_env":"feaHs","./util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fhZsH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scalar",()=>l);var a=e("../util"),o=e("./tensor_ops_util");function l(e,t){if(((0,a.isTypedArray)(e)&&"string"!==t||Array.isArray(e))&&"complex64"!==t)throw Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if("string"===t&&(0,a.isTypedArray)(e)&&!(e instanceof Uint8Array))throw Error("When making a scalar from encoded string, the value must be `Uint8Array`.");return(0,o.makeTensor)(e,[],[],t)}},{"../util":"98aA6","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dXiKG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Serializable",()=>i),s.export(r,"SerializationMap",()=>p),s.export(r,"registerClass",()=>u),s.export(r,"getRegisteredName",()=>c);var a=e("./util");let o=new Map,l=new Map;class i{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class p{constructor(){this.classNameMap={}}static getMap(){return null==p.instance&&(p.instance=new p),p.instance}static register(e){p.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function u(e,t,r){(0,a.assert)(null!=e.className,()=>"Class being registered does not have the static className property defined."),(0,a.assert)("string"==typeof e.className,()=>"className is required to be a string, but got type "+typeof e.className),(0,a.assert)(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),void 0===t&&(t="Custom"),void 0===r&&(r=e.className);let n=t+">"+r;return p.register(e),o.set(n,e),l.set(e,n),e}function c(e){return l.has(e)?l.get(e):e.className}},{"./util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dg305:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdagradOptimizer",()=>m);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),p=e("../ops/fill"),u=e("../ops/mul"),c=e("../ops/sqrt"),d=e("../ops/square"),f=e("./optimizer");class m extends f.Optimizer{static get className(){return"Adagrad"}constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedGrads[r]&&(this.accumulatedGrads[r]={originalName:`${t}/accumulator`,variable:(0,o.tidy)(()=>(0,p.fill)(n.shape,this.initialAccumulatorValue).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let f=this.accumulatedGrads[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)(f,(0,d.square)(s));f.assign(e);let t=(0,l.add)((0,u.mul)((0,i.div)(s,(0,c.sqrt)((0,l.add)(e,a.ENGINE.backend.epsilon()))),-this.learningRate),n);n.assign(t)})}),this.incrementIterations()}dispose(){null!=this.accumulatedGrads&&(0,o.dispose)(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),this.accumulatedGrads=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/add":"6AYbH","../ops/div":"j6hSn","../ops/fill":"5rPaY","../ops/mul":"6u9Cs","../ops/sqrt":"DBh2a","../ops/square":"iewSj","./optimizer":"dw49G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5rPaY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("../util_base");function p(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(e),r=r||(0,l.inferDtype)(t);let n={shape:e,value:t,dtype:r};return a.ENGINE.runKernel(o.Fill,{},n)}},{"../engine":"5aImO","../kernel_names":"bvyjS","../util":"F0lVc","../util_base":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1yuc8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamOptimizer",()=>x);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),p=e("../ops/mul"),u=e("../ops/pow"),c=e("../ops/scalar"),d=e("../ops/sqrt"),f=e("../ops/square"),m=e("../ops/sub"),h=e("../ops/zeros_like"),g=e("./optimizer");class x extends g.Optimizer{static get className(){return"Adam"}constructor(e,t,r,n=null){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],(0,o.tidy)(()=>{this.accBeta1=(0,c.scalar)(t).variable(),this.accBeta2=(0,c.scalar)(r).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,m.sub)(1,this.accBeta1),n=(0,m.sub)(1,this.accBeta2);t.forEach((t,s)=>{let u=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,o.tidy)(()=>(0,h.zerosLike)(u).variable(!1))}),null==this.accumulatedSecondMoment[s]&&(this.accumulatedSecondMoment[s]={originalName:`${t}/v`,variable:(0,o.tidy)(()=>(0,h.zerosLike)(u).variable(!1))});let c=Array.isArray(e)?e[s].tensor:e[t];if(null==c)return;let m=this.accumulatedFirstMoment[s].variable,g=this.accumulatedSecondMoment[s].variable,x=(0,l.add)((0,p.mul)(m,this.beta1),(0,p.mul)(c,1-this.beta1)),y=(0,l.add)((0,p.mul)(g,this.beta2),(0,p.mul)((0,f.square)(c),1-this.beta2)),v=(0,i.div)(x,r),b=(0,i.div)(y,n);m.assign(x),g.assign(y);let k=(0,l.add)((0,p.mul)((0,i.div)(v,(0,l.add)((0,d.sqrt)(b),this.epsilon)),-this.learningRate),u);u.assign(k)}),this.accBeta1.assign((0,p.mul)(this.accBeta1,this.beta1)),this.accBeta2.assign((0,p.mul)(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedSecondMoment&&(0,o.dispose)(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e),(0,o.tidy)(()=>{this.accBeta1.assign((0,u.pow)(this.beta1,this.iterations_+1)),this.accBeta2.assign((0,u.pow)(this.beta2,this.iterations_+1))});let t=e.length/2;this.accumulatedFirstMoment=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedSecondMoment=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}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)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/add":"6AYbH","../ops/div":"j6hSn","../ops/mul":"6u9Cs","../ops/pow":"lnrqj","../ops/scalar":"fhZsH","../ops/sqrt":"DBh2a","../ops/square":"iewSj","../ops/sub":"1laxX","../ops/zeros_like":"gLLzC","./optimizer":"dw49G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lnrqj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pow",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({pow_:function(e,t){let r=(0,i.convertToTensor)(e,"base","pow"),n=(0,i.convertToTensor)(t,"exp","pow");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Pow,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1laxX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({sub_:function(e,t){let r=(0,i.convertToTensor)(e,"a","sub"),n=(0,i.convertToTensor)(t,"b","sub");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Sub,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9WtYe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdamaxOptimizer",()=>g);var a=e("../engine"),o=e("../globals"),l=e("../ops/abs"),i=e("../ops/add"),p=e("../ops/div"),u=e("../ops/maximum"),c=e("../ops/mul"),d=e("../ops/scalar"),f=e("../ops/sub"),m=e("../ops/zeros_like"),h=e("./optimizer");class g extends h.Optimizer{static get className(){return"Adamax"}constructor(e,t,r,n=null,s=0){super(),this.learningRate=e,this.beta1=t,this.beta2=r,this.epsilon=n,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],(0,o.tidy)(()=>{this.iteration=(0,d.scalar)(0).variable(),this.accBeta1=(0,d.scalar)(t).variable()}),null==n&&(this.epsilon=a.ENGINE.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(e=>e.name):Object.keys(e);(0,o.tidy)(()=>{let r=(0,f.sub)(1,this.accBeta1),n=(0,p.div)(-this.learningRate,(0,i.add)((0,c.mul)(this.iteration,this.decay),1));t.forEach((t,s)=>{let o=a.ENGINE.registeredVariables[t];null==this.accumulatedFirstMoment[s]&&(this.accumulatedFirstMoment[s]={originalName:`${t}/m`,variable:(0,m.zerosLike)(o).variable(!1)}),null==this.accumulatedWeightedInfNorm[s]&&(this.accumulatedWeightedInfNorm[s]={originalName:`${t}/v`,variable:(0,m.zerosLike)(o).variable(!1)});let d=Array.isArray(e)?e[s].tensor:e[t];if(null==d)return;let f=this.accumulatedFirstMoment[s].variable,h=this.accumulatedWeightedInfNorm[s].variable,g=(0,i.add)((0,c.mul)(f,this.beta1),(0,c.mul)(d,1-this.beta1)),x=(0,c.mul)(h,this.beta2),y=(0,l.abs)(d),v=(0,u.maximum)(x,y);f.assign(g),h.assign(v);let b=(0,i.add)((0,c.mul)((0,p.div)(n,r),(0,p.div)(g,(0,i.add)(v,this.epsilon))),o);o.assign(b)}),this.iteration.assign((0,i.add)(this.iteration,1)),this.accBeta1.assign((0,c.mul)(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),null!=this.accumulatedFirstMoment&&(0,o.dispose)(this.accumulatedFirstMoment.map(e=>e.variable)),null!=this.accumulatedWeightedInfNorm&&(0,o.dispose)(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw 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)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/abs":"khyDh","../ops/add":"6AYbH","../ops/div":"j6hSn","../ops/maximum":"cIfAc","../ops/mul":"6u9Cs","../ops/scalar":"fhZsH","../ops/sub":"1laxX","../ops/zeros_like":"gLLzC","./optimizer":"dw49G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],khyDh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({abs_:function(e){let t=(0,l.convertToTensor)(e,"x","abs");return"complex64"===t.dtype?a.ENGINE.runKernel(o.ComplexAbs,{x:t}):a.ENGINE.runKernel(o.Abs,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cIfAc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util"),u=e("./cast");let c=(0,e("./operation").op)({maximum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","maximum"),n=(0,i.convertToTensor)(t,"b","maximum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,u.cast)(r,"int32"),n=(0,u.cast)(n,"int32")),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Maximum,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./cast":"Qs5mF","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eciNq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){let r=e.length,n=[];for(let s=0;s<r;s++){let a=r-1-s,o=e[a]||1;(t[t.length-1-s]||1)>1&&1===o&&n.unshift(a)}return n}function o(e,t){let r=[];for(let n=0;n<t.length;n++){let s=e[e.length-n-1],a=t.length-n-1,o=t[a];(null==s||1===s&&o>1)&&r.unshift(a)}return r}function l(e,t){let r=Math.max(e.length,t.length),n=Array(r);for(let s=0;s<r;s++){let a=e[e.length-s-1];null==a&&(a=1);let o=t[t.length-s-1];if(null==o&&(o=1),1===a)n[r-s-1]=o;else if(1===o)n[r-s-1]=a;else if(a!==o)throw Error(`Operands could not be broadcast together with shapes ${e} and ${t}.`);else n[r-s-1]=a}return n}s.defineInteropFlag(r),s.export(r,"getBroadcastDims",()=>a),s.export(r,"getReductionAxes",()=>o),s.export(r,"assertAndGetBroadcastShape",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dT4iR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MomentumOptimizer",()=>d);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),p=e("../ops/scalar"),u=e("../ops/zeros_like"),c=e("./sgd_optimizer");class d extends c.SGDOptimizer{static get className(){return"Momentum"}constructor(e,t,r=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=r,this.accumulations=[],this.m=(0,p.scalar)(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulations[r]&&(this.accumulations[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,u.zerosLike)(n).variable(!1))});let s=this.accumulations[r].variable,p=Array.isArray(e)?e[r].tensor:e[t];null!=p&&(0,o.tidy)(()=>{let e,t=(0,l.add)((0,i.mul)(this.m,s),p);e=this.useNesterov?(0,l.add)((0,i.mul)(this.c,(0,l.add)(p,(0,i.mul)(t,this.m))),n):(0,l.add)((0,i.mul)(this.c,t),n),s.assign(t),n.assign(e)})}),this.incrementIterations()}dispose(){this.m.dispose(),null!=this.accumulations&&(0,o.dispose)(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),this.accumulations=e.map(e=>({originalName:e.name,variable:e.tensor.variable(!1)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/add":"6AYbH","../ops/mul":"6u9Cs","../ops/scalar":"fhZsH","../ops/zeros_like":"gLLzC","./sgd_optimizer":"jvslj","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jvslj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SGDOptimizer",()=>c);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/mul"),p=e("../ops/scalar"),u=e("./optimizer");class c extends u.Optimizer{static get className(){return"SGD"}constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=Array.isArray(e)?e[r].tensor:e[t];if(null==n)return;let s=a.ENGINE.registeredVariables[t];(0,o.tidy)(()=>{let e=(0,l.add)((0,i.mul)(this.c,n),s);s.assign(e)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=(0,o.keep)((0,p.scalar)(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(0!==(e=await this.extractIterations(e)).length)throw Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/add":"6AYbH","../ops/mul":"6u9Cs","../ops/scalar":"fhZsH","./optimizer":"dw49G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9RVk0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RMSPropOptimizer",()=>h);var a=e("../engine"),o=e("../globals"),l=e("../ops/add"),i=e("../ops/div"),p=e("../ops/mul"),u=e("../ops/sqrt"),c=e("../ops/square"),d=e("../ops/sub"),f=e("../ops/zeros_like"),m=e("./optimizer");class h extends m.Optimizer{static get className(){return"RMSProp"}constructor(e,t=.9,r=0,n=null,s=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=r,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,null==n&&(this.epsilon=a.ENGINE.backend.epsilon()),null==e)throw Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(e=>e.name):Object.keys(e)).forEach((t,r)=>{let n=a.ENGINE.registeredVariables[t];null==this.accumulatedMeanSquares[r]&&(this.accumulatedMeanSquares[r]={originalName:`${t}/rms`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMoments[r]&&(this.accumulatedMoments[r]={originalName:`${t}/momentum`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))}),null==this.accumulatedMeanGrads[r]&&this.centered&&(this.accumulatedMeanGrads[r]={originalName:`${t}/mg`,variable:(0,o.tidy)(()=>(0,f.zerosLike)(n).variable(!1))});let s=Array.isArray(e)?e[r].tensor:e[t];if(null==s)return;let m=this.accumulatedMeanSquares[r].variable,h=this.accumulatedMoments[r].variable;(0,o.tidy)(()=>{let e=(0,l.add)((0,p.mul)(m,this.decay),(0,p.mul)((0,c.square)(s),1-this.decay));if(this.centered){let t=this.accumulatedMeanGrads[r].variable,a=(0,l.add)((0,p.mul)(t,this.decay),(0,p.mul)(s,1-this.decay)),o=(0,i.div)((0,p.mul)(s,this.learningRate),(0,u.sqrt)((0,d.sub)(e,(0,l.add)((0,c.square)(a),this.epsilon)))),f=(0,l.add)((0,p.mul)(h,this.momentum),o);m.assign(e),t.assign(a),h.assign(f);let g=(0,d.sub)(n,f);n.assign(g)}else{let e=(0,l.add)((0,p.mul)(m,this.decay),(0,p.mul)((0,c.square)(s),1-this.decay)),t=(0,l.add)((0,p.mul)(h,this.momentum),(0,i.div)((0,p.mul)(s,this.learningRate),(0,u.sqrt)((0,l.add)(e,this.epsilon))));m.assign(e),h.assign(t);let r=(0,d.sub)(n,t);n.assign(r)}})}),this.incrementIterations()}dispose(){null!=this.accumulatedMeanSquares&&(0,o.dispose)(this.accumulatedMeanSquares.map(e=>e.variable)),null!=this.accumulatedMeanGrads&&this.centered&&(0,o.dispose)(this.accumulatedMeanGrads.map(e=>e.variable)),null!=this.accumulatedMoments&&(0,o.dispose)(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(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2;this.accumulatedMeanSquares=e.slice(0,t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.accumulatedMoments=e.slice(t,2*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})),this.centered&&(this.accumulatedMeanGrads=e.slice(2*t,3*t).map(e=>({originalName:e.name,variable:e.tensor.variable(!1)})))}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)}}},{"../engine":"5aImO","../globals":"1ONwU","../ops/add":"6AYbH","../ops/div":"j6hSn","../ops/mul":"6u9Cs","../ops/sqrt":"DBh2a","../ops/square":"iewSj","../ops/sub":"1laxX","../ops/zeros_like":"gLLzC","./optimizer":"dw49G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6xSpB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AdadeltaOptimizer",()=>x.AdadeltaOptimizer),s.export(r,"AdagradOptimizer",()=>y.AdagradOptimizer),s.export(r,"AdamOptimizer",()=>v.AdamOptimizer),s.export(r,"AdamaxOptimizer",()=>b.AdamaxOptimizer),s.export(r,"MomentumOptimizer",()=>k.MomentumOptimizer),s.export(r,"Optimizer",()=>_.Optimizer),s.export(r,"OptimizerConstructors",()=>I.OptimizerConstructors),s.export(r,"RMSPropOptimizer",()=>j.RMSPropOptimizer),s.export(r,"SGDOptimizer",()=>w.SGDOptimizer),s.export(r,"Tensor",()=>T.Tensor),s.export(r,"TensorBuffer",()=>T.TensorBuffer),s.export(r,"Variable",()=>T.Variable),s.export(r,"Rank",()=>S.Rank),s.export(r,"sumOutType",()=>S.sumOutType),s.export(r,"upcastType",()=>S.upcastType),s.export(r,"Reduction",()=>N.Reduction),s.export(r,"customGrad",()=>R.customGrad),s.export(r,"grad",()=>R.grad),s.export(r,"grads",()=>R.grads),s.export(r,"valueAndGrad",()=>R.valueAndGrad),s.export(r,"valueAndGrads",()=>R.valueAndGrads),s.export(r,"variableGrads",()=>R.variableGrads),s.export(r,"Environment",()=>P.Environment),s.export(r,"env",()=>P.env),s.export(r,"ENV",()=>P.ENV),s.export(r,"nextFrame",()=>$.nextFrame),s.export(r,"KernelBackend",()=>B.KernelBackend),s.export(r,"DataStorage",()=>B.DataStorage),s.export(r,"version_core",()=>g.version),s.export(r,"browser",()=>i),s.export(r,"io",()=>a),s.export(r,"math",()=>o),s.export(r,"serialization",()=>d),s.export(r,"test_util",()=>m),s.export(r,"util",()=>h),s.export(r,"backend_util",()=>O),s.export(r,"broadcast_util",()=>l),s.export(r,"tensor_util",()=>f),s.export(r,"slice_util",()=>c),s.export(r,"gather_util",()=>p),s.export(r,"scatter_util",()=>u),s.export(r,"device_util",()=>D),s.export(r,"kernel_impls",()=>M);var a=e("./io/io"),o=e("./math"),l=e("./ops/broadcast_util"),i=e("./ops/browser"),p=e("./ops/gather_nd_util"),u=e("./ops/scatter_nd_util"),c=e("./ops/slice_util"),d=e("./serialization"),f=e("./tensor_util"),m=e("./test_util"),h=e("./util"),g=e("./version"),x=e("./optimizers/adadelta_optimizer"),y=e("./optimizers/adagrad_optimizer"),v=e("./optimizers/adam_optimizer"),b=e("./optimizers/adamax_optimizer"),k=e("./optimizers/momentum_optimizer"),_=e("./optimizers/optimizer"),I=e("./optimizers/optimizer_constructors"),j=e("./optimizers/rmsprop_optimizer"),w=e("./optimizers/sgd_optimizer"),T=e("./tensor"),S=e("./types"),C=e("./ops/ops");s.exportAll(C,r);var N=e("./ops/loss_ops_utils"),E=e("./train");s.exportAll(E,r);var F=e("./globals");s.exportAll(F,r);var A=e("./kernel_registry");s.exportAll(A,r);var R=e("./gradients"),P=e("./environment"),$=e("./browser_util"),O=e("./backends/backend_util"),D=e("./device_util"),M=e("./backends/kernel_impls"),B=e("./backends/backend"),G=e("./kernel_names");s.exportAll(G,r)},{"./io/io":"41I0l","./math":"5BOqa","./ops/broadcast_util":"eciNq","./ops/browser":"6oU9C","./ops/gather_nd_util":"fIneF","./ops/scatter_nd_util":"8P3GB","./ops/slice_util":"1Tyqd","./serialization":"dXiKG","./tensor_util":"5lFsY","./test_util":"j33yG","./util":"98aA6","./version":"91pS6","./optimizers/adadelta_optimizer":"3D10c","./optimizers/adagrad_optimizer":"dg305","./optimizers/adam_optimizer":"1yuc8","./optimizers/adamax_optimizer":"9WtYe","./optimizers/momentum_optimizer":"dT4iR","./optimizers/optimizer":"dw49G","./optimizers/optimizer_constructors":"3RZnR","./optimizers/rmsprop_optimizer":"9RVk0","./optimizers/sgd_optimizer":"jvslj","./tensor":"izSBk","./types":"c6lOT","./ops/ops":"4pdlU","./ops/loss_ops_utils":"4QGTL","./train":"dl3Zw","./globals":"1ONwU","./kernel_registry":"eNDWR","./gradients":"bUS3C","./environment":"lCEjS","./browser_util":"dENN7","./backends/backend_util":"kzLNA","./device_util":"bIfnh","./backends/kernel_impls":"3ahWG","./backends/backend":"c432N","./kernel_names":"bvyjS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"41I0l":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"copyModel",()=>d.copyModel),s.export(r,"listModels",()=>d.listModels),s.export(r,"moveModel",()=>d.moveModel),s.export(r,"removeModel",()=>d.removeModel),s.export(r,"browserFiles",()=>a.browserFiles),s.export(r,"browserHTTPRequest",()=>o.browserHTTPRequest),s.export(r,"CompositeArrayBuffer",()=>c.CompositeArrayBuffer),s.export(r,"concatenateArrayBuffers",()=>l.concatenateArrayBuffers),s.export(r,"decodeWeights",()=>l.decodeWeights),s.export(r,"decodeWeightsStream",()=>l.decodeWeightsStream),s.export(r,"encodeWeights",()=>l.encodeWeights),s.export(r,"fromMemory",()=>i.fromMemory),s.export(r,"fromMemorySync",()=>i.fromMemorySync),s.export(r,"getLoadHandlers",()=>p.getLoadHandlers),s.export(r,"getModelArtifactsForJSON",()=>l.getModelArtifactsForJSON),s.export(r,"getModelArtifactsForJSONSync",()=>l.getModelArtifactsForJSONSync),s.export(r,"getModelArtifactsInfoForJSON",()=>l.getModelArtifactsInfoForJSON),s.export(r,"getSaveHandlers",()=>p.getSaveHandlers),s.export(r,"getWeightSpecs",()=>l.getWeightSpecs),s.export(r,"http",()=>o.http),s.export(r,"isHTTPScheme",()=>o.isHTTPScheme),s.export(r,"loadWeights",()=>u.loadWeights),s.export(r,"registerLoadRouter",()=>p.registerLoadRouter),s.export(r,"registerSaveRouter",()=>p.registerSaveRouter),s.export(r,"weightsLoaderFactory",()=>u.weightsLoaderFactory),s.export(r,"withSaveHandler",()=>i.withSaveHandler),s.export(r,"withSaveHandlerSync",()=>i.withSaveHandlerSync),e("./indexed_db"),e("./local_storage");var a=e("./browser_files"),o=e("./http"),l=e("./io_utils"),i=e("./passthrough"),p=e("./router_registry"),u=e("./weights_loader"),c=e("./composite_array_buffer"),d=e("./model_management")},{"./indexed_db":"fCIAk","./local_storage":"799bQ","./browser_files":"jmBd7","./http":"a0eHL","./io_utils":"6yZPf","./passthrough":"8KfUz","./router_registry":"66OpC","./weights_loader":"2jgdU","./composite_array_buffer":"bzWJ0","./model_management":"rDgCT","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jmBd7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BrowserDownloads",()=>u),s.export(r,"browserDownloadsRouter",()=>d),s.export(r,"browserDownloads",()=>f),s.export(r,"browserFiles",()=>m),e("../flags");var a=e("../environment"),o=e("./io_utils"),l=e("./router_registry"),i=e("./composite_array_buffer");function p(e){return new Promise(e=>setTimeout(e)).then(e)}class u{constructor(e){if(!(0,a.env)().getBool("IS_BROWSER"))throw Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(u.URL_SCHEME)&&(e=e.slice(u.URL_SCHEME.length)),(null==e||0===e.length)&&(e="model"),this.modelJsonFileName=e+".json",this.weightDataFileName=e+".weights.bin"}async save(e){if("u"<typeof document)throw Error("Browser downloads are not supported in this environment since `document` is not present");let t=i.CompositeArrayBuffer.join(e.weightData),r=window.URL.createObjectURL(new Blob([t],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let t=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n=(0,o.getModelJSONForModelArtifacts)(e,t),s=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),a=null==this.modelJsonAnchor?document.createElement("a"):this.modelJsonAnchor;if(a.download=this.modelJsonFileName,a.href=s,await p(()=>a.dispatchEvent(new MouseEvent("click"))),null!=e.weightData){let e=null==this.weightDataAnchor?document.createElement("a"):this.weightDataAnchor;e.download=this.weightDataFileName,e.href=r,await p(()=>e.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:(0,o.getModelArtifactsInfoForJSON)(e)}}}}u.URL_SCHEME="downloads://";class c{constructor(e){if(null==e||e.length<1)throw Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let r=new FileReader;r.onload=r=>{let n=JSON.parse(r.target.result),s=n.modelTopology;null==s?t(Error(`modelTopology field is missing from file ${this.jsonFile.name}`)):null==n.weightsManifest?t(Error(`weightManifest field is missing from file ${this.jsonFile.name}`)):0===this.weightsFiles.length?e({modelTopology:s}):e((0,o.getModelArtifactsForJSON)(n,e=>this.loadWeights(e)))},r.onerror=e=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),r.readAsText(this.jsonFile)})}loadWeights(e){let t=[],r=[];for(let n of e)t.push(...n.weights),r.push(...n.paths);let n=this.checkManifestAndWeightFiles(e);return Promise.all(r.map(e=>this.loadWeightsFile(e,n[e]))).then(e=>[t,e])}loadWeightsFile(e,t){return new Promise((r,n)=>{let s=new FileReader;s.onload=e=>{r(e.target.result)},s.onerror=t=>n(`Failed to weights data from file of path '${e}'.`),s.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],r=this.weightsFiles.map(e=>(0,o.basename)(e.name)),n={};for(let s of e)s.paths.forEach(e=>{let s=(0,o.basename)(e);if(-1!==t.indexOf(s))throw Error(`Duplicate file basename found in weights manifest: '${s}'`);if(t.push(s),-1===r.indexOf(s))throw Error(`Weight file with basename '${s}' is not provided.`);n[e]=this.weightsFiles[r.indexOf(s)]});if(t.length!==this.weightsFiles.length)throw Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return n}}let d=e=>(0,a.env)().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(u.URL_SCHEME)?f(e.slice(u.URL_SCHEME.length)):null;function f(e="model"){return new u(e)}function m(e){return new c(e)}l.IORouterRegistry.registerSaveRouter(d)},{"../flags":"44Dje","../environment":"lCEjS","./io_utils":"6yZPf","./router_registry":"66OpC","./composite_array_buffer":"bzWJ0","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],a0eHL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"HTTPRequest",()=>c),s.export(r,"parseUrl",()=>d),s.export(r,"isHTTPScheme",()=>f),s.export(r,"httpRouter",()=>m),s.export(r,"http",()=>h),s.export(r,"browserHTTPRequest",()=>g);var a=e("../environment"),o=e("../util"),l=e("./io_utils"),i=e("./composite_array_buffer"),p=e("./router_registry"),u=e("./weights_loader");class c{constructor(e,t){if(this.DEFAULT_METHOD="POST",null==t&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.weightUrlConverter=t.weightUrlConverter,null!=t.fetchFunc?((0,o.assert)("function"==typeof t.fetchFunc,()=>"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=(0,a.env)().platform.fetch,(0,o.assert)(null!=e&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&(0,o.assert)(2===e.length,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,null!=t.requestInit&&null!=t.requestInit.body)throw Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{},this.loadOptions=t}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw 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 r=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n=(0,l.getModelJSONForModelArtifacts)(e,r);if(t.body.append("model.json",new Blob([JSON.stringify(n)],{type:"application/json"}),"model.json"),null!=e.weightData){let r=i.CompositeArrayBuffer.join(e.weightData);t.body.append("model.weights.bin",new Blob([r],{type:"application/octet-stream"}),"model.weights.bin")}let s=await this.fetch(this.path,t);if(s.ok)return{modelArtifactsInfo:(0,l.getModelArtifactsInfoForJSON)(e),responses:[s]};throw Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async loadModelJSON(){let e,t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);try{e=await t.json()}catch(t){let e=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?e+=" 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.":e+=" Please make sure the server is serving valid JSON for this request.",Error(e)}let r=e.modelTopology,n=e.weightsManifest;if(null==r&&null==n)throw Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return e}async load(){if(this.loadOptions.streamWeights)return this.loadStream();let e=await this.loadModelJSON();return(0,l.getModelArtifactsForJSON)(e,e=>this.loadWeights(e))}async loadStream(){let e=await this.loadModelJSON(),t=await this.getWeightUrls(e.weightsManifest),r=(0,l.getWeightSpecs)(e.weightsManifest),n=()=>(0,u.streamWeights)(t,this.loadOptions);return Object.assign(Object.assign({},e),{weightSpecs:r,getWeightStream:n})}async getWeightUrls(e){let[t,r]=d(Array.isArray(this.path)?this.path[1]:this.path),n=this.weightPathPrefix||t,s=[],a=[];for(let t of e)for(let e of t.paths)null!=this.weightUrlConverter?a.push(this.weightUrlConverter(e)):s.push(n+e+r);return this.weightUrlConverter&&s.push(...await Promise.all(a)),s}async loadWeights(e){let t=await this.getWeightUrls(e);return[(0,l.getWeightSpecs)(e),await (0,u.loadWeightsAsArrayBuffer)(t,this.loadOptions)]}}function d(e){let t=e.lastIndexOf("/"),r=e.lastIndexOf("?");return[e.substring(0,t)+"/",r>t?e.substring(r):""]}function f(e){return null!=e.match(c.URL_SCHEME_REGEX)}c.URL_SCHEME_REGEX=/^https?:\/\//;let m=(e,t)=>{if("u"<typeof fetch&&(null==t||null==t.fetchFunc));else if(Array.isArray(e)?e.every(e=>f(e)):f(e))return h(e,t);return null};function h(e,t){return new c(e,t)}function g(e,t){return h(e,t)}p.IORouterRegistry.registerSaveRouter(m),p.IORouterRegistry.registerLoadRouter(m)},{"../environment":"lCEjS","../util":"F0lVc","./io_utils":"6yZPf","./composite_array_buffer":"bzWJ0","./router_registry":"66OpC","./weights_loader":"2jgdU","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2jgdU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"loadWeightsAsArrayBuffer",()=>c),s.export(r,"streamWeights",()=>d),s.export(r,"loadWeights",()=>f),s.export(r,"weightsLoaderFactory",()=>m);var a=e("../environment"),o=e("../util"),l=e("./composite_array_buffer"),i=e("./io_utils"),p=e("./progress"),u=e("./types");async function c(e,t){null==t&&(t={});let r=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,n=e.map(e=>r(e,t.requestInit,{isBinary:!0})),s=(null==t.onProgress?await Promise.all(n):await (0,p.monitorPromisesProgress)(n,t.onProgress,0,.5)).map(e=>e.arrayBuffer());return null==t.onProgress?await Promise.all(s):await (0,p.monitorPromisesProgress)(s,t.onProgress,.5,1)}function d(e,t){var r;let n,s=null==t.fetchFunc?(0,a.env)().platform.fetch:t.fetchFunc,o=0;return null==(r=t.onProgress)||r.call(t,0),new ReadableStream({pull:async r=>{for(var a;o<e.length;){n||(n=(await s(e[o],t.requestInit,{isBinary:!0})).body.getReader());let{done:l,value:i}=await n.read();if(l){o++,n=void 0,null==(a=t.onProgress)||a.call(t,o/e.length);continue}r.enqueue(i);return}r.close()}})}async function f(e,t="",r,n){return m(e=>c(e,{requestInit:n}))(e,t,r)}function m(e){return async(t,r="",n)=>{let s=t.map(()=>!1),a={},p=null!=n?n.map(()=>!1):[],c=[];if(t.forEach((e,t)=>{let r=0;e.weights.forEach(e=>{let l="quantization"in e?e.quantization.dtype:e.dtype,i=u.DTYPE_VALUE_SIZE_MAP[l]*o.sizeFromShape(e.shape),d=()=>{s[t]=!0,null==a[t]&&(a[t]=[]),a[t].push({manifestEntry:e,groupOffset:r,sizeBytes:i})};null!=n?n.forEach((t,r)=>{t===e.name&&(d(),p[r]=!0)}):d(),c.push(e.name),r+=i})}),!p.every(e=>e)){let e=n.filter((e,t)=>!p[t]);throw Error(`Could not find weights in manifest with names: ${e.join(", ")}. Manifest JSON has weights with names: ${c.join(", ")}.`)}let d=s.reduce((e,t,r)=>(t&&e.push(r),e),[]),f=[];d.forEach(e=>{t[e].paths.forEach(e=>{let t=r+(r.endsWith("/")?"":"/")+e;f.push(t)})});let m=await e(f),h={},g=0;return d.forEach(e=>{let r=t[e].paths.length,n=new(0,l.CompositeArrayBuffer)(m.slice(g,g+r));a[e].forEach(e=>{let t=n.slice(e.groupOffset,e.groupOffset+e.sizeBytes),r=(0,i.decodeWeights)(t,[e.manifestEntry]);for(let e in r)h[e]=r[e]}),g+=r}),h}}},{"../environment":"lCEjS","../util":"98aA6","./composite_array_buffer":"bzWJ0","./io_utils":"6yZPf","./progress":"7ywDo","./types":"2CdJ3","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7ywDo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"monitorPromisesProgress",()=>o);var a=e("../util");function o(e,t,r,n){var s,o,l;s=e,(0,a.assert)(null!=s&&Array.isArray(s)&&s.length>0,()=>"promises must be a none empty array"),o=r=null==r?0:r,l=n=null==n?1:n,(0,a.assert)(o>=0&&o<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${o}`),(0,a.assert)(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),(0,a.assert)(l>=o,()=>`startFraction must be no more than endFraction, but got startFraction ${o} and endFraction ${l}`);let i=0;return Promise.all(e.map(s=>(s.then(s=>(t(r+ ++i/e.length*(n-r)),s)),s)))}},{"../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8KfUz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fromMemory",()=>i),s.export(r,"fromMemorySync",()=>p),s.export(r,"withSaveHandler",()=>u),s.export(r,"withSaveHandlerSync",()=>c);class a{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}}class o{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}}class l{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}}function i(e,t,r,n){let s=arguments;return new l(p(...s))}function p(e,t,r,n){return 1!=arguments.length?(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 a({modelTopology:e,weightSpecs:t,weightData:r,trainingConfig:n})):null!=e.modelTopology||null!=e.weightSpecs?new a(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 a({modelTopology:e}))}function u(e){return new o(e)}function c(e){return new o(e)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5BOqa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix",()=>a.confusionMatrix);var a=e("./ops/confusion_matrix")},{"./ops/confusion_matrix":"65IKU","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"65IKU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"confusionMatrix_",()=>d),s.export(r,"confusionMatrix",()=>f);var a=e("../tensor_util_env"),o=e("../util"),l=e("./cast"),i=e("./mat_mul"),p=e("./one_hot"),u=e("./operation"),c=e("./transpose");function d(e,t,r){let n=(0,a.convertToTensor)(e,"labels","confusionMatrix"),s=(0,a.convertToTensor)(t,"predictions","confusionMatrix");o.assert(null==r||r>0&&Number.isInteger(r),()=>`If provided, numClasses must be a positive integer, but got ${r}`),o.assert(1===n.rank,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),o.assert(1===s.rank,()=>`Expected the rank of predictions to be 1, but got ${s.rank}`),o.assert(n.shape[0]===s.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${s.shape[0]}. Labels and predictions should have the same number of elements.`),o.assert(r>0&&Number.isInteger(r),()=>`numClasses is required to be a positive integer, but got ${r}`);let u=(0,p.oneHot)((0,l.cast)(n,"int32"),r),d=(0,p.oneHot)((0,l.cast)(s,"int32"),r),f=(0,c.transpose)(u),m=(0,i.matMul)(f,d);return(0,l.cast)(m,"int32")}let f=(0,u.op)({confusionMatrix_:d})},{"../tensor_util_env":"feaHs","../util":"98aA6","./cast":"Qs5mF","./mat_mul":"jyMFR","./one_hot":"hf0YM","./operation":"2qT2c","./transpose":"2Qc4K","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jyMFR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({matMul_:function(e,t,r=!1,n=!1){let s=(0,i.convertToTensor)(e,"a","matMul"),p=(0,i.convertToTensor)(t,"b","matMul");[s,p]=(0,l.makeTypesMatch)(s,p);let u={a:s,b:p};return a.ENGINE.runKernel(o.BatchMatMul,u,{transposeA:r,transposeB:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hf0YM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({oneHot_:function(e,t,r=1,n=0,s="int32"){if(t<2)throw Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i=(0,l.convertToTensor)(e,"indices","oneHot","int32");return a.ENGINE.runKernel(o.OneHot,{indices:i},{dtype:s,depth:t,onValue:r,offValue:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2Qc4K":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>h);var a=e("../engine"),o=e("../globals"),l=e("../kernel_names"),i=e("../tensor_util_env"),p=e("../util"),u=e("./complex"),c=e("./imag"),d=e("./neg"),f=e("./operation"),m=e("./real");let h=(0,f.op)({transpose_:function(e,t,r){let n=(0,i.convertToTensor)(e,"x","transpose");if(null==t&&(t=n.shape.map((e,t)=>t).reverse()),p.assert(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(e=>{p.assert(e>=0&&e<n.rank,()=>`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let s={perm:t};return"complex64"===n.dtype?(0,o.tidy)(()=>{let e=(0,m.real)(n),t=(0,c.imag)(n);return e=a.ENGINE.runKernel(l.Transpose,{x:e},s),t=a.ENGINE.runKernel(l.Transpose,{x:t},s),r&&(t=(0,d.neg)(t)),(0,u.complex)(e,t)}):a.ENGINE.runKernel(l.Transpose,{x:n},s)}})},{"../engine":"5aImO","../globals":"1ONwU","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./complex":"5l7Tr","./imag":"jcbh1","./neg":"2tLkY","./operation":"2qT2c","./real":"hmpeq","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jcbh1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({imag_:function(e){let t=(0,l.convertToTensor)(e,"input","imag");return a.ENGINE.runKernel(o.Imag,{input:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2tLkY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({neg_:function(e){let t=(0,l.convertToTensor)(e,"x","neg");return a.ENGINE.runKernel(o.Neg,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hmpeq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({real_:function(e){let t=(0,l.convertToTensor)(e,"input","real");return a.ENGINE.runKernel(o.Real,{input:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6oU9C":[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsAsync",()=>x),a.export(r,"toPixels",()=>v),a.export(r,"draw",()=>b),a.export(r,"fromPixels",()=>k);var o=e("../engine"),l=e("../environment"),i=e("../kernel_names"),p=e("../kernel_registry"),u=e("../tensor"),c=e("../tensor_util_env"),d=e("./cast"),f=e("./operation"),m=e("./tensor3d");let h=!1;function g(e,t=3){let r,n;if(t>4)throw Error("Cannot construct Tensor with more than 4 channels from pixels.");if(null==e)throw Error("pixels passed to tf.browser.fromPixels() can not be null");let a=!1,l=!1,u=!1,c=!1,d=!1,f=!1;if(e.data instanceof Uint8Array)a=!0;else if("u">typeof ImageData&&e instanceof ImageData)l=!0;else if("u">typeof HTMLVideoElement&&e instanceof HTMLVideoElement)u=!0;else if("u">typeof HTMLImageElement&&e instanceof HTMLImageElement)c=!0;else if(null!=e.getContext)d=!0;else if("u">typeof ImageBitmap&&e instanceof ImageBitmap)f=!0;else throw 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(null!=(0,p.getKernel)(i.FromPixels,o.ENGINE.backendName))return o.ENGINE.runKernel(i.FromPixels,{pixels:e},{numChannels:t});let[h,x]=u?[e.videoWidth,e.videoHeight]:[e.width,e.height];if(d)r=e.getContext("2d").getImageData(0,0,h,x).data;else if(l||a)r=e.data;else if(c||u||f){if(null==s)if("u"<typeof document)if("u">typeof OffscreenCanvas&&"u">typeof OffscreenCanvasRenderingContext2D)s=new OffscreenCanvas(1,1).getContext("2d");else throw Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else s=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});s.canvas.width=h,s.canvas.height=x,s.drawImage(e,0,0,h,x),r=s.getImageData(0,0,h,x).data}if(4===t)n=new Int32Array(r);else{let e=h*x;n=new Int32Array(e*t);for(let s=0;s<e;s++)for(let e=0;e<t;++e)n[s*t+e]=r[4*s+e]}let y=[x,h,t];return(0,m.tensor3d)(n,y,"int32")}async function x(e,t=3){var r;let n=null;if((0,l.env)().getBool("WRAP_TO_IMAGEBITMAP")&&"u">typeof window&&"u">typeof ImageBitmap&&window.hasOwnProperty("createImageBitmap")&&!(e instanceof ImageBitmap)&&null!=(r=e)&&0!==r.width&&0!==r.height&&!(null!=e&&e.data instanceof Uint8Array)){let t;try{t=await createImageBitmap(e,{premultiplyAlpha:"none"})}catch(e){t=null}n=null!=t&&t.width===e.width&&t.height===e.height?t:e}else n=e;return g(n,t)}function y(e){if(2!==e.rank&&3!==e.rank)throw Error(`toPixels only supports rank 2 or 3 tensors, got rank ${e.rank}.`);let t=2===e.rank?1:e.shape[2];if(t>4||2===t)throw Error(`toPixels only supports depth of size 1, 3 or 4 but got ${t}`);if("float32"!==e.dtype&&"int32"!==e.dtype)throw Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`)}async function v(e,t){let r=(0,c.convertToTensor)(e,"img","toPixels");if(!(e instanceof u.Tensor)){let e=r;r=(0,d.cast)(e,"int32"),e.dispose()}y(r);let[n,s]=r.shape.slice(0,2),a=2===r.rank?1:r.shape[2],l=await r.data(),f="float32"===r.dtype?255:1,m=new Uint8ClampedArray(s*n*4);for(let e=0;e<n*s;++e){let t=[0,0,0,255];for(let n=0;n<a;n++){let s=l[e*a+n];if("float32"===r.dtype){if(s<0||s>1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${s}.`)}else if("int32"===r.dtype&&(s<0||s>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${s}.`);1===a?(t[0]=s*f,t[1]=s*f,t[2]=s*f):t[n]=s*f}let n=4*e;m[n+0]=Math.round(t[0]),m[n+1]=Math.round(t[1]),m[n+2]=Math.round(t[2]),m[n+3]=Math.round(t[3])}if(null!=t){h||null!=(0,p.getKernel)(i.Draw,o.ENGINE.backendName)&&(console.warn("tf.browser.toPixels is not efficient to draw tensor on canvas. Please try tf.browser.draw instead."),h=!0),t.width=s,t.height=n;let e=t.getContext("2d"),r=new ImageData(m,s,n);e.putImageData(r,0,0)}return r!==e&&r.dispose(),m}function b(e,t,r){let n=(0,c.convertToTensor)(e,"img","draw");if(!(e instanceof u.Tensor)){let e=n;n=(0,d.cast)(e,"int32"),e.dispose()}y(n);var s=null==r?void 0:r.imageOptions;let a=(null==s?void 0:s.alpha)||1;if(a>1||a<0)throw Error(`Alpha value ${a} is suppoed to be in range [0 - 1].`);let l={image:n};o.ENGINE.runKernel(i.Draw,l,{canvas:t,options:r})}let k=(0,f.op)({fromPixels_:g})},{"../engine":"5aImO","../environment":"lCEjS","../kernel_names":"bvyjS","../kernel_registry":"eNDWR","../tensor":"izSBk","../tensor_util_env":"feaHs","./cast":"Qs5mF","./operation":"2qT2c","./tensor3d":"4mTWV","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4mTWV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&3!==t.length)throw Error("tensor3d() requires shape to have three numbers");let n=(0,a.inferShape)(e,r);if(3!==n.length&&1!==n.length)throw Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor3d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fIneF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareAndValidate",()=>o);var a=e("../util");function o(e,t){let r=e.shape.length,n=t.shape.length;if(r<1)throw Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${r}.`);if(n<1)throw Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if("int32"!==t.dtype)throw Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>r)throw Error(`index innermost dimension length must be<= tensor rank; saw: ${t.shape[n-1]} vs. ${r}`);if(0===(0,a.sizeFromShape)(e.shape))throw Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let s=t.shape,o=s[s.length-1],l=1;for(let e=0;e<s.length-1;++e)l*=s[e];let i=e.shape,p=s.slice();p.pop();let u=1;for(let e=o;e<r;++e)u*=i[e],p.push(i[e]);let c=[...(0,a.computeStrides)(e.shape).map(e=>e/u),1].slice(0,o);return[p,l,u,c]}},{"../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8P3GB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"validateUpdateShape",()=>o),s.export(r,"validateInput",()=>l),s.export(r,"calculateShapes",()=>i);var a=e("../util");function o(e,t,r){let n=t.rank>1?t.shape[t.rank-1]:1,s=t.rank>1?t.rank-1:1,a=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${r.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${s}.`;if(r.rank<s)throw Error(a+` update.rank < ${s}. `);if(e.length<n+(r.rank-s))throw Error(a+` Output shape length < ${n+(r.rank-s)}`);if(r.rank!==s+e.length-n)throw Error(a+` update.rank != ${s+e.length-n}`);for(let e=0;e<s;++e)if(r.shape[e]!==t.shape[e])throw Error(a+` updates.shape[${e}] (${r.shape[e]}) != indices.shape[${e}] (${t.shape[e]}).`);for(let t=0;t<r.rank-s;++t)if(r.shape[t+s]!==e[t+n])throw Error(a+` updates.shape[${t+s}] (${r.shape[t+s]}) != shape[${t+s}] (${e[t+s]})`)}function l(e,t,r){if(t.rank<1)throw Error(`tf.scatterND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(e.rank<1)throw Error(`tf.scatterND() expects the updates to be rank 1 or higher, but the rank was ${e.rank}.`);if("int32"!==t.dtype)throw Error(`The dtype of 'indices' should be int32, but got dtype: ${t.dtype}`);if(r.length<1)throw Error(`Output rank must be greater or equal to 1, but got shape: ${r}`);if(0===r.length){if(0===t.size)throw Error(`Indices specified for empty output. indices shape: ${t.shape}`);if(0===e.size)throw Error(`Updates specified for empty output. updates shape: ${e.shape}`)}o(r,t,e)}function i(e,t,r){let n=t.shape.length,s=n>1?t.shape[n-1]:1,o=r.length,l=1;for(let e=s;e<o;++e)l*=r[e];let i=s<1?1:s,p=(0,a.sizeFromShape)(t.shape)/i,u=[...(0,a.computeStrides)(r.slice(0,s)),1];return{sliceRank:s,numUpdates:p,sliceSize:l,strides:u,outputSize:(0,a.sizeFromShape)(r)}}},{"../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1Tyqd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsValid",()=>o),s.export(r,"maskToAxes",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"stridesWithElidedDims",()=>p),s.export(r,"getNormalizedAxes",()=>c),s.export(r,"startIndicesWithElidedDims",()=>d),s.export(r,"stopIndicesWithElidedDims",()=>f),s.export(r,"stridesForAxis",()=>m),s.export(r,"startForAxis",()=>h),s.export(r,"stopForAxis",()=>g),s.export(r,"isSliceContinous",()=>x),s.export(r,"computeFlatOffset",()=>y),s.export(r,"parseSliceParams",()=>v),s.export(r,"sliceInfo",()=>b);var a=e("../util");function o(e,t,r){let n=e.shape.length;a.assert(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),a.assert(n===r.length,()=>`Error in slice${n}D: Length of size ${r} must match the rank of the array (${n}).`);for(let s=0;s<n;++s)a.assert(t[s]+r[s]<=e.shape[s],()=>`Error in slice${n}D: begin[${s}] + size[${s}] (${t[s]+r[s]}) would overflow input.shape[${s}] (${e.shape[s]})`)}function l(e){let t=[],r=0;for(;e>0;)1&e&&t.push(r),e/=2,r++;return t}function i(e,t,r){let n=[];for(let s=0;s<e.length;s++)n[s]=Math.ceil((t[s]-e[s])/r[s]);return n}function p(e,t,r,n){let s=[...e];for(let e=s.length;e<n.length;e++)s.push(1);for(let e=0;e<r;e++)0===e?s[t]=1:(s.splice(t,0,1),s.pop());return s}function u(e,t){let r=[];for(let n=0;n<e;n++)r.push(t+n);return r}function c(e,t,r,n,s,a,o,l,i){let u=e.length,c=Array(u),x=Array(u),y=Array(u);if(t.length&&r>0){let i=t[0],u=r+1;c=d(o,i,u,n,e),x=f(l,i,u,s,e),y=p(a,i,u,e)}else for(let t=0;t<u;t++)c[t]=h(o,n,a,e,t,i),x[t]=g(l,s,a,e,t,i),y[t]=m(a,t,i);return{begin:c,end:x,strides:y}}function d(e,t,r,n,s){let a=[...s],o=u(r,t);for(let s=0;s<a.length;s++)if(o.indexOf(s)>-1)a[s]=0;else{var l,i,p;let o=(l=t,i=r,(p=s)<=l?p:p-(i-1)),u=n[o];e&1<<o&&(u=0),a[s]=u}return a}function f(e,t,r,n,s){let o=[...s],l=u(r,t);for(let s=0;s<o.length;s++)if(l.indexOf(s)>-1)o[s]=Number.MAX_SAFE_INTEGER;else{var i,p,c;let a=(i=t,p=r,(c=s)<=i?c:c-(p-1)),l=n[a];e&1<<a&&(l=Number.MAX_SAFE_INTEGER),o[s]=l}for(let e=0;e<o.length;e++){let t=s[e];o[e]<0&&(o[e]+=t),o[e]=a.clamp(0,o[e],s[e])}return o}function m(e,t,r){let n=e[t];return(r&1<<t||null==n)&&(n=1),n}function h(e,t,r,n,s,o){let l=t[s],i=r[s]||1;(e&1<<s||o&1<<s||null==l)&&(l=i>0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);let p=n[s];return l<0&&(l+=p),l=a.clamp(0,l,p-1)}function g(e,t,r,n,s,o){let l=t[s],i=r[s]||1;(e&1<<s||o&1<<s||null==l)&&(l=i>0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);let p=n[s];return l<0&&(l+=p),l=i>0?a.clamp(0,l,p):a.clamp(-1,l,p-1)}function x(e,t,r){let n=r.length;for(let e=0;e<r.length;e++)if(r[e]>1){n=e;break}for(let s=n+1;s<r.length;s++)if(t[s]>0||r[s]!==e[s])return!1;return!0}function y(e,t){let r=e.length>0?e[e.length-1]:1;for(let n=0;n<e.length-1;n++)r+=e[n]*t[n];return r}function v(e,t,r){let n,s,o=e.shape.length;return(n="number"==typeof t?[t,...Array(o-1).fill(0)]:t.length<o?t.concat(Array(o-t.length).fill(0)):t.slice()).forEach(e=>{a.assert(-1!==e,()=>"slice() does not support negative begin indexing.")}),s=(s=null==r?Array(o).fill(-1):"number"==typeof r?[r,...Array(o-1).fill(-1)]:r.length<o?r.concat(Array(o-r.length).fill(-1)):r).map((t,r)=>t>=0?t:(a.assert(-1===t,()=>`Negative size values should be exactly -1 but got ${t} for the slice() size at index ${r}.`),e.shape[r]-n[r])),[n,s]}function b(e,t,r,n,s,a,o,l,i){let p;if(null==n?(p=Array(t.length)).fill(1):p=n,null!=o&&(o&o-1)!=0)throw Error("Multiple ellipses in slice is not allowed.");let u=!1,c={dims:p.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:r.slice(),strides:p.slice(),beginMask:s,endMask:a,ellipsisMask:o,newAxisMask:l,shrinkAxisMask:i};for(let e=0;e<c.dims;e++)u&&(1<<e&l)!=0&&c.numAddAxisAfterEllipsis++,1<<e&o&&(u=!0);!u&&(c.ellipsisMask|=1<<c.dims,c.dims++);let d={dims:e.length,beginMask:0,endMask:0,beginValid:!1,endValid:!1};var f=c,m=d;m.beginMask=0,m.endMask=0,m.shrinkAxisMask=0;let h=0;m.beginValid=null!=f.begin,m.endValid=null!=f.end,m.begin=Array(m.dims),m.end=Array(m.dims),m.strides=Array(m.dims),m.finalShapeGatherIndices=[],m.finalShapeGatherIndicesSparse=[],m.inputShapeGatherIndicesSparse=Array(m.dims);for(let e=0;e<f.dims;e++)if(1<<e&f.ellipsisMask){let t=Math.min(m.dims-(f.dims-e)+1+f.numAddAxisAfterEllipsis,m.dims);for(;h<t;h++)m.begin[h]=0,m.end[h]=0,m.strides[h]=1,m.beginMask|=1<<h,m.endMask|=1<<h,m.finalShapeGatherIndices.push(h),m.finalShapeGatherIndicesSparse.push(-1),m.inputShapeGatherIndicesSparse[h]=e}else if(1<<e&f.newAxisMask)m.finalShapeGatherIndices.push(-2),m.finalShapeGatherIndicesSparse.push(-1);else{if(h===m.begin.length)throw Error(`Index out of range using input dim ${h}; input has only ${m.dims} dims, ${m.begin.length}.`);null!=f.begin&&(m.begin[h]=f.begin[e]),null!=f.end&&(m.end[h]=f.end[e]),m.strides[h]=f.strides[e],f.beginMask&1<<e&&(m.beginMask|=1<<h),f.endMask&1<<e&&(m.endMask|=1<<h),f.shrinkAxisMask&1<<e?(m.finalShapeGatherIndices.push(-1),m.finalShapeGatherIndicesSparse.push(-1),m.shrinkAxisMask|=1<<h):(m.finalShapeGatherIndices.push(h),m.finalShapeGatherIndicesSparse.push(e)),m.inputShapeGatherIndicesSparse[h]=e,h++}let g=!0,x=!0,y=!0,v=[],b=[];for(let t=0;t<e.length;++t){let r;if(0===d.strides[t])throw Error(`strides[${t}] must be non-zero`);let n=!!(d.shrinkAxisMask&1<<t),s=e[t];if(-1===s){v.push(n?1:-1);continue}let a=[d.beginMask&1<<t,d.endMask&1<<t],o=[d.strides[t]>0?0:-1,d.strides[t]>0?s:s-1];if(n&&d.strides[t]<=0)throw Error("only stride 1 allowed on non-range indexing.");y=y&&1===d.strides[t];let l=!!(d.beginMask&1<<t&&d.endMask&1<<t);if(d.beginValid&&d.endValid){if(n){let e=d.begin[t]<0?s+d.begin[t]:d.begin[t];if(d.begin[t]=e,d.end[t]=d.begin[t]+1,e<0||e>=s)throw Error(`slice index ${d.begin[t]} of dimension ${t} out of bounds.`)}else d.begin[t]=k(d.begin[t],0,d.strides[t],s,a,o),d.end[t]=k(d.end[t],1,d.strides[t],s,a,o);let e=1===d.strides[t]&&0===d.begin[t]&&d.end[t]===s;g=g&&e,x=x&&(0===t&&1===d.strides[t]||e)}else g=g&&1===d.strides[t]&&l,x=x&&(0===t&&1===d.strides[t]||l);let i=!1;if(d.beginValid&&d.endValid?(r=d.end[t]-d.begin[t],i=!0):n?(r=1,i=!0):l&&s>=0&&(r=d.strides[t]<0?-s:s,i=!0),i){let e;e=0===r||r<0!=d.strides[t]<0?0:Math.trunc(r/d.strides[t])+ +(r%d.strides[t]!=0),v.push(e)}else v.push(-1)}for(let e=0;e<d.finalShapeGatherIndices.length;++e){let t=d.finalShapeGatherIndices[e];t>=0?b.push(v[t]):-2===t&&b.push(1)}return{finalShapeSparse:b.filter((e,t)=>-2!==d.finalShapeGatherIndices[t]),finalShape:b,isIdentity:g,sliceDim0:x,isSimpleSlice:y,begin:d.begin,end:d.end,strides:d.strides}}function k(e,t,r,n,s,a){if(s[t])return r>0?a[t]:a[t+1&1];{let t=e<0?n+e:e;return t<a[0]?a[0]:t>a[1]?a[1]:t}}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j33yG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TEST_EPSILON_FLOAT16",()=>i),s.export(r,"expectArraysClose",()=>p),s.export(r,"testEpsilon",()=>u),s.export(r,"expectPromiseToFail",()=>d),s.export(r,"expectArraysEqual",()=>f),s.export(r,"expectNumbersClose",()=>m),s.export(r,"expectValuesInRange",()=>g),s.export(r,"expectArrayBuffersEqual",()=>x),s.export(r,"encodeStrings",()=>function e(t){for(let r=0;r<t.length;r++){let n=t[r];Array.isArray(n)?e(n):t[r]=(0,l.encodeString)(n)}return t}),s.export(r,"createVideoElement",()=>y),s.export(r,"play",()=>v);var a=e("./engine"),o=e("./tensor_util_env"),l=e("./util");let i=.1;function p(e,t,r){return null==r&&(r=u()),c(e,t,(e,t)=>h(e,t,r))}function u(){return 32===a.ENGINE.backend.floatPrecision()?.001:i}function c(e,t,r){let n=!0;if(((0,l.isTypedArray)(e)||(0,l.isTypedArray)(t))&&(n=!1),(0,l.isTypedArray)(e)&&(0,l.isTypedArray)(t)&&(n=!0),n){let r=e.constructor.name,n=t.constructor.name;if(r!==n)throw Error(`Arrays are of different type. Actual: ${r}. Expected: ${n}`)}if(Array.isArray(e)&&Array.isArray(t)){let r=(0,o.inferShape)(e),n=(0,o.inferShape)(t);if(!(0,l.arraysEqual)(r,n))throw Error(`Arrays have different shapes. Actual: [${r}]. Expected: [${n}]`)}let s=(0,l.isTypedArray)(e)?e:(0,l.flatten)(e),a=(0,l.isTypedArray)(t)?t:(0,l.flatten)(t);if(s.length!==a.length)throw Error(`Arrays have different lengths actual: ${s.length} vs expected: ${a.length}. Actual: ${s}. Expected: ${a}.`);for(let e=0;e<a.length;++e){let t=s[e],n=a[e];if(!r(t,n))throw Error(`Arrays differ: actual[${e}] = ${t}, expected[${e}] = ${n}. Actual: ${s}. Expected: ${a}.`)}"u">typeof expect&&expect().nothing()}function d(e,t){e().then(()=>t.fail(),()=>t()),"u">typeof expect&&expect().nothing()}function f(e,t){let r="string"==typeof t||"number"==typeof t||"boolean"==typeof t?[t]:t;return(0,l.isString)(e)||(0,l.isString)(e[0])||(0,l.isString)(t)||(0,l.isString)(t[0])?c(e,r,(e,t)=>e==t):c(e,t,(e,t)=>h(e,t,0))}function m(e,t,r){if(null==r&&(r=u()),!h(e,t,r))throw Error(`Numbers differ: actual === ${e}, expected === ${t}`);"u">typeof expect&&expect().nothing()}function h(e,t,r){return!(isFinite(e)||isFinite(t))||!(isNaN(e)||isNaN(t)||Math.abs(e-t)>r)}function g(e,t,r){for(let n=0;n<e.length;n++)if(e[n]<t||e[n]>r)throw Error(`Value out of range:${e[n]} low: ${t}, high: ${r}`)}function x(e,t){let r=new Float32Array(e),n=new Float32Array(t);if(r.length!==n.length)throw Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${r.length}`);for(let e=0;e<n.length;e++)if(r[e]!==n[e])throw Error(`Expected ArrayBuffer value at ${e} to be ${n[e]} but got ${r[e]} instead`)}function y(e){let t=document.createElement("video");return"playsInline"in t&&(t.playsInline=!0),t.muted=!0,t.loop=!0,t.style.position="fixed",t.style.left="0px",t.style.top="0px",t.preload="auto",t.appendChild(e),new Promise(e=>{t.addEventListener("loadeddata",r=>e(t)),t.load()})}async function v(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}},{"./engine":"5aImO","./tensor_util_env":"feaHs","./util":[["arraysEqual","F0lVc"],["isString","F0lVc"],["encodeString","98aA6"],["flatten","98aA6"],["isTypedArray","98aA6"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"91pS6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3RZnR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OptimizerConstructors",()=>d);var a=e("./adadelta_optimizer"),o=e("./adagrad_optimizer"),l=e("./adam_optimizer"),i=e("./adamax_optimizer"),p=e("./momentum_optimizer"),u=e("./rmsprop_optimizer"),c=e("./sgd_optimizer");class d{static sgd(e){return new(0,c.SGDOptimizer)(e)}static momentum(e,t,r=!1){return new(0,p.MomentumOptimizer)(e,t,r)}static rmsprop(e,t=.9,r=0,n=null,s=!1){return new(0,u.RMSPropOptimizer)(e,t,r,n,s)}static adam(e=.001,t=.9,r=.999,n=null){return new(0,l.AdamOptimizer)(e,t,r,n)}static adadelta(e=.001,t=.95,r=null){return new(0,a.AdadeltaOptimizer)(e,t,r)}static adamax(e=.002,t=.9,r=.999,n=null,s=0){return new(0,i.AdamaxOptimizer)(e,t,r,n,s)}static adagrad(e,t=.1){return new(0,o.AdagradOptimizer)(e,t)}}},{"./adadelta_optimizer":"3D10c","./adagrad_optimizer":"dg305","./adam_optimizer":"1yuc8","./adamax_optimizer":"9WtYe","./momentum_optimizer":"dT4iR","./rmsprop_optimizer":"9RVk0","./sgd_optimizer":"jvslj","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4pdlU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>a.abs),s.export(r,"acos",()=>o.acos),s.export(r,"acosh",()=>l.acosh),s.export(r,"add",()=>i.add),s.export(r,"addN",()=>p.addN),s.export(r,"all",()=>u.all),s.export(r,"any",()=>c.any),s.export(r,"argMax",()=>d.argMax),s.export(r,"argMin",()=>f.argMin),s.export(r,"asin",()=>m.asin),s.export(r,"asinh",()=>h.asinh),s.export(r,"atan",()=>g.atan),s.export(r,"atan2",()=>x.atan2),s.export(r,"atanh",()=>y.atanh),s.export(r,"avgPool",()=>v.avgPool),s.export(r,"avgPool3d",()=>b.avgPool3d),s.export(r,"basicLSTMCell",()=>k.basicLSTMCell),s.export(r,"batchToSpaceND",()=>_.batchToSpaceND),s.export(r,"batchNorm",()=>I.batchNorm),s.export(r,"batchNorm2d",()=>j.batchNorm2d),s.export(r,"batchNorm3d",()=>w.batchNorm3d),s.export(r,"batchNorm4d",()=>T.batchNorm4d),s.export(r,"bincount",()=>S.bincount),s.export(r,"bitwiseAnd",()=>C.bitwiseAnd),s.export(r,"broadcastArgs",()=>N.broadcastArgs),s.export(r,"broadcastTo",()=>E.broadcastTo),s.export(r,"buffer",()=>F.buffer),s.export(r,"cast",()=>A.cast),s.export(r,"ceil",()=>R.ceil),s.export(r,"clipByValue",()=>P.clipByValue),s.export(r,"clone",()=>$.clone),s.export(r,"complex",()=>O.complex),s.export(r,"concat",()=>D.concat),s.export(r,"concat1d",()=>M.concat1d),s.export(r,"concat2d",()=>B.concat2d),s.export(r,"concat3d",()=>G.concat3d),s.export(r,"concat4d",()=>V.concat4d),s.export(r,"conv1d",()=>L.conv1d),s.export(r,"conv2d",()=>z.conv2d),s.export(r,"conv2dTranspose",()=>U.conv2dTranspose),s.export(r,"conv3d",()=>W.conv3d),s.export(r,"conv3dTranspose",()=>q.conv3dTranspose),s.export(r,"cos",()=>H.cos),s.export(r,"cosh",()=>K.cosh),s.export(r,"cumprod",()=>X.cumprod),s.export(r,"cumsum",()=>Z.cumsum),s.export(r,"denseBincount",()=>Y.denseBincount),s.export(r,"depthToSpace",()=>Q.depthToSpace),s.export(r,"depthwiseConv2d",()=>J.depthwiseConv2d),s.export(r,"diag",()=>ee.diag),s.export(r,"dilation2d",()=>et.dilation2d),s.export(r,"div",()=>er.div),s.export(r,"divNoNan",()=>en.divNoNan),s.export(r,"dot",()=>es.dot),s.export(r,"einsum",()=>ea.einsum),s.export(r,"elu",()=>eo.elu),s.export(r,"ensureShape",()=>el.ensureShape),s.export(r,"equal",()=>ei.equal),s.export(r,"erf",()=>ep.erf),s.export(r,"euclideanNorm",()=>eu.euclideanNorm),s.export(r,"exp",()=>ec.exp),s.export(r,"expandDims",()=>ed.expandDims),s.export(r,"expm1",()=>ef.expm1),s.export(r,"eye",()=>em.eye),s.export(r,"fill",()=>eh.fill),s.export(r,"floor",()=>eg.floor),s.export(r,"floorDiv",()=>ex.floorDiv),s.export(r,"gather",()=>ey.gather),s.export(r,"greater",()=>ev.greater),s.export(r,"greaterEqual",()=>eb.greaterEqual),s.export(r,"imag",()=>ek.imag),s.export(r,"isFinite",()=>e_.isFinite),s.export(r,"isInf",()=>eI.isInf),s.export(r,"isNaN",()=>ej.isNaN),s.export(r,"leakyRelu",()=>ew.leakyRelu),s.export(r,"less",()=>eT.less),s.export(r,"lessEqual",()=>eS.lessEqual),s.export(r,"linspace",()=>eC.linspace),s.export(r,"localResponseNormalization",()=>eN.localResponseNormalization),s.export(r,"log",()=>eE.log),s.export(r,"log1p",()=>eF.log1p),s.export(r,"logSigmoid",()=>eA.logSigmoid),s.export(r,"logSoftmax",()=>eR.logSoftmax),s.export(r,"logSumExp",()=>eP.logSumExp),s.export(r,"logicalAnd",()=>e$.logicalAnd),s.export(r,"logicalNot",()=>eO.logicalNot),s.export(r,"logicalOr",()=>eD.logicalOr),s.export(r,"logicalXor",()=>eM.logicalXor),s.export(r,"lowerBound",()=>eB.lowerBound),s.export(r,"matMul",()=>eG.matMul),s.export(r,"max",()=>eV.max),s.export(r,"maxPool",()=>eL.maxPool),s.export(r,"maxPool3d",()=>ez.maxPool3d),s.export(r,"maxPoolWithArgmax",()=>eU.maxPoolWithArgmax),s.export(r,"maximum",()=>eW.maximum),s.export(r,"mean",()=>eq.mean),s.export(r,"meshgrid",()=>eH.meshgrid),s.export(r,"min",()=>eK.min),s.export(r,"minimum",()=>eX.minimum),s.export(r,"mirrorPad",()=>eZ.mirrorPad),s.export(r,"mod",()=>eY.mod),s.export(r,"moments",()=>eQ.moments),s.export(r,"mul",()=>eJ.mul),s.export(r,"multiRNNCell",()=>e0.multiRNNCell),s.export(r,"multinomial",()=>e1.multinomial),s.export(r,"neg",()=>e2.neg),s.export(r,"notEqual",()=>e3.notEqual),s.export(r,"oneHot",()=>e6.oneHot),s.export(r,"ones",()=>e4.ones),s.export(r,"onesLike",()=>e5.onesLike),s.export(r,"outerProduct",()=>e8.outerProduct),s.export(r,"pad",()=>e9.pad),s.export(r,"pad1d",()=>e7.pad1d),s.export(r,"pad2d",()=>te.pad2d),s.export(r,"pad3d",()=>tt.pad3d),s.export(r,"pad4d",()=>tr.pad4d),s.export(r,"pool",()=>tn.pool),s.export(r,"pow",()=>ts.pow),s.export(r,"prelu",()=>ta.prelu),s.export(r,"print",()=>to.print),s.export(r,"prod",()=>tl.prod),s.export(r,"raggedGather",()=>ti.raggedGather),s.export(r,"raggedRange",()=>tp.raggedRange),s.export(r,"raggedTensorToTensor",()=>tu.raggedTensorToTensor),s.export(r,"rand",()=>tc.rand),s.export(r,"randomGamma",()=>td.randomGamma),s.export(r,"randomNormal",()=>tf.randomNormal),s.export(r,"randomStandardNormal",()=>tm.randomStandardNormal),s.export(r,"randomUniform",()=>th.randomUniform),s.export(r,"randomUniformInt",()=>tg.randomUniformInt),s.export(r,"range",()=>tx.range),s.export(r,"real",()=>ty.real),s.export(r,"reciprocal",()=>tv.reciprocal),s.export(r,"relu",()=>tb.relu),s.export(r,"relu6",()=>tk.relu6),s.export(r,"reshape",()=>t_.reshape),s.export(r,"reverse",()=>tI.reverse),s.export(r,"reverse1d",()=>tj.reverse1d),s.export(r,"reverse2d",()=>tw.reverse2d),s.export(r,"reverse3d",()=>tT.reverse3d),s.export(r,"reverse4d",()=>tS.reverse4d),s.export(r,"round",()=>tC.round),s.export(r,"rsqrt",()=>tN.rsqrt),s.export(r,"scalar",()=>tE.scalar),s.export(r,"selu",()=>tF.selu),s.export(r,"separableConv2d",()=>tA.separableConv2d),s.export(r,"setdiff1dAsync",()=>tR.setdiff1dAsync),s.export(r,"sigmoid",()=>tP.sigmoid),s.export(r,"sign",()=>t$.sign),s.export(r,"sin",()=>tO.sin),s.export(r,"sinh",()=>tD.sinh),s.export(r,"slice",()=>tM.slice),s.export(r,"slice1d",()=>tB.slice1d),s.export(r,"slice2d",()=>tG.slice2d),s.export(r,"slice3d",()=>tV.slice3d),s.export(r,"slice4d",()=>tL.slice4d),s.export(r,"softmax",()=>tz.softmax),s.export(r,"softplus",()=>tU.softplus),s.export(r,"spaceToBatchND",()=>tW.spaceToBatchND),s.export(r,"fft",()=>tq.fft),s.export(r,"ifft",()=>tH.ifft),s.export(r,"irfft",()=>tK.irfft),s.export(r,"rfft",()=>tX.rfft),s.export(r,"split",()=>tZ.split),s.export(r,"sqrt",()=>tY.sqrt),s.export(r,"square",()=>tQ.square),s.export(r,"squaredDifference",()=>tJ.squaredDifference),s.export(r,"squeeze",()=>t0.squeeze),s.export(r,"stack",()=>t1.stack),s.export(r,"step",()=>t2.step),s.export(r,"stridedSlice",()=>t3.stridedSlice),s.export(r,"sub",()=>t6.sub),s.export(r,"sum",()=>t4.sum),s.export(r,"tan",()=>t5.tan),s.export(r,"tanh",()=>t8.tanh),s.export(r,"tensor",()=>t9.tensor),s.export(r,"tensor1d",()=>t7.tensor1d),s.export(r,"tensor2d",()=>re.tensor2d),s.export(r,"tensor3d",()=>rt.tensor3d),s.export(r,"tensor4d",()=>rr.tensor4d),s.export(r,"tensor5d",()=>rn.tensor5d),s.export(r,"tensor6d",()=>rs.tensor6d),s.export(r,"tensorScatterUpdate",()=>ra.tensorScatterUpdate),s.export(r,"tile",()=>ro.tile),s.export(r,"topk",()=>rl.topk),s.export(r,"truncatedNormal",()=>ri.truncatedNormal),s.export(r,"unique",()=>rp.unique),s.export(r,"unsortedSegmentSum",()=>ru.unsortedSegmentSum),s.export(r,"unstack",()=>rc.unstack),s.export(r,"upperBound",()=>rd.upperBound),s.export(r,"variable",()=>rf.variable),s.export(r,"where",()=>rm.where),s.export(r,"whereAsync",()=>rh.whereAsync),s.export(r,"zeros",()=>rg.zeros),s.export(r,"zerosLike",()=>rx.zerosLike),s.export(r,"op",()=>rN.op),s.export(r,"OP_SCOPE_SUFFIX",()=>rN.OP_SCOPE_SUFFIX),s.export(r,"image",()=>ni),s.export(r,"linalg",()=>np),s.export(r,"losses",()=>nu),s.export(r,"spectral",()=>no),s.export(r,"fused",()=>rE),s.export(r,"signal",()=>nl),s.export(r,"sparse",()=>nc),s.export(r,"string",()=>nd);var a=e("./abs"),o=e("./acos"),l=e("./acosh"),i=e("./add"),p=e("./add_n"),u=e("./all"),c=e("./any"),d=e("./arg_max"),f=e("./arg_min"),m=e("./asin"),h=e("./asinh"),g=e("./atan"),x=e("./atan2"),y=e("./atanh"),v=e("./avg_pool"),b=e("./avg_pool_3d"),k=e("./basic_lstm_cell"),_=e("./batch_to_space_nd"),I=e("./batchnorm"),j=e("./batchnorm2d"),w=e("./batchnorm3d"),T=e("./batchnorm4d"),S=e("./bincount"),C=e("./bitwise_and"),N=e("./broadcast_args"),E=e("./broadcast_to"),F=e("./buffer"),A=e("./cast"),R=e("./ceil"),P=e("./clip_by_value"),$=e("./clone"),O=e("./complex"),D=e("./concat"),M=e("./concat_1d"),B=e("./concat_2d"),G=e("./concat_3d"),V=e("./concat_4d"),L=e("./conv1d"),z=e("./conv2d"),U=e("./conv2d_transpose"),W=e("./conv3d"),q=e("./conv3d_transpose"),H=e("./cos"),K=e("./cosh"),X=e("./cumprod"),Z=e("./cumsum"),Y=e("./dense_bincount"),Q=e("./depth_to_space"),J=e("./depthwise_conv2d"),ee=e("./diag"),et=e("./dilation2d"),er=e("./div"),en=e("./div_no_nan"),es=e("./dot"),ea=e("./einsum"),eo=e("./elu"),el=e("./ensure_shape"),ei=e("./equal"),ep=e("./erf"),eu=e("./euclidean_norm"),ec=e("./exp"),ed=e("./expand_dims"),ef=e("./expm1"),em=e("./eye"),eh=e("./fill"),eg=e("./floor"),ex=e("./floorDiv"),ey=e("./gather"),ev=e("./greater"),eb=e("./greater_equal"),ek=e("./imag"),e_=e("./is_finite"),eI=e("./is_inf"),ej=e("./is_nan"),ew=e("./leaky_relu"),eT=e("./less"),eS=e("./less_equal"),eC=e("./linspace"),eN=e("./local_response_normalization"),eE=e("./log"),eF=e("./log1p"),eA=e("./log_sigmoid"),eR=e("./log_softmax"),eP=e("./log_sum_exp"),e$=e("./logical_and"),eO=e("./logical_not"),eD=e("./logical_or"),eM=e("./logical_xor"),eB=e("./lower_bound"),eG=e("./mat_mul"),eV=e("./max"),eL=e("./max_pool"),ez=e("./max_pool_3d"),eU=e("./max_pool_with_argmax"),eW=e("./maximum"),eq=e("./mean"),eH=e("./meshgrid"),eK=e("./min"),eX=e("./minimum"),eZ=e("./mirror_pad"),eY=e("./mod"),eQ=e("./moments"),eJ=e("./mul"),e0=e("./multi_rnn_cell"),e1=e("./multinomial"),e2=e("./neg"),e3=e("./not_equal"),e6=e("./one_hot"),e4=e("./ones"),e5=e("./ones_like"),e8=e("./outer_product"),e9=e("./pad"),e7=e("./pad1d"),te=e("./pad2d"),tt=e("./pad3d"),tr=e("./pad4d"),tn=e("./pool"),ts=e("./pow"),ta=e("./prelu"),to=e("./print"),tl=e("./prod"),ti=e("./ragged_gather"),tp=e("./ragged_range"),tu=e("./ragged_tensor_to_tensor"),tc=e("./rand"),td=e("./random_gamma"),tf=e("./random_normal"),tm=e("./random_standard_normal"),th=e("./random_uniform"),tg=e("./random_uniform_int"),tx=e("./range"),ty=e("./real"),tv=e("./reciprocal"),tb=e("./relu"),tk=e("./relu6"),t_=e("./reshape"),tI=e("./reverse"),tj=e("./reverse_1d"),tw=e("./reverse_2d"),tT=e("./reverse_3d"),tS=e("./reverse_4d"),tC=e("./round"),tN=e("./rsqrt"),tE=e("./scalar"),tF=e("./selu"),tA=e("./separable_conv2d"),tR=e("./setdiff1d_async"),tP=e("./sigmoid"),t$=e("./sign"),tO=e("./sin"),tD=e("./sinh"),tM=e("./slice"),tB=e("./slice1d"),tG=e("./slice2d"),tV=e("./slice3d"),tL=e("./slice4d"),tz=e("./softmax"),tU=e("./softplus"),tW=e("./space_to_batch_nd"),tq=e("./spectral/fft"),tH=e("./spectral/ifft"),tK=e("./spectral/irfft"),tX=e("./spectral/rfft"),tZ=e("./split"),tY=e("./sqrt"),tQ=e("./square"),tJ=e("./squared_difference"),t0=e("./squeeze"),t1=e("./stack"),t2=e("./step"),t3=e("./strided_slice"),t6=e("./sub"),t4=e("./sum"),t5=e("./tan"),t8=e("./tanh"),t9=e("./tensor"),t7=e("./tensor1d"),re=e("./tensor2d"),rt=e("./tensor3d"),rr=e("./tensor4d"),rn=e("./tensor5d"),rs=e("./tensor6d"),ra=e("./tensor_scatter_update"),ro=e("./tile"),rl=e("./topk"),ri=e("./truncated_normal"),rp=e("./unique"),ru=e("./unsorted_segment_sum"),rc=e("./unstack"),rd=e("./upper_bound"),rf=e("./variable"),rm=e("./where"),rh=e("./where_async"),rg=e("./zeros"),rx=e("./zeros_like"),ry=e("./boolean_mask");s.exportAll(ry,r);var rv=e("./transpose");s.exportAll(rv,r);var rb=e("./norm");s.exportAll(rb,r);var rk=e("./moving_average");s.exportAll(rk,r);var r_=e("./scatter_nd");s.exportAll(r_,r);var rI=e("./search_sorted");s.exportAll(rI,r);var rj=e("./sparse_to_dense");s.exportAll(rj,r);var rw=e("./gather_nd");s.exportAll(rw,r);var rT=e("./dropout");s.exportAll(rT,r);var rS=e("./signal_ops_util");s.exportAll(rS,r);var rC=e("./in_top_k");s.exportAll(rC,r);var rN=e("./operation"),rE=e("./fused_ops"),rF=e("./signal/hamming_window"),rA=e("./signal/hann_window"),rR=e("./signal/frame"),rP=e("./signal/stft"),r$=e("./image/crop_and_resize"),rO=e("./image/flip_left_right"),rD=e("./image/grayscale_to_rgb"),rM=e("./image/rgb_to_grayscale"),rB=e("./image/rotate_with_offset"),rG=e("./image/non_max_suppression"),rV=e("./image/non_max_suppression_async"),rL=e("./image/non_max_suppression_with_score"),rz=e("./image/non_max_suppression_with_score_async"),rU=e("./image/non_max_suppression_padded"),rW=e("./image/non_max_suppression_padded_async"),rq=e("./image/resize_bilinear"),rH=e("./image/resize_nearest_neighbor"),rK=e("./image/threshold"),rX=e("./image/transform"),rZ=e("./linalg/band_part"),rY=e("./linalg/gram_schmidt"),rQ=e("./linalg/qr"),rJ=e("./losses/absolute_difference"),r0=e("./losses/compute_weighted_loss"),r1=e("./losses/cosine_distance"),r2=e("./losses/hinge_loss"),r3=e("./losses/huber_loss"),r6=e("./losses/log_loss"),r4=e("./losses/mean_squared_error"),r5=e("./losses/sigmoid_cross_entropy"),r8=e("./losses/softmax_cross_entropy"),r9=e("./sparse/sparse_fill_empty_rows"),r7=e("./sparse/sparse_reshape"),ne=e("./sparse/sparse_segment_mean"),nt=e("./sparse/sparse_segment_sum"),nr=e("./string/string_n_grams"),nn=e("./string/string_split"),ns=e("./string/string_to_hash_bucket_fast"),na=e("./string/static_regex_replace");let no={fft:tq.fft,ifft:tH.ifft,rfft:tX.rfft,irfft:tK.irfft},nl={hammingWindow:rF.hammingWindow,hannWindow:rA.hannWindow,frame:rR.frame,stft:rP.stft},ni={flipLeftRight:rO.flipLeftRight,grayscaleToRGB:rD.grayscaleToRGB,resizeNearestNeighbor:rH.resizeNearestNeighbor,resizeBilinear:rq.resizeBilinear,rgbToGrayscale:rM.rgbToGrayscale,rotateWithOffset:rB.rotateWithOffset,cropAndResize:r$.cropAndResize,nonMaxSuppression:rG.nonMaxSuppression,nonMaxSuppressionAsync:rV.nonMaxSuppressionAsync,nonMaxSuppressionWithScore:rL.nonMaxSuppressionWithScore,nonMaxSuppressionWithScoreAsync:rz.nonMaxSuppressionWithScoreAsync,nonMaxSuppressionPadded:rU.nonMaxSuppressionPadded,nonMaxSuppressionPaddedAsync:rW.nonMaxSuppressionPaddedAsync,threshold:rK.threshold,transform:rX.transform},np={bandPart:rZ.bandPart,gramSchmidt:rY.gramSchmidt,qr:rQ.qr},nu={absoluteDifference:rJ.absoluteDifference,computeWeightedLoss:r0.computeWeightedLoss,cosineDistance:r1.cosineDistance,hingeLoss:r2.hingeLoss,huberLoss:r3.huberLoss,logLoss:r6.logLoss,meanSquaredError:r4.meanSquaredError,sigmoidCrossEntropy:r5.sigmoidCrossEntropy,softmaxCrossEntropy:r8.softmaxCrossEntropy},nc={sparseFillEmptyRows:r9.sparseFillEmptyRows,sparseReshape:r7.sparseReshape,sparseSegmentMean:ne.sparseSegmentMean,sparseSegmentSum:nt.sparseSegmentSum},nd={stringNGrams:nr.stringNGrams,stringSplit:nn.stringSplit,stringToHashBucketFast:ns.stringToHashBucketFast,staticRegexReplace:na.staticRegexReplace}},{"./abs":"khyDh","./acos":"4iyrf","./acosh":"erF56","./add":"6AYbH","./add_n":"6aA12","./all":"k9pKe","./any":"kBRRI","./arg_max":"hw5Q5","./arg_min":"4SqNy","./asin":"9BXnB","./asinh":"66K79","./atan":"3pRyl","./atan2":"iZy7G","./atanh":"hjyfk","./avg_pool":"fD5Xs","./avg_pool_3d":"2dGNg","./basic_lstm_cell":"kugxL","./batch_to_space_nd":"bdBVu","./batchnorm":"8P8kQ","./batchnorm2d":"7n9aP","./batchnorm3d":"5u3t2","./batchnorm4d":"h0H4V","./bincount":"gV0pt","./bitwise_and":"hQztO","./broadcast_args":"kesHt","./broadcast_to":"3ybay","./buffer":"avZau","./cast":"Qs5mF","./ceil":"9mzTI","./clip_by_value":"c5XEh","./clone":"jyVCU","./complex":"5l7Tr","./concat":"fUcw1","./concat_1d":"6Sscv","./concat_2d":"gyHEd","./concat_3d":"bsQ4C","./concat_4d":"2hiy1","./conv1d":"ldpLm","./conv2d":"15Bfz","./conv2d_transpose":"3bwnS","./conv3d":"74gae","./conv3d_transpose":"lwUQU","./cos":"7zvqe","./cosh":"kmlj1","./cumprod":"12Bd0","./cumsum":"9P2cw","./dense_bincount":"8pzqI","./depth_to_space":"jZPRC","./depthwise_conv2d":"6xOgC","./diag":"coaUg","./dilation2d":"iGaxm","./div":"j6hSn","./div_no_nan":"huIPM","./dot":"lxMTg","./einsum":"lgdpC","./elu":"ezxha","./ensure_shape":"1zKhD","./equal":"84KZX","./erf":"2tSuO","./euclidean_norm":"iJu0a","./exp":"94rBB","./expand_dims":"kvdc2","./expm1":"evEIT","./eye":"9xEvl","./fill":"5rPaY","./floor":"gaOdC","./floorDiv":"2rEA7","./gather":"3huLg","./greater":"g5fgq","./greater_equal":"fcGF0","./imag":"jcbh1","./is_finite":"bXN0L","./is_inf":"e4tNF","./is_nan":"lph9v","./leaky_relu":"6T6LU","./less":"1aWGo","./less_equal":"5ke7N","./linspace":"dKJnu","./local_response_normalization":"hR6bd","./log":"l513F","./log1p":"a4Qz0","./log_sigmoid":"23qLw","./log_softmax":"kQZHB","./log_sum_exp":"4BsSl","./logical_and":"jiW04","./logical_not":"7ajZc","./logical_or":"hFZrP","./logical_xor":"4wHdx","./lower_bound":"jGPDp","./mat_mul":"jyMFR","./max":"aFVk6","./max_pool":"9LbxM","./max_pool_3d":"9cwzP","./max_pool_with_argmax":"i3Jjn","./maximum":"cIfAc","./mean":"d8WjP","./meshgrid":"4LQRI","./min":"72kvU","./minimum":"1R0ab","./mirror_pad":"czsCC","./mod":"c0dVE","./moments":"d9D4X","./mul":"6u9Cs","./multi_rnn_cell":"1pZrr","./multinomial":"5zw9P","./neg":"2tLkY","./not_equal":"XasxQ","./one_hot":"hf0YM","./ones":"bmJ6z","./ones_like":"fvkRO","./outer_product":"feQQ6","./pad":"2aeXI","./pad1d":"bhmnr","./pad2d":"aoBdI","./pad3d":"3lGIl","./pad4d":"l8Oks","./pool":"04OHO","./pow":"lnrqj","./prelu":"ez5fa","./print":"6OSja","./prod":"1jrij","./ragged_gather":"hVQzl","./ragged_range":"3z4Ey","./ragged_tensor_to_tensor":"kAXzM","./rand":"15PBm","./random_gamma":"jQ3xw","./random_normal":"fpVWB","./random_standard_normal":"88IkR","./random_uniform":"4ABbh","./random_uniform_int":"1wcUn","./range":"5csZz","./real":"hmpeq","./reciprocal":"4XEJf","./relu":"7eL1z","./relu6":"9s4es","./reshape":"i9E3v","./reverse":"5pJzh","./reverse_1d":"5ptuz","./reverse_2d":"dMjhv","./reverse_3d":"jpwxB","./reverse_4d":"6ZG62","./round":"aJvvJ","./rsqrt":"abSmD","./scalar":"fhZsH","./selu":"7vUht","./separable_conv2d":"957BD","./setdiff1d_async":"XJY7f","./sigmoid":"hx1GK","./sign":"l1pAQ","./sin":"85oH9","./sinh":"10dLP","./slice":"2W6nS","./slice1d":"1cBaA","./slice2d":"lA442","./slice3d":"gI0CQ","./slice4d":"jmw6U","./softmax":"eLr7q","./softplus":"iwrNh","./space_to_batch_nd":"joznx","./spectral/fft":"J28Me","./spectral/ifft":"gTvtb","./spectral/irfft":"hpn1V","./spectral/rfft":"jGVbe","./split":"hosKB","./sqrt":"DBh2a","./square":"iewSj","./squared_difference":"93Vr6","./squeeze":"36eHf","./stack":"8vGzW","./step":"60OEJ","./strided_slice":"3zFFo","./sub":"1laxX","./sum":"jrqRB","./tan":"cl6hU","./tanh":"3MwtF","./tensor":"dTxMo","./tensor1d":"lb2KH","./tensor2d":"6MVsa","./tensor3d":"4mTWV","./tensor4d":"kOCb5","./tensor5d":"kGPFM","./tensor6d":"5tzeG","./tensor_scatter_update":"hRVwH","./tile":"6j23e","./topk":"3KB71","./truncated_normal":"kaPZh","./unique":"6dZfu","./unsorted_segment_sum":"hY4In","./unstack":"bx2AH","./upper_bound":"kaaHf","./variable":"4t17o","./where":"83Uoy","./where_async":"de05e","./zeros":"3kicB","./zeros_like":"gLLzC","./boolean_mask":"cgVEY","./transpose":"2Qc4K","./norm":"7eGDB","./moving_average":"kasEV","./scatter_nd":"gaq52","./search_sorted":"cZ6pF","./sparse_to_dense":"40IS2","./gather_nd":"kKwqz","./dropout":"brhWc","./signal_ops_util":"hYHLJ","./in_top_k":"62nZ7","./operation":"2qT2c","./fused_ops":"b3kjm","./signal/hamming_window":"fno0k","./signal/hann_window":"deHg2","./signal/frame":"j2XAo","./signal/stft":"k7vk4","./image/crop_and_resize":"7AQLu","./image/flip_left_right":"5Eqik","./image/grayscale_to_rgb":"fIrf8","./image/rgb_to_grayscale":"iEOlG","./image/rotate_with_offset":"60LYc","./image/non_max_suppression":"3qilh","./image/non_max_suppression_async":"i3qOd","./image/non_max_suppression_with_score":"iYrlU","./image/non_max_suppression_with_score_async":"9RLbC","./image/non_max_suppression_padded":"2gDAP","./image/non_max_suppression_padded_async":"eqpkU","./image/resize_bilinear":"3jISr","./image/resize_nearest_neighbor":"jn5ng","./image/threshold":"hpNz3","./image/transform":"hllna","./linalg/band_part":"4lUdG","./linalg/gram_schmidt":"9VaJt","./linalg/qr":"3c320","./losses/absolute_difference":"jivcM","./losses/compute_weighted_loss":"bIp2c","./losses/cosine_distance":"2WV8B","./losses/hinge_loss":"wC9ol","./losses/huber_loss":"kAn9d","./losses/log_loss":"filgm","./losses/mean_squared_error":"9fas8","./losses/sigmoid_cross_entropy":"f9i2U","./losses/softmax_cross_entropy":"foqVz","./sparse/sparse_fill_empty_rows":"eb88A","./sparse/sparse_reshape":"b9ToC","./sparse/sparse_segment_mean":"4sZ5F","./sparse/sparse_segment_sum":"2zbkY","./string/string_n_grams":"l18E4","./string/string_split":"56wZz","./string/string_to_hash_bucket_fast":"9f5Uk","./string/static_regex_replace":"bhDR4","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4iyrf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acos_:function(e){let t=(0,l.convertToTensor)(e,"x","acos");return a.ENGINE.runKernel(o.Acos,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],erF56:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({acosh_:function(e){let t=(0,l.convertToTensor)(e,"x","acosh");return a.ENGINE.runKernel(o.Acosh,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6aA12":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({addN_:function(e){i.assert(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),i.assert(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"addN")),r=t[0];return t.forEach(e=>{if(e.dtype!==r.dtype)throw Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(e=>{if(!i.arraysEqual(e.shape,r.shape))throw Error("All tensors passed to tf.addN() must have the same shape")}),a.ENGINE.runKernel(o.AddN,t)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k9pKe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({all_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","all","bool");return a.ENGINE.runKernel(o.All,{x:n},{axis:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kBRRI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({any_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","any","bool");return a.ENGINE.runKernel(o.Any,{x:n},{axis:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hw5Q5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMax_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMax");return a.ENGINE.runKernel(o.ArgMax,{x:r},{axis:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4SqNy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({argMin_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","argMin");return a.ENGINE.runKernel(o.ArgMin,{x:r},{axis:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9BXnB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asin_:function(e){let t=(0,l.convertToTensor)(e,"x","asin");return a.ENGINE.runKernel(o.Asin,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"66K79":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({asinh_:function(e){let t=(0,l.convertToTensor)(e,"x","asinh");return a.ENGINE.runKernel(o.Asinh,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3pRyl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atan_:function(e){let t=(0,l.convertToTensor)(e,"x","atan");return a.ENGINE.runKernel(o.Atan,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iZy7G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({atan2_:function(e,t){let r=(0,i.convertToTensor)(e,"a","atan2"),n=(0,i.convertToTensor)(t,"b","atan2");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Atan2,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hjyfk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({atanh_:function(e){let t=(0,l.convertToTensor)(e,"x","atanh");return a.ENGINE.runKernel(o.Atanh,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fD5Xs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./cast"),u=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool_:function(e,t,r,n,s){let c=(0,l.convertToTensor)(e,"x","avgPool","float32");i.assert(u.eitherStridesOrDilationsAreOne(r,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`);let f=c,m=!1;3===c.rank&&(m=!0,f=(0,d.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]])),i.assert(4===f.rank,()=>`Error in avgPool: x must be rank 4 but got rank ${f.rank}.`),u.checkPadOnDimRoundingMode("avgPool",n,s);let h={x:f},g=a.ENGINE.runKernel(o.AvgPool,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return(g=(0,p.cast)(g,c.dtype),m)?(0,d.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./cast":"Qs5mF","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ckBsO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeDilation2DInfo",()=>o),s.export(r,"computePool2DInfo",()=>l),s.export(r,"computePool3DInfo",()=>i),s.export(r,"computeConv2DInfo",()=>p),s.export(r,"computeConv3DInfo",()=>u),s.export(r,"computeDefaultPad",()=>c),s.export(r,"tupleValuesAreOne",()=>g),s.export(r,"eitherStridesOrDilationsAreOne",()=>x),s.export(r,"stridesOrDilationsArePositive",()=>y),s.export(r,"convertConv2DDataFormat",()=>v),s.export(r,"checkPadOnDimRoundingMode",()=>b);var a=e("../util");function o(e,t,r,n,s="NHWC",a){let l=[...t,e[3]];return p(e,l,r,a,n,null,null,v(s))}function l(e,t,r,n,s,a,o="channelsLast"){let i,[u,c]=d(t);if("channelsLast"===o)i=[u,c,e[3],e[3]];else if("channelsFirst"===o)i=[u,c,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return p(e,i,r,n,s,a,!1,o)}function i(e,t,r,n,s,a,o="NDHWC"){let l,p,[c,d,m]=f(t);if("NDHWC"===o)p="channelsLast",l=[c,d,m,e[4],e[4]];else if("NCDHW"===o)p="channelsFirst",l=[c,d,m,e[1],e[1]];else throw Error(`Unknown dataFormat ${o}`);return u(e,l,r,n,s,!1,p,a)}function p(e,t,r,n,s,a,o=!1,l="channelsLast"){let i,[u,f,g,x]=[-1,-1,-1,-1];if("channelsLast"===l)[u,f,g,x]=e;else if("channelsFirst"===l)[u,x,f,g]=e;else throw Error(`Unknown dataFormat ${l}`);let[y,v,,b]=t,[k,_]=d(r),[I,j]=d(n),w=m(y,I),T=m(v,j),{padInfo:S,outHeight:C,outWidth:N}=function(e,t,r,n,s,a,o,l,i){let p,u,d;if("number"==typeof e){var f,m;let s,o,i=0===e?"VALID":"NUMBER";p={top:e,bottom:e,left:e,right:e,type:i};let g=(f=[t,r],null==(m=e)&&(m=c(f,a,n)),s=f[0],o=f[1],[h((s-a+2*m)/n+1,l),h((o-a+2*m)/n+1,l)]);u=g[0],d=g[1]}else if("same"===e){let e=Math.max(0,((u=Math.ceil(t/n))-1)*n+a-t),l=Math.max(0,((d=Math.ceil(r/s))-1)*s+o-r),i=Math.floor(e/2),c=Math.floor(l/2);p={top:i,bottom:e-i,left:c,right:l-c,type:"SAME"}}else if("valid"===e)p={top:0,bottom:0,left:0,right:0,type:"VALID"},u=Math.ceil((t-a+1)/n),d=Math.ceil((r-o+1)/s);else if("object"==typeof e){let c="channelsLast"===i?e[1][0]:e[2][0],f="channelsLast"===i?e[1][1]:e[2][1],m="channelsLast"===i?e[2][0]:e[3][0],g="channelsLast"===i?e[2][1]:e[3][1];p={top:c,bottom:f,left:m,right:g,type:0===c&&0===f&&0===m&&0===g?"VALID":"EXPLICIT"},u=h((t-a+c+f)/n+1,l),d=h((r-o+m+g)/s+1,l)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:p,outHeight:u,outWidth:d}}(s,f,g,k,_,w,T,a,l),E=o?b*x:b;return"channelsFirst"===l?i=[u,E,C,N]:"channelsLast"===l&&(i=[u,C,N,E]),{batchSize:u,dataFormat:l,inHeight:f,inWidth:g,inChannels:x,outHeight:C,outWidth:N,outChannels:E,padInfo:S,strideHeight:k,strideWidth:_,filterHeight:y,filterWidth:v,effectiveFilterHeight:w,effectiveFilterWidth:T,dilationHeight:I,dilationWidth:j,inShape:e,outShape:i,filterShape:t}}function u(e,t,r,n,s,a=!1,o="channelsLast",l){let i,[p,d,g,x,y]=[-1,-1,-1,-1,-1];if("channelsLast"===o)[p,d,g,x,y]=e;else if("channelsFirst"===o)[p,y,d,g,x]=e;else throw Error(`Unknown dataFormat ${o}`);let[v,b,k,,_]=t,[I,j,w]=f(r),[T,S,C]=f(n),N=m(v,T),E=m(b,S),F=m(k,C),{padInfo:A,outDepth:R,outHeight:P,outWidth:$}=function(e,t,r,n,s,a,o,l,i,p,u){let d,f,m,g;if("valid"===e&&(e=0),"number"==typeof e){let x=0===e?"VALID":"NUMBER";d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:x};let y=function(e,t,r,n,s){null==n&&(n=c(e,t[0],r[0]));let a=[0,0,0,1];for(let o=0;o<3;o++)e[o]+2*n>=t[o]&&(a[o]=h((e[o]-t[o]+2*n)/r[o]+1,s));return a}([t,r,n,1],[l,i,p],[s,a,o],e,u);f=y[0],m=y[1],g=y[2]}else if("same"===e){let e=((f=Math.ceil(t/s))-1)*s+l-t,u=((m=Math.ceil(r/a))-1)*a+i-r,c=((g=Math.ceil(n/o))-1)*o+p-n,h=Math.floor(e/2),x=Math.floor(u/2),y=Math.floor(c/2);d={top:x,bottom:u-x,left:y,right:c-y,front:h,back:e-h,type:"SAME"}}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:f,outHeight:m,outWidth:g}}(s,d,g,x,I,j,w,N,E,F,l),O=a?_*y:_;return"channelsFirst"===o?i=[p,O,R,P,$]:"channelsLast"===o&&(i=[p,R,P,$,O]),{batchSize:p,dataFormat:o,inDepth:d,inHeight:g,inWidth:x,inChannels:y,outDepth:R,outHeight:P,outWidth:$,outChannels:O,padInfo:A,strideDepth:I,strideHeight:j,strideWidth:w,filterDepth:v,filterHeight:b,filterWidth:k,effectiveFilterDepth:N,effectiveFilterHeight:E,effectiveFilterWidth:F,dilationDepth:T,dilationHeight:S,dilationWidth:C,inShape:e,outShape:i,filterShape:t}}function c(e,t,r,n=1){let s=m(t,n);return Math.floor((e[0]*(r-1)-r+s)/2)}function d(e){return"number"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function f(e){return"number"==typeof e?[e,e,e]:e}function m(e,t){return t<=1?e:e+(e-1)*(t-1)}function h(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 Error(`Unknown roundingMode ${t}`)}}function g(e){let[t,r,n]=d(e);return 1===t&&1===r&&1===n}function x(e,t){return g(e)||g(t)}function y(e){return d(e).every(e=>e>0)}function v(e){if("NHWC"===e)return"channelsLast";if("NCHW"===e)return"channelsFirst";throw Error(`Unknown dataFormat ${e}`)}function b(e,t,r){if(null!=r)if("string"==typeof t)throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("number"==typeof t)a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`);else if("object"==typeof t)t.forEach(t=>{t.forEach(t=>{a.assert(a.isInt(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${r} but got pad ${t}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i9E3v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reshape_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reshape","string_or_numeric");return a.ENGINE.runKernel(o.Reshape,{x:r},{shape:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2dGNg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3d",()=>f);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./cast"),u=e("./conv_util"),c=e("./operation"),d=e("./reshape");let f=(0,c.op)({avgPool3d_:function(e,t,r,n,s,c="NDHWC"){let f=(0,l.convertToTensor)(e,"x","avgPool3d","float32"),m=f,h=!1;4===f.rank&&(h=!0,m=(0,d.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2],f.shape[3]])),i.assert(5===m.rank,()=>`Error in avgPool3d: x must be rank 5 but got rank ${m.rank}.`),i.assert("NDHWC"===c,()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${c}`),i.assert("number"==typeof r&&r>0||Array.isArray(r)&&r[0]>0&&r[1]>0&&r[2]>0,()=>`Error in avgPool3d: Stride must be > 0, but got '${r}'`),(0,u.checkPadOnDimRoundingMode)("avgPool3d",n,s);let g={x:m},x=a.ENGINE.runKernel(o.AvgPool3D,g,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:c});return(x=(0,p.cast)(x,m.dtype),h)?(0,d.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./cast":"Qs5mF","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kugxL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"basicLSTMCell",()=>m);var a=e("../tensor_util_env"),o=e("./add"),l=e("./concat"),i=e("./mat_mul"),p=e("./mul"),u=e("./operation"),c=e("./sigmoid"),d=e("./slice"),f=e("./tanh");let m=(0,u.op)({basicLSTMCell_:function(e,t,r,n,s,u){let m=(0,a.convertToTensor)(e,"forgetBias","basicLSTMCell"),h=(0,a.convertToTensor)(t,"lstmKernel","basicLSTMCell"),g=(0,a.convertToTensor)(r,"lstmBias","basicLSTMCell"),x=(0,a.convertToTensor)(n,"data","basicLSTMCell"),y=(0,a.convertToTensor)(s,"c","basicLSTMCell"),v=(0,a.convertToTensor)(u,"h","basicLSTMCell"),b=(0,l.concat)([x,v],1),k=(0,i.matMul)(b,h),_=(0,o.add)(k,g),I=_.shape[0],j=_.shape[1]/4,w=[I,j],T=(0,d.slice)(_,[0,0],w),S=(0,d.slice)(_,[0,j],w),C=(0,d.slice)(_,[0,2*j],w),N=(0,d.slice)(_,[0,3*j],w),E=(0,o.add)((0,p.mul)((0,c.sigmoid)(T),(0,f.tanh)(S)),(0,p.mul)(y,(0,c.sigmoid)((0,o.add)(m,C)))),F=(0,p.mul)((0,f.tanh)(E),(0,c.sigmoid)(N));return[E,F]}})},{"../tensor_util_env":"feaHs","./add":"6AYbH","./concat":"fUcw1","./mat_mul":"jyMFR","./mul":"6u9Cs","./operation":"2qT2c","./sigmoid":"hx1GK","./slice":"2W6nS","./tanh":"3MwtF","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fUcw1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./clone");let u=(0,e("./operation").op)({concat_:function(e,t=0){(0,i.assert)(e.length>=1,()=>"Pass at least one tensor to concat");let r=(0,l.convertToTensorArray)(e,"tensors","concat","string_or_numeric");return("complex64"===r[0].dtype&&r.forEach(e=>{if("complex64"!==e.dtype)throw Error(`Cannot concatenate complex64 tensors with a tensor with dtype ${e.dtype}. `)}),1===r.length)?(0,p.clone)(r[0]):a.ENGINE.runKernel(o.Concat,r,{axis:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"F0lVc","./clone":"jyVCU","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hx1GK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sigmoid_:function(e){let t=(0,l.convertToTensor)(e,"x","sigmoid","float32");return a.ENGINE.runKernel(o.Sigmoid,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2W6nS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({slice_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","slice","string_or_numeric");if(0===n.rank)throw Error("Slicing scalar is not possible");return a.ENGINE.runKernel(o.Slice,{x:n},{begin:t,size:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3MwtF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tanh_:function(e){let t=(0,l.convertToTensor)(e,"x","tanh","float32");return a.ENGINE.runKernel(o.Tanh,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bdBVu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({batchToSpaceND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","batchToSpaceND"),s=t.reduce((e,t)=>e*t);return i.assert(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),i.assert(r.length===t.length,()=>`crops.length is ${r.length} but should be equal to blockShape.length ${t.length}`),i.assert(n.shape[0]%s==0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${s}`),a.ENGINE.runKernel(o.BatchToSpaceND,{x:n},{blockShape:t,crops:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8P8kQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./batchnorm_util"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({batchNorm_:function(e,t,r,n,s,u){let d,f;null==u&&(u=.001);let m=(0,l.convertToTensor)(e,"x","batchNorm"),h=(0,l.convertToTensor)(t,"mean","batchNorm"),g=(0,l.convertToTensor)(r,"variance","batchNorm");null!=s&&(d=(0,l.convertToTensor)(s,"scale","batchNorm")),null!=n&&(f=(0,l.convertToTensor)(n,"offset","batchNorm")),i.assert(h.rank===g.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),i.assert(null==f||h.rank===f.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),i.assert(null==d||h.rank===d.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let x={x:(0,p.xAs4D)(m),scale:d,offset:f,mean:h,variance:g},y={varianceEpsilon:u},v=a.ENGINE.runKernel(o.FusedBatchNorm,x,y);return(0,c.reshape)(v,m.shape)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./batchnorm_util":"9ADv6","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9ADv6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"xAs4D",()=>o);var a=e("./reshape");function o(e){return 0===e.rank||1===e.rank?(0,a.reshape)(e,[1,1,1,e.size]):2===e.rank?(0,a.reshape)(e,[1,1,e.shape[0],e.shape[1]]):3===e.rank?(0,a.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}},{"./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7n9aP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm2d_:function(e,t,r,n,s,i){let p,u,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(p=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(u=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(2===c.rank,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${c.rank}.`),o.assert(2===d.rank||1===d.rank,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${d.rank}.`),o.assert(2===f.rank||1===f.rank,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${f.rank}.`),null!=p&&o.assert(2===p.rank||1===p.rank,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${p.rank}.`),null!=u&&o.assert(2===u.rank||1===u.rank,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${u.rank}.`),(0,l.batchNorm)(c,d,f,u,p,i)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./batchnorm":"8P8kQ","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5u3t2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm3d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm3d_:function(e,t,r,n,s,i){let p,u,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(p=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(u=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(3===c.rank,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${c.rank}.`),o.assert(3===d.rank||1===d.rank,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${d.rank}.`),o.assert(3===f.rank||1===f.rank,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${f.rank}.`),null!=p&&o.assert(3===p.rank||1===p.rank,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${p.rank}.`),null!=u&&o.assert(3===u.rank||1===u.rank,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${u.rank}.`),(0,l.batchNorm)(c,d,f,u,p,i)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./batchnorm":"8P8kQ","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h0H4V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./batchnorm");let i=(0,e("./operation").op)({batchNorm4d_:function(e,t,r,n,s,i){let p,u,c=(0,a.convertToTensor)(e,"x","batchNorm"),d=(0,a.convertToTensor)(t,"mean","batchNorm"),f=(0,a.convertToTensor)(r,"variance","batchNorm");return null!=s&&(p=(0,a.convertToTensor)(s,"scale","batchNorm")),null!=n&&(u=(0,a.convertToTensor)(n,"offset","batchNorm")),o.assert(4===c.rank,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${c.rank}.`),o.assert(4===d.rank||1===d.rank,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${d.rank}.`),o.assert(4===f.rank||1===f.rank,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${f.rank}.`),null!=p&&o.assert(4===p.rank||1===p.rank,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${p.rank}.`),null!=u&&o.assert(4===u.rank||1===u.rank,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${u.rank}.`),(0,l.batchNorm)(c,d,f,u,p,i)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./batchnorm":"8P8kQ","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gV0pt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({bincount_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","bincount"),s=(0,l.convertToTensor)(t,"weights","bincount");return i.assert("int32"===n.dtype,()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(s.size===n.size||0===s.size,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${s.shape}.`),a.ENGINE.runKernel(o.Bincount,{x:n,weights:s},{size:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hQztO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAnd",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base");let p=(0,e("./operation").op)({bitwiseAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"x","bitwiseAnd"),n=(0,l.convertToTensor)(t,"y","bitwiseAnd");if(!(0,i.arraysEqual)(r.shape,n.shape))throw Error(`BitwiseAnd: Tensors must have the same shape. x: ${r.shape}, y: ${n.shape}`);if("int32"!==r.dtype||"int32"!==n.dtype)throw Error(`BitwiseAnd: Only supports 'int32' values in tensor, found type of x: ${r.dtype} and type of y: ${n.dtype}`);return a.ENGINE.runKernel(o.BitwiseAnd,{a:r,b:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util_base":"F0lVc","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kesHt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({broadcastArgs_:function(e,t){let r=(0,l.convertToTensor)(e,"s0","broadcastArgs","int32"),n=(0,l.convertToTensor)(t,"s1","broadcastArgs","int32");if(1!==r.rank)throw Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${r.rank}`);if(1!==n.rank)throw Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);return a.ENGINE.runKernel(o.BroadcastArgs,{s0:r,s1:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3ybay":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastTo",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),p=e("./clone"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({broadcastTo_:function(e,t){let r=(0,l.convertToTensor)(e,"broadcastTo","x"),n=r.shape;if((0,i.assertNonNegativeIntegerDimensions)(t),t.length<r.rank)throw Error(`broadcastTo(): shape.length=${t.length} < input.rank=${r.rank}.`);if(t.length>r.rank){let e=r.shape.slice();for(;e.length<t.length;)e.unshift(1);r=(0,c.reshape)(r,e)}let s=r.shape,u=Array.from(t);for(let e=t.length-1;e>=0;e--)if(s[e]===t[e])u[e]=1;else if(1!==r.shape[e])throw Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(0===u.map((e,t)=>e>1?t:-1).filter(e=>e>=0).length)return(0,p.clone)(r);let d={x:r};return a.ENGINE.runKernel(o.Tile,d,{reps:u})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util_base":"F0lVc","./clone":"jyVCU","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9mzTI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({ceil_:function(e){let t=(0,l.convertToTensor)(e,"x","ceil","float32");return a.ENGINE.runKernel(o.Ceil,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],c5XEh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./fill");let u=(0,e("./operation").op)({clipByValue_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","clipByValue");return(i.assert(t<=r,()=>`Error in clip: min (${t}) must be less than or equal to max (${r}).`),t===r)?(0,p.fill)(n.shape,t,n.dtype):a.ENGINE.runKernel(o.ClipByValue,{x:n},{clipValueMin:t,clipValueMax:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./fill":"5rPaY","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6Sscv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat1d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat1d_:function(e){return(0,a.concat)(e,0)}})},{"./concat":"fUcw1","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gyHEd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat2d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat2d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"fUcw1","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bsQ4C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat3d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat3d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"fUcw1","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2hiy1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat4d",()=>o);var a=e("./concat");let o=(0,e("./operation").op)({concat4d_:function(e,t){return(0,a.concat)(e,t)}})},{"./concat":"fUcw1","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ldpLm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv1d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./conv_util"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({conv1d_:function(e,t,r,n,s="NWC",p=1,c){let d=(0,a.convertToTensor)(e,"x","conv1d"),f=(0,a.convertToTensor)(t,"filter","conv1d"),m=d,h=!1;2===d.rank&&(h=!0,m=(0,u.reshape)(d,[1,d.shape[0],d.shape[1]])),o.assert(3===m.rank,()=>`Error in conv1d: input must be rank 3, but got rank ${m.rank}.`),o.assert(3===f.rank,()=>`Error in conv1d: filter must be rank 3, but got rank ${f.rank}.`),i.checkPadOnDimRoundingMode("conv1d",n,c),o.assert(m.shape[2]===f.shape[1],()=>`Error in conv1d: depth of input (${m.shape[2]}) must match input depth for filter ${f.shape[1]}.`),o.assert(i.eitherStridesOrDilationsAreOne(r,p),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${r} and dilation '${p}'`),o.assert(i.stridesOrDilationsArePositive(p),()=>"Error in conv1D: Dilated rates should be larger than 0."),o.assert(i.stridesOrDilationsArePositive(r),()=>"Error in conv1D: Stride should be larger than 0."),o.assert("NWC"===s,()=>`Error in conv1d: got dataFormat of ${s} but only NWC is currently supported.`);let g=(0,u.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]]),x=(0,u.reshape)(m,[m.shape[0],1,m.shape[1],m.shape[2]]),y=(0,l.conv2d)(x,g,[1,r],n,"NHWC",[1,p],c);return h?(0,u.reshape)(y,[y.shape[2],y.shape[3]]):(0,u.reshape)(y,[y.shape[0],y.shape[2],y.shape[3]])}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./conv2d":"15Bfz","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"15Bfz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./conv_util"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({conv2d_:function(e,t,r,n,s="NHWC",u=[1,1],d){let f=(0,l.convertToTensor)(e,"x","conv2d","float32"),m=(0,l.convertToTensor)(t,"filter","conv2d","float32"),h=f,g=!1;3===f.rank&&(g=!0,h=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===h.rank,()=>`Error in conv2d: input must be rank 4, but got rank ${h.rank}.`),i.assert(4===m.rank,()=>`Error in conv2d: filter must be rank 4, but got rank ${m.rank}.`),p.checkPadOnDimRoundingMode("conv2d",n,d);let x="NHWC"===s?h.shape[3]:h.shape[1];i.assert(x===m.shape[2],()=>`Error in conv2d: depth of input (${x}) must match input depth for filter ${m.shape[2]}.`),i.assert(p.eitherStridesOrDilationsAreOne(r,u),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${u}'`),i.assert(p.stridesOrDilationsArePositive(u),()=>"Error in conv2D: Dilated rates should be larger than 0."),i.assert(p.stridesOrDilationsArePositive(r),()=>"Error in conv2D: Strides should be larger than 0.");let y={x:h,filter:m},v=a.ENGINE.runKernel(o.Conv2D,y,{strides:r,pad:n,dataFormat:s,dilations:u,dimRoundingMode:d});return g?(0,c.reshape)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3bwnS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv2d_backprop_input");let l=(0,e("./operation").op)({conv2dTranspose_:function(e,t,r,n,s,l){let i=(0,a.convertToTensor)(e,"x","conv2dTranspose"),p=(0,a.convertToTensor)(t,"filter","conv2dTranspose");return(0,o.conv2DBackpropInput)(r,i,p,n,s,"NHWC",l)}})},{"../tensor_util_env":"feaHs","./conv2d_backprop_input":"jycaD","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jycaD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({conv2DBackpropInput_:function(e,t,r,n,s,p="NHWC",c){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let d=e,f=t,m=!1;3===t.rank&&(m=!0,f=(0,u.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]),d=[1,e[0],e[1],e[2]]),l.assert(4===d.length,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${d.length}.`),l.assert(4===f.rank,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${f.rank}`),l.assert(4===r.rank,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${r.rank}`);let h="NHWC"===p?d[3]:d[1],g="NHWC"===p?f.shape[3]:f.shape[1];l.assert(h===r.shape[2],()=>`Error in conv2dDerInput: depth of input (${h}) must match input depth for filter ${r.shape[2]}.`),l.assert(g===r.shape[3],()=>`Error in conv2dDerInput: depth of output (${g}) must match output depth for filter ${r.shape[3]}.`),i.checkPadOnDimRoundingMode("conv2dDerInput",s,c);let x={dy:f,filter:r},y={strides:n,pad:s,dataFormat:p,dimRoundingMode:c,inputShape:d},v=a.ENGINE.runKernel(o.Conv2DBackpropInput,x,y);return m?(0,u.reshape)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"74gae":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./conv_util"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({conv3d_:function(e,t,r,n,s="NDHWC",u=[1,1,1]){let d=(0,l.convertToTensor)(e,"x","conv3d"),f=(0,l.convertToTensor)(t,"filter","conv3d"),m=d,h=!1;4===d.rank&&(h=!0,m=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===m.rank,()=>`Error in conv3d: input must be rank 5, but got rank ${m.rank}.`),i.assert(5===f.rank,()=>`Error in conv3d: filter must be rank 5, but got rank ${f.rank}.`),i.assert(m.shape[4]===f.shape[3],()=>`Error in conv3d: depth of input (${m.shape[4]}) must match input depth for filter ${f.shape[3]}.`),i.assert((0,p.eitherStridesOrDilationsAreOne)(r,u),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${r} and dilations '${u}'`),i.assert("NDHWC"===s,()=>`Error in conv3d: got dataFormat of ${s} but only NDHWC is currently supported.`),i.assert((0,p.stridesOrDilationsArePositive)(u),()=>"Error in conv3D: Dilated rates should be larger than 0."),i.assert((0,p.stridesOrDilationsArePositive)(r),()=>"Error in conv3D: Strides should be larger than 0.");let g={x:m,filter:f},x=a.ENGINE.runKernel(o.Conv3D,g,{strides:r,pad:n,dataFormat:s,dilations:u});return h?(0,c.reshape)(x,[x.shape[1],x.shape[2],x.shape[3],x.shape[4]]):x}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lwUQU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3dTranspose",()=>l);var a=e("../tensor_util_env"),o=e("./conv3d_backprop_input");let l=(0,e("./operation").op)({conv3dTranspose_:function(e,t,r,n,s){let l=(0,a.convertToTensor)(e,"x","conv3dTranspose"),i=(0,a.convertToTensor)(t,"filter","conv3dTranspose");return(0,o.conv3DBackpropInput)(r,l,i,n,s)}})},{"../tensor_util_env":"feaHs","./conv3d_backprop_input":"d4Hv4","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],d4Hv4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./operation"),p=e("./reshape");let u=(0,i.op)({conv3DBackpropInput_:function(e,t,r,n,s){l.assert(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let i=e,u=t,c=!1;4===t.rank&&(c=!0,u=(0,p.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),i=[1,e[0],e[1],e[2],e[3]]);let d=i[4],f=u.shape[4];l.assert(5===i.length,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${i.length}.`),l.assert(5===u.rank,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${u.rank}`),l.assert(5===r.rank,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${r.rank}`),l.assert(d===r.shape[3],()=>`Error in conv3dDerInput: depth of input (${d}) must match input depth for filter ${r.shape[3]}.`),l.assert(f===r.shape[4],()=>`Error in conv3dDerInput: depth of output (${f}) must match output depth for filter ${r.shape[4]}.`);let m={dy:u,filter:r},h={pad:s,strides:n,inputShape:i},g=a.ENGINE.runKernel(o.Conv3DBackpropInputV2,m,h);return c?(0,p.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../util":"98aA6","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7zvqe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cos_:function(e){let t=(0,l.convertToTensor)(e,"x","cos","float32");return a.ENGINE.runKernel(o.Cos,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kmlj1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cosh_:function(e){let t=(0,l.convertToTensor)(e,"x","cosh","float32");return a.ENGINE.runKernel(o.Cosh,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"12Bd0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumprod_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumprod");return a.ENGINE.runKernel(o.Cumprod,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9P2cw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({cumsum_:function(e,t=0,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"x","cumsum");return a.ENGINE.runKernel(o.Cumsum,{x:s},{axis:t,exclusive:r,reverse:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8pzqI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({denseBincount_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"x","denseBincount"),p=(0,l.convertToTensor)(t,"weights","denseBincount");return i.assert("int32"===s.dtype,()=>`Error in denseBincount: input dtype must be int32, but got ${s.dtype}`),i.assert(s.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${s.rank}.`),i.assert(r>=0,()=>`size must be non-negative, but got ${r}.`),i.assert(p.size===s.size||0===p.size,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${s.shape}, weights shape: ${p.shape}.`),a.ENGINE.runKernel(o.DenseBincount,{x:s,weights:p},{size:r,binaryOutput:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jZPRC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({depthToSpace_:function(e,t,r="NHWC"){let n=(0,l.convertToTensor)(e,"x","depthToSpace","float32"),s="NHWC"===r?n.shape[1]:n.shape[2],p="NHWC"===r?n.shape[2]:n.shape[3],u="NHWC"===r?n.shape[3]:n.shape[1];return i.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),i.assert(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape ${n.shape}`),i.assert(p*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${p} and ${t} for depthToSpace with input shape ${n.shape}`),i.assert(u%(t*t)==0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${u} for depthToSpace with input shape ${n.shape}`),a.ENGINE.runKernel(o.DepthToSpace,{x:n},{blockSize:t,dataFormat:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6xOgC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./conv_util"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({depthwiseConv2d_:function(e,t,r,n,s="NHWC",u=[1,1],d){let f=(0,l.convertToTensor)(e,"x","depthwiseConv2d","float32"),m=(0,l.convertToTensor)(t,"filter","depthwiseConv2d","float32"),h=f,g=!1;3===f.rank&&(g=!0,h=(0,c.reshape)(f,[1,f.shape[0],f.shape[1],f.shape[2]])),i.assert(4===h.rank,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),i.assert(4===m.rank,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`);let x="NHWC"===s?h.shape[3]:h.shape[1];i.assert(x===m.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${x}) must match the inChannels dimension in filter ${m.shape[2]}.`),p.checkPadOnDimRoundingMode("depthwiseConv2d",n,d);let y={x:h,filter:m},v=a.ENGINE.runKernel(o.DepthwiseConv2dNative,y,{strides:r,pad:n,dataFormat:s,dilations:u,dimRoundingMode:d});return g?(0,c.reshape)(v,[v.shape[1],v.shape[2],v.shape[3]]):v}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],coaUg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({diag_:function(e){let t=(0,l.convertToTensor)(e,"x","diag");return a.ENGINE.runKernel(o.Diag,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iGaxm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2d",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({dilation2d_:function(e,t,r,n,s=[1,1],p="NHWC"){let c=(0,l.convertToTensor)(e,"x","dilation2d"),d=(0,l.convertToTensor)(t,"filter","dilation2d");i.assert(3===c.rank||4===c.rank,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${c.rank}.`),i.assert(3===d.rank,()=>`Error in dilation2d: filter must be rank 3, but got rank ${d.rank}.`),i.assert("NHWC"===p,()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${p}`);let f=c,m=!1;3===c.rank&&(f=(0,u.reshape)(c,[1,c.shape[0],c.shape[1],c.shape[2]]),m=!0),i.assert(f.shape[3]===d.shape[2],()=>`Error in dilation2d: input and filter must have the same depth: ${f.shape[3]} vs ${d.shape[2]}`);let h={x:f,filter:d},g=a.ENGINE.runKernel(o.Dilation2D,h,{strides:r,pad:n,dilations:s});return m?(0,u.reshape)(g,[g.shape[1],g.shape[2],g.shape[3]]):g}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],huIPM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"divNoNan",()=>d);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("./div"),i=e("./equal"),p=e("./operation"),u=e("./where"),c=e("./zeros_like");let d=(0,p.op)({divNoNan_:function(e,t){let r=(0,o.convertToTensor)(e,"a","div"),n=(0,o.convertToTensor)(t,"b","div");[r,n]=(0,a.makeTypesMatch)(r,n);let s=(0,l.div)(r,n),p=(0,c.zerosLike)(s),d=(0,i.equal)(n,p);return(0,u.where)(d,p,s)}})},{"../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./div":"j6hSn","./equal":"84KZX","./operation":"2qT2c","./where":"83Uoy","./zeros_like":"gLLzC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"84KZX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({equal_:function(e,t){let r=(0,i.convertToTensor)(e,"a","equal","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","equal","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Equal,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"83Uoy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"where",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_to"),p=e("./broadcast_util");let u=(0,e("./operation").op)({where_:function(e,t,r){let n=(0,l.convertToTensor)(t,"a","where"),s=(0,l.convertToTensor)(r,"b","where"),u=(0,l.convertToTensor)(e,"condition","where","bool"),c=(0,p.assertAndGetBroadcastShape)((0,p.assertAndGetBroadcastShape)(u.shape,n.shape),s.shape),d=(0,i.broadcastTo)(u,c),f=(0,i.broadcastTo)(n,c),m=(0,i.broadcastTo)(s,c);return a.ENGINE.runKernel(o.Select,{condition:d,t:f,e:m})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./broadcast_to":"3ybay","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lxMTg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dot",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),p=e("./reshape");let u=(0,i.op)({dot_:function(e,t){let r=(0,a.convertToTensor)(e,"t1","dot"),n=(0,a.convertToTensor)(t,"t2","dot");o.assert((1===r.rank||2===r.rank)&&(1===n.rank||2===n.rank),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${r.rank} and ${n.rank}.`);let s=1===r.rank?r.size:r.shape[1],i=1===n.rank?n.size:n.shape[0];if(o.assert(s===i,()=>`Error in dot: inner dimensions of inputs must match, but got ${s} and ${i}.`),1===r.rank&&1===n.rank){let e=(0,p.reshape)(r,[1,-1]),t=(0,p.reshape)(n,[-1,1]),s=(0,l.matMul)(e,t);return(0,p.reshape)(s,[])}if(1===r.rank&&2===n.rank){let e=(0,p.reshape)(r,[1,-1]),t=(0,p.reshape)(n,[n.shape[0],n.shape[1]]),s=(0,l.matMul)(e,t);return(0,p.reshape)(s,[s.size])}if(2===r.rank&&1===n.rank){let e=(0,p.reshape)(n,[-1,1]),t=(0,l.matMul)(r,e);return(0,p.reshape)(t,[t.size])}{let e=(0,p.reshape)(n,[n.shape[0],n.shape[1]]);return(0,l.matMul)(r,e)}}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./mat_mul":"jyMFR","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lgdpC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum_",()=>i),s.export(r,"einsum",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");function i(e,...t){let r=t.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"einsum"));return a.ENGINE.runKernel(o.Einsum,r,{equation:e})}let p=(0,e("./operation").op)({einsum_:i})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ezxha:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({elu_:function(e){let t=(0,l.convertToTensor)(e,"x","elu","float32");return a.ENGINE.runKernel(o.Elu,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1zKhD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ensureShape",()=>l);var a=e("../tensor_util_env"),o=e("../util_base");let l=(0,e("./operation").op)({ensureShape_:function(e,t){let r=(0,a.convertToTensor)(e,"x","ensureShape","string_or_numeric");if(!(0,o.arraysEqualWithNull)(r.shape,t))throw Error(`EnsureShape: Shape of tensor ${r.shape} is not compatible with expected shape ${t}`);return e}})},{"../tensor_util_env":"feaHs","../util_base":"F0lVc","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2tSuO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./cast");let u=(0,e("./operation").op)({erf_:function(e){let t=(0,l.convertToTensor)(e,"x","erf");i.assert("int32"===t.dtype||"float32"===t.dtype,()=>"Input dtype must be `int32` or `float32`."),"int32"===t.dtype&&(t=(0,p.cast)(t,"float32"));let r={x:t};return a.ENGINE.runKernel(o.Erf,r)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./cast":"Qs5mF","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iJu0a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"euclideanNorm",()=>o);var a=e("./norm");let o=(0,e("./operation").op)({euclideanNorm_:function(e,t=null,r=!1){return(0,a.norm)(e,"euclidean",t,r)}})},{"./norm":"7eGDB","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7eGDB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"norm",()=>y);var a=e("../tensor_util_env"),o=e("../util"),l=e("./abs"),i=e("./axis_util"),p=e("./max"),u=e("./min"),c=e("./operation"),d=e("./pow"),f=e("./reshape"),m=e("./scalar"),h=e("./sqrt"),g=e("./square"),x=e("./sum");let y=(0,c.op)({norm_:function(e,t="euclidean",r=null,n=!1){let s=function e(t,r,n=null){if(0===t.rank)return(0,l.abs)(t);if(1!==t.rank&&null===n)return e((0,f.reshape)(t,[-1]),r,n);if(1===t.rank||"number"==typeof n||Array.isArray(n)&&1===n.length){if(1===r)return(0,x.sum)((0,l.abs)(t),n);if(r===1/0)return(0,p.max)((0,l.abs)(t),n);if(r===-1/0)return(0,u.min)((0,l.abs)(t),n);if("euclidean"===r||2===r)return(0,h.sqrt)((0,x.sum)((0,d.pow)((0,l.abs)(t),(0,m.scalar)(2,"int32")),n));throw Error(`Error in norm: invalid ord value: ${r}`)}if(Array.isArray(n)&&2===n.length){if(1===r)return(0,p.max)((0,x.sum)((0,l.abs)(t),n[0]),n[1]-1);if(r===1/0)return(0,p.max)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if(r===-1/0)return(0,u.min)((0,x.sum)((0,l.abs)(t),n[1]),n[0]);if("fro"===r||"euclidean"===r)return(0,h.sqrt)((0,x.sum)((0,g.square)(t),n));throw Error(`Error in norm: invalid ord value: ${r}`)}throw Error(`Error in norm: invalid axis: ${n}`)}(e=(0,a.convertToTensor)(e,"x","norm"),t,r),c=s.shape;if(n){let t=(0,o.parseAxisParam)(r,e.shape);c=i.expandShapeToKeepDim(s.shape,t)}return(0,f.reshape)(s,c)}})},{"../tensor_util_env":"feaHs","../util":"F0lVc","./abs":"khyDh","./axis_util":"f71mQ","./max":"aFVk6","./min":"72kvU","./operation":"2qT2c","./pow":"lnrqj","./reshape":"i9E3v","./scalar":"fhZsH","./sqrt":"DBh2a","./square":"iewSj","./sum":"jrqRB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f71mQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"axesAreInnerMostDims",()=>o),s.export(r,"combineLocations",()=>l),s.export(r,"computeOutAndReduceShapes",()=>i),s.export(r,"expandShapeToKeepDim",()=>p),s.export(r,"assertAxesAreInnerMostDims",()=>u),s.export(r,"getAxesPermutation",()=>c),s.export(r,"getUndoAxesPermutation",()=>d),s.export(r,"getInnerMostAxes",()=>f);var a=e("../util");function o(e,t){for(let r=0;r<e.length;++r)if(e[e.length-r-1]!==t-1-r)return!1;return!0}function l(e,t,r){let n=e.length+t.length,s=[],a=0,o=0;for(let l=0;l<n;l++)-1===r.indexOf(l)?s.push(e[a++]):s.push(t[o++]);return s}function i(e,t){let r=[],n=e.length;for(let s=0;s<n;s++)-1===t.indexOf(s)&&r.push(e[s]);return[r,t.map(t=>e[t])]}function p(e,t){return l(e,t.map(e=>1),t)}function u(e,t,r){a.assert(o(t,r),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${r} input.`)}function c(e,t){if(o(e,t))return null;let r=[];for(let n=0;n<t;++n)-1===e.indexOf(n)&&r.push(n);return e.forEach(e=>r.push(e)),r}function d(e){return e.map((e,t)=>[t,e]).sort((e,t)=>e[1]-t[1]).map(e=>e[0])}function f(e,t){let r=[];for(let n=t-e;n<t;++n)r.push(n);return r}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aFVk6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({max_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","max");return a.ENGINE.runKernel(o.Max,{x:n},{reductionIndices:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"72kvU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({min_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","min");return a.ENGINE.runKernel(o.Min,{x:n},{axis:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jrqRB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let p=(0,e("./operation").op)({sum_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","sum");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Sum,s,{axis:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./cast":"Qs5mF","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"94rBB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"exp",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({exp_:function(e){let t=(0,l.convertToTensor)(e,"x","exp");return a.ENGINE.runKernel(o.Exp,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kvdc2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({expandDims_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","expandDims","string_or_numeric");return i.assert(t<=r.rank,()=>"Axis must be<= rank of the tensor"),a.ENGINE.runKernel(o.ExpandDims,{input:r},{dim:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],evEIT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({expm1_:function(e){let t=(0,l.convertToTensor)(e,"x","expm1");return a.ENGINE.runKernel(o.Expm1,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9xEvl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eye",()=>u);var a=e("./buffer"),o=e("./expand_dims"),l=e("./operation"),i=e("./reshape"),p=e("./tile");let u=(0,l.op)({eye_:function(e,t,r,n="float32"){null==t&&(t=e);let s=(0,a.buffer)([e,t],n),l=e<=t?e:t;for(let e=0;e<l;++e)s.set(1,e,e);let u=(0,i.reshape)(s.toTensor(),[e,t]);if(null==r)return u;if(1===r.length)return(0,p.tile)((0,o.expandDims)(u,0),[r[0],1,1]);if(2===r.length)return(0,p.tile)((0,o.expandDims)((0,o.expandDims)(u,0),0),[r[0],r[1],1,1]);if(3===r.length)return(0,p.tile)((0,o.expandDims)((0,o.expandDims)((0,o.expandDims)(u,0),0),0),[r[0],r[1],r[2],1,1]);throw Error(`eye() currently supports only 1D and 2D batchShapes, but received ${r.length}D.`)}})},{"./buffer":"avZau","./expand_dims":"kvdc2","./operation":"2qT2c","./reshape":"i9E3v","./tile":"6j23e","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6j23e":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({tile_:function(e,t){let r=(0,l.convertToTensor)(e,"x","tile","string_or_numeric");return i.assert(r.rank===t.length,()=>`Error in transpose: rank of input ${r.rank} must match length of reps ${t}.`),a.ENGINE.runKernel(o.Tile,{x:r},{reps:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gaOdC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({floor_:function(e){let t=(0,l.convertToTensor)(e,"x","floor","float32");return a.ENGINE.runKernel(o.Floor,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3huLg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gather_:function(e,t,r=0,n=0){let s=(0,l.convertToTensor)(e,"x","gather"),i=(0,l.convertToTensor)(t,"indices","gather","int32");return a.ENGINE.runKernel(o.GatherV2,{x:s,indices:i},{axis:r,batchDims:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],g5fgq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({greater_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greater","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greater","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Greater,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fcGF0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({greaterEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","greaterEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","greaterEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.GreaterEqual,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bXN0L:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isFinite_:function(e){let t=(0,l.convertToTensor)(e,"x","isFinite");return a.ENGINE.runKernel(o.IsFinite,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],e4tNF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isInf_:function(e){let t=(0,l.convertToTensor)(e,"x","isInf");return a.ENGINE.runKernel(o.IsInf,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lph9v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({isNaN_:function(e){let t=(0,l.convertToTensor)(e,"x","isNaN");return a.ENGINE.runKernel(o.IsNan,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6T6LU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({leakyRelu_:function(e,t=.2){let r=(0,l.convertToTensor)(e,"x","leakyRelu");return a.ENGINE.runKernel(o.LeakyRelu,{x:r},{alpha:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1aWGo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({less_:function(e,t){let r=(0,i.convertToTensor)(e,"a","less","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","less","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Less,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5ke7N":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessEqual",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({lessEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","lessEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","lessEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.LessEqual,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dKJnu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linspace",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r){if(r<=0)throw Error("The number of values should be positive.");return a.ENGINE.runKernel(o.LinSpace,{},{start:e,stop:t,num:r})}},{"../engine":"5aImO","../kernel_names":"bvyjS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hR6bd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"localResponseNormalization",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({localResponseNormalization_:function(e,t=5,r=1,n=1,s=.5){let p=(0,l.convertToTensor)(e,"x","localResponseNormalization");i.assert(4===p.rank||3===p.rank,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got rank ${p.rank}.`),i.assert(i.isInt(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let c=p,d=!1;3===p.rank&&(d=!0,c=(0,u.reshape)(p,[1,p.shape[0],p.shape[1],p.shape[2]]));let f={x:c},m=a.ENGINE.runKernel(o.LRN,f,{depthRadius:t,bias:r,alpha:n,beta:s});return d?(0,u.reshape)(m,[m.shape[1],m.shape[2],m.shape[3]]):m}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l513F:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log_:function(e){let t=(0,l.convertToTensor)(e,"x","log","float32");return a.ENGINE.runKernel(o.Log,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],a4Qz0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({log1p_:function(e){let t=(0,l.convertToTensor)(e,"x","log1p");return a.ENGINE.runKernel(o.Log1p,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"23qLw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSigmoid",()=>d);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./mul"),i=e("./neg"),p=e("./operation"),u=e("./sigmoid"),c=e("./softplus");let d=(0,p.op)({logSigmoid_:function(e){let t=(0,o.convertToTensor)(e,"x","logSigmoid");return(0,a.customGrad)(e=>({value:(0,i.neg)((0,c.softplus)((0,i.neg)(e))),gradFunc:t=>(0,l.mul)(t,(0,u.sigmoid)((0,i.neg)(e)))}))(t)}})},{"../gradients":"bUS3C","../tensor_util_env":"feaHs","./mul":"6u9Cs","./neg":"2tLkY","./operation":"2qT2c","./sigmoid":"hx1GK","./softplus":"iwrNh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iwrNh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softplus_:function(e){let t=(0,l.convertToTensor)(e,"x","softplus");return a.ENGINE.runKernel(o.Softplus,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kQZHB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSoftmax",()=>h);var a=e("../gradients"),o=e("../tensor_util_env"),l=e("./cast"),i=e("./exp"),p=e("./log"),u=e("./max"),c=e("./mul"),d=e("./operation"),f=e("./sub"),m=e("./sum");let h=(0,d.op)({logSoftmax_:function(e,t=-1){let r=(0,o.convertToTensor)(e,"logits","logSoftmax");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and axis was ${t}`);return(0,a.customGrad)((e,r)=>{let n=(0,u.max)(e,t,!0),s=(0,f.sub)(e,n),a=(0,f.sub)((0,l.cast)(s,"float32"),(0,p.log)((0,m.sum)((0,i.exp)(s),t,!0)));return r([a]),{value:a,gradFunc:(e,r)=>{let[n]=r,s=(0,i.exp)(n);return(0,f.sub)(e,(0,c.mul)((0,m.sum)(e,t,!0),s))}}})(r)}})},{"../gradients":"bUS3C","../tensor_util_env":"feaHs","./cast":"Qs5mF","./exp":"94rBB","./log":"l513F","./max":"aFVk6","./mul":"6u9Cs","./operation":"2qT2c","./sub":"1laxX","./sum":"jrqRB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4BsSl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logSumExp",()=>g);var a=e("../tensor_util_env"),o=e("../util"),l=e("./add"),i=e("./axis_util"),p=e("./exp"),u=e("./log"),c=e("./max"),d=e("./operation"),f=e("./reshape"),m=e("./sub"),h=e("./sum");let g=(0,d.op)({logSumExp_:function(e,t=null,r=!1){let n=(0,a.convertToTensor)(e,"x","logSumExp"),s=(0,o.parseAxisParam)(t,n.shape),d=(0,c.max)(n,s,!0),g=(0,m.sub)(n,d),x=(0,p.exp)(g),y=(0,h.sum)(x,s),v=(0,u.log)(y),b=(0,l.add)((0,f.reshape)(d,v.shape),v);if(r){let e=(0,i.expandShapeToKeepDim)(b.shape,s);return(0,f.reshape)(b,e)}return b}})},{"../tensor_util_env":"feaHs","../util":"F0lVc","./add":"6AYbH","./axis_util":"f71mQ","./exp":"94rBB","./log":"l513F","./max":"aFVk6","./operation":"2qT2c","./reshape":"i9E3v","./sub":"1laxX","./sum":"jrqRB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jiW04:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let p=(0,e("./operation").op)({logicalAnd_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalAnd","bool"),n=(0,l.convertToTensor)(t,"b","logicalAnd","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalAnd,{a:r,b:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7ajZc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({logicalNot_:function(e){let t=(0,l.convertToTensor)(e,"x","logicalNot","bool");return a.ENGINE.runKernel(o.LogicalNot,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hFZrP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./broadcast_util");let p=(0,e("./operation").op)({logicalOr_:function(e,t){let r=(0,l.convertToTensor)(e,"a","logicalOr","bool"),n=(0,l.convertToTensor)(t,"b","logicalOr","bool");return(0,i.assertAndGetBroadcastShape)(r.shape,n.shape),a.ENGINE.runKernel(o.LogicalOr,{a:r,b:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4wHdx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalXor",()=>u);var a=e("../tensor_util_env"),o=e("./broadcast_util"),l=e("./logical_and"),i=e("./logical_not"),p=e("./logical_or");let u=(0,e("./operation").op)({logicalXor_:function(e,t){let r=(0,a.convertToTensor)(e,"a","logicalXor","bool"),n=(0,a.convertToTensor)(t,"b","logicalXor","bool");return(0,o.assertAndGetBroadcastShape)(r.shape,n.shape),(0,l.logicalAnd)((0,p.logicalOr)(e,t),(0,i.logicalNot)((0,l.logicalAnd)(e,t)))}})},{"../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./logical_and":"jiW04","./logical_not":"7ajZc","./logical_or":"hFZrP","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jGPDp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lowerBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"left")}},{"./search_sorted":"cZ6pF","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cZ6pF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({searchSorted_:function(e,t,r="left"){let n=(0,l.convertToTensor)(e,"sortedSequence","searchSorted"),s=(0,l.convertToTensor)(t,"values","searchSorted"),p=n.shape[n.shape.length-1],c=s.shape[s.shape.length-1],d=(0,u.reshape)(n,[-1,p]),f=(0,u.reshape)(s,[-1,c]);if(d.rank<2)throw Error("Sorted input argument must be at least 2-dimensional");if(d.shape[0]!==f.shape[0])throw Error("Leading dimension of 'sortedSequence' and 'values' must match.");if((0,i.sizeFromShape)(f.shape)>=0x80000000)throw Error("values tensor size must less than 2147483648");if(d.shape[1]>=0x80000000)throw Error(`trailing dim_size must less than 2147483648 for int32 output type, was ${d.shape[1]}`);return a.ENGINE.runKernel(o.SearchSorted,{sortedSequence:d,values:f},{side:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util_base":"F0lVc","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9LbxM":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./conv_util"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({maxPool_:function(e,t,r,n,s){let u=(0,l.convertToTensor)(e,"x","maxPool"),d=u,f=!1;3===u.rank&&(f=!0,d=(0,c.reshape)(u,[1,u.shape[0],u.shape[1],u.shape[2]])),i.assert(4===d.rank,()=>`Error in maxPool: input must be rank 4 but got rank ${d.rank}.`),i.assert(p.eitherStridesOrDilationsAreOne(r,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '1'`),p.checkPadOnDimRoundingMode("maxPool",n,s);let m={x:d},h=a.ENGINE.runKernel(o.MaxPool,m,{filterSize:t,strides:r,pad:n,dimRoundingMode:s});return f?(0,c.reshape)(h,[h.shape[1],h.shape[2],h.shape[3]]):h}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9cwzP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>d);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util"),p=e("./conv_util"),u=e("./operation"),c=e("./reshape");let d=(0,u.op)({maxPool3d_:function(e,t=[1,1,1],r,n,s,u="NDHWC"){let d=(0,l.convertToTensor)(e,"x","maxPool3d"),f=d,m=!1;4===d.rank&&(m=!0,f=(0,c.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2],d.shape[3]])),i.assert(5===f.rank,()=>`Error in maxPool3d: x must be rank 5 but got rank ${f.rank}.`),i.assert("NDHWC"===u,()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${u}`),(0,p.checkPadOnDimRoundingMode)("maxPool3d",n,s);let h={x:f},g=a.ENGINE.runKernel(o.MaxPool3D,h,{filterSize:t,strides:r,pad:n,dimRoundingMode:s,dataFormat:u});return m?(0,c.reshape)(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i3Jjn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({maxPoolWithArgmax_:function(e,t,r,n,s=!1){let i=(0,l.convertToTensor)(e,"x","maxPoolWithArgmax"),p=a.ENGINE.runKernel(o.MaxPoolWithArgmax,{x:i},{filterSize:t,strides:r,pad:n,includeBatchInIndex:s});return{result:p[0],indexes:p[1]}}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],d8WjP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({mean_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","mean");return a.ENGINE.runKernel(o.Mean,{x:n},{axis:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4LQRI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meshgrid",()=>c);var a=e("./mat_mul"),o=e("./ones"),l=e("./reshape"),i=e("../tensor"),p=e("../tensor_util_env"),u=e("../util_base");function c(e,t,{indexing:r="xy"}={}){if("xy"!==r&&"ij"!==r)throw TypeError(`${r} is not a valid third argument to meshgrid`);if(void 0===e)return[];let n=(0,p.convertToTensor)(e,"x","meshgrid",e instanceof i.Tensor?e.dtype:"float32");if(void 0===t)return[n];let s=(0,p.convertToTensor)(t,"y","meshgrid",t instanceof i.Tensor?t.dtype:"float32"),d=(0,u.sizeFromShape)(n.shape),f=(0,u.sizeFromShape)(s.shape);return"xy"===r?(n=(0,l.reshape)(n,[1,-1]),s=(0,l.reshape)(s,[-1,1]),[(0,a.matMul)((0,o.ones)([f,1],n.dtype),n),(0,a.matMul)(s,(0,o.ones)([1,d],s.dtype))]):(n=(0,l.reshape)(n,[-1,1]),s=(0,l.reshape)(s,[1,-1]),[(0,a.matMul)(n,(0,o.ones)([1,f],n.dtype)),(0,a.matMul)((0,o.ones)([d,1],s.dtype),s)])}},{"./mat_mul":"jyMFR","./ones":"bmJ6z","./reshape":"i9E3v","../tensor":"izSBk","../tensor_util_env":"feaHs","../util_base":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bmJ6z:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ones",()=>function e(t,r="float32"){if((0,l.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=(0,p.zeros)(t,"float32");return(0,i.complex)(r,n)}let n=(0,o.makeOnesTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("../util_base"),i=e("./complex"),p=e("./zeros")},{"../engine":"5aImO","../util":"F0lVc","../util_base":"F0lVc","./complex":"5l7Tr","./zeros":"3kicB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3kicB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r="float32"){if((0,o.assertNonNegativeIntegerDimensions)(t),"complex64"===r){let r=e(t,"float32"),n=e(t,"float32");return(0,l.complex)(r,n)}let n=(0,o.makeZerosTypedArray)((0,o.sizeFromShape)(t),r);return a.ENGINE.makeTensor(n,t,r)});var a=e("../engine"),o=e("../util"),l=e("./complex")},{"../engine":"5aImO","../util":"F0lVc","./complex":"5l7Tr","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1R0ab":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util"),u=e("./cast");let c=(0,e("./operation").op)({minimum_:function(e,t){let r=(0,i.convertToTensor)(e,"a","minimum"),n=(0,i.convertToTensor)(t,"b","minimum");[r,n]=(0,l.makeTypesMatch)(r,n),"bool"===r.dtype&&(r=(0,u.cast)(r,"int32"),n=(0,u.cast)(n,"int32")),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.Minimum,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./cast":"Qs5mF","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],czsCC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPad",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({mirrorPad_:function(e,t,r){i.assert("reflect"===r||"symmetric"===r,()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${r}.`);let n=(0,l.convertToTensor)(e,"x","mirrorPad");if(0===n.rank)throw Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");i.assert(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let s=+("reflect"===r);for(let e=0;e<n.rank;e++)i.assert(2===t[e].length,()=>"Invalid number of paddings. Must be length of 2 each."),i.assert(t[e][0]>=0&&t[e][0]<=n.shape[e]-s&&t[e][1]>=0&&t[e][1]<=n.shape[e]-s,()=>`Padding in dimension ${e} cannot be greater than or equal to ${n.shape[e]-s} or less than 0 for input of shape ${n.shape}`);return a.ENGINE.runKernel(o.MirrorPad,{x:n},{paddings:t,mode:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],c0dVE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env");let p=(0,e("./operation").op)({mod_:function(e,t){let r=(0,i.convertToTensor)(e,"a","mod"),n=(0,i.convertToTensor)(t,"b","mod");[r,n]=(0,l.makeTypesMatch)(r,n);let s={a:r,b:n};return a.ENGINE.runKernel(o.Mod,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],d9D4X:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"moments",()=>m);var a=e("../tensor_util_env"),o=e("../util"),l=e("./axis_util"),i=e("./cast"),p=e("./mean"),u=e("./operation"),c=e("./reshape"),d=e("./square"),f=e("./sub");let m=(0,u.op)({moments_:function(e,t=null,r=!1){e=(0,a.convertToTensor)(e,"x","moments");let n=(0,o.parseAxisParam)(t,e.shape),s=(0,p.mean)(e,n,r),u=s.shape;r||(u=(0,l.expandShapeToKeepDim)(s.shape,n));let m=(0,d.square)((0,f.sub)((0,i.cast)(e,"float32"),(0,c.reshape)(s,u)));return{mean:s,variance:(0,p.mean)(m,n,r)}}})},{"../tensor_util_env":"feaHs","../util":"F0lVc","./axis_util":"f71mQ","./cast":"Qs5mF","./mean":"d8WjP","./operation":"2qT2c","./reshape":"i9E3v","./square":"iewSj","./sub":"1laxX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1pZrr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiRNNCell",()=>o);var a=e("../tensor_util_env");let o=(0,e("./operation").op)({multiRNNCell_:function(e,t,r,n){let s=(0,a.convertToTensor)(t,"data","multiRNNCell"),o=(0,a.convertToTensorArray)(r,"c","multiRNNCell"),l=(0,a.convertToTensorArray)(n,"h","multiRNNCell"),i=s,p=[];for(let t=0;t<e.length;t++){let r=e[t](i,o[t],l[t]);p.push(r[0]),p.push(r[1]),i=r[1]}let u=[],c=[];for(let e=0;e<p.length;e+=2)u.push(p[e]),c.push(p[e+1]);return[u,c]}})},{"../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5zw9P":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),p=e("./reshape");let u=(0,i.op)({multinomial_:function(e,t,r,n=!1){let s=(0,l.convertToTensor)(e,"logits","multinomial"),i=s.size,u=s.rank;if(i<2)throw Error(`Error in multinomial: you need at least 2 outcomes, but got ${i}.`);if(u>2)throw Error(`Rank of probabilities must be 1 or 2, but is ${u}`);r=r||Math.random();let c=1===u?(0,p.reshape)(s,[1,-1]):s,d={numSamples:t,seed:r,normalized:n},f=a.ENGINE.runKernel(o.Multinomial,{logits:c},d);return 1===u?(0,p.reshape)(f,[f.size]):f}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],XasxQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({notEqual_:function(e,t){let r=(0,i.convertToTensor)(e,"a","notEqual","string_or_numeric"),n=(0,i.convertToTensor)(t,"b","notEqual","string_or_numeric");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.NotEqual,s)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fvkRO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({onesLike_:function(e){let t=(0,l.convertToTensor)(e,"x","onesLike");return a.ENGINE.runKernel(o.OnesLike,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],feQQ6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"outerProduct",()=>u);var a=e("../tensor_util_env"),o=e("../util"),l=e("./mat_mul"),i=e("./operation"),p=e("./reshape");let u=(0,i.op)({outerProduct_:function(e,t){let r=(0,a.convertToTensor)(e,"v1","outerProduct"),n=(0,a.convertToTensor)(t,"v2","outerProduct");o.assert(1===r.rank&&1===n.rank,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${r.rank} and ${n.rank}.`);let s=(0,p.reshape)(r,[-1,1]),i=(0,p.reshape)(n,[1,-1]);return(0,l.matMul)(s,i)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./mat_mul":"jyMFR","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2aeXI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({pad_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","pad");if(0===n.rank)throw Error("pad(scalar) is not defined. Pass non-scalar to pad");return a.ENGINE.runKernel(o.PadV2,{x:n},{paddings:t,constantValue:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bhmnr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad1d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad1d_:function(e,t,r=0){return(0,a.assert)(2===t.length,()=>"Invalid number of paddings. Must be length of 2."),(0,l.pad)(e,[t],r)}})},{"../util":"F0lVc","./operation":"2qT2c","./pad":"2aeXI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aoBdI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad2d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad2d_:function(e,t,r=0){return(0,a.assert)(2===t.length&&2===t[0].length&&2===t[1].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"F0lVc","./operation":"2qT2c","./pad":"2aeXI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3lGIl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad3d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad3d_:function(e,t,r=0){return(0,a.assert)(3===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"F0lVc","./operation":"2qT2c","./pad":"2aeXI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l8Oks:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pad4d",()=>i);var a=e("../util"),o=e("./operation"),l=e("./pad");let i=(0,o.op)({pad4d_:function(e,t,r=0){return(0,a.assert)(4===t.length&&2===t[0].length&&2===t[1].length&&2===t[2].length&&2===t[3].length,()=>"Invalid number of paddings. Must be length of 2 each."),(0,l.pad)(e,t,r)}})},{"../util":"F0lVc","./operation":"2qT2c","./pad":"2aeXI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"04OHO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>m);var a=e("../tensor_util_env"),o=e("../util"),l=e("./avg_pool"),i=e("./batch_to_space_nd"),p=e("./conv_util"),u=e("./max_pool"),c=e("./operation"),d=e("./reshape"),f=e("./space_to_batch_nd");let m=(0,c.op)({pool_:function(e,t,r,n,s,c,m){var h,g,x,y,v;let b,k,_,I,j,w,T,S,C;null==s&&(s=[1,1]),null==c&&(c=1),0===n&&(n="valid");let N=(0,a.convertToTensor)(e,"x","maxPool"),E=N,F=!1;3===N.rank&&(F=!0,E=(0,d.reshape)(N,[1,N.shape[0],N.shape[1],N.shape[2]])),o.assert(p.eitherStridesOrDilationsAreOne(c,s),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${c} and dilations '${s}'`);let A=p.computePool2DInfo(E.shape,t,c,s,n),R=[A.dilationHeight,A.dilationWidth];b="same"===n?(h=[A.filterHeight,A.filterWidth],g=R,_=(k=h.map((e,t)=>e+(e-1)*(g[t]-1)).map(e=>e-1)).map(e=>Math.floor(e/2)),I=k.map((e,t)=>e-_[t]),k.map((e,t)=>[_[t],I[t]])):[[0,0],[0,0]];let P=1===R[0]&&1===R[1],[$,O]=(x=[A.inHeight,A.inWidth],y=R,j=(v=b).map(e=>e[0]),T=x.concat(j,w=v.map(e=>e[1])),S=y.map((e,t)=>(e-T[t]%e)%e),C=w.map((e,t)=>e+S[t]),[y.map((e,t)=>[j[t],C[t]]),y.map((e,t)=>[0,S[t]])]),D=P?n:"valid",M=P?E:(0,f.spaceToBatchND)(E,R,$),B=("avg"===r?()=>(0,l.avgPool)(M,t,c,D,m):()=>(0,u.maxPool)(M,t,c,D,m))(),G=P?B:(0,i.batchToSpaceND)(B,R,O);return F?(0,d.reshape)(G,[G.shape[1],G.shape[2],G.shape[3]]):G}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./avg_pool":"fD5Xs","./batch_to_space_nd":"bdBVu","./conv_util":"ckBsO","./max_pool":"9LbxM","./operation":"2qT2c","./reshape":"i9E3v","./space_to_batch_nd":"joznx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],joznx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({spaceToBatchND_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","spaceToBatchND");return i.assert(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),i.assert(r.length===t.length,()=>`paddings.shape[0] ${r.length} must be equal to [blockShape] ${t.length}`),i.assert(n.shape.reduce((e,n,s)=>s>0&&s<=t.length?e&&(n+r[s-1][0]+r[s-1][1])%t[s-1]==0:e,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${r.toString()} must be divisible by blockShapes ${t.toString()}`),a.ENGINE.runKernel(o.SpaceToBatchND,{x:n},{blockShape:t,paddings:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ez5fa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prelu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({prelu_:function(e,t){let r=(0,l.convertToTensor)(e,"x","prelu"),n=(0,l.convertToTensor)(t,"alpha","prelu");return a.ENGINE.runKernel(o.Prelu,{x:r,alpha:n})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1jrij":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./cast");let p=(0,e("./operation").op)({prod_:function(e,t=null,r=!1){let n=(0,l.convertToTensor)(e,"x","prod");"bool"===n.dtype&&(n=(0,i.cast)(n,"int32"));let s={x:n};return a.ENGINE.runKernel(o.Prod,s,{axis:t,keepDims:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./cast":"Qs5mF","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hVQzl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedGather_:function(e,t,r,n){let s=e.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedGather","int32")),i=(0,l.convertToTensor)(t,"paramsDenseValues","raggedGather"),p=(0,l.convertToTensor)(r,"indices","raggedGather","int32"),u=a.ENGINE.runKernel(o.RaggedGather,{paramsNestedSplits:s,paramsDenseValues:i,indices:p},{outputRaggedRank:n});return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3z4Ey":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedRange_:function(e,t,r){let n=(0,l.convertToTensor)(e,"starts","raggedRange"),s=(0,l.convertToTensor)(t,"limits","raggedRange",n.dtype),i=(0,l.convertToTensor)(r,"deltas","raggedRange",n.dtype),p=a.ENGINE.runKernel(o.RaggedRange,{starts:n,limits:s,deltas:i});return{rtNestedSplits:p[0],rtDenseValues:p[1]}}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kAXzM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({raggedTensorToTensor_:function(e,t,r,n,s){let i=(0,l.convertToTensor)(e,"shape","raggedTensorToTensor","int32"),p=(0,l.convertToTensor)(t,"values","raggedTensorToTensor"),u=(0,l.convertToTensor)(r,"defaultValue","raggedTensorToTensor",p.dtype),c=n.map((e,t)=>(0,l.convertToTensor)(e,`tensors${t}`,"raggedTensorToTensor","int32"));return a.ENGINE.runKernel(o.RaggedTensorToTensor,{shape:i,values:p,defaultValue:u,rowPartitionTensors:c},{rowPartitionTypes:s})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"15PBm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rand",()=>i);var a=e("../engine"),o=e("../util"),l=e("../util_base");let i=(0,e("./operation").op)({rand_:function(e,t,r){(0,l.assertNonNegativeIntegerDimensions)(e);let n=(0,o.sizeFromShape)(e),s=null;if(null==r||"float32"===r)s=new Float32Array(n);else if("int32"===r)s=new Int32Array(n);else if("bool"===r)s=new Uint8Array(n);else throw Error(`Unknown data type ${r}`);for(let e=0;e<n;e++)s[e]=t();return a.ENGINE.makeTensor(s,e,r)}})},{"../engine":"5aImO","../util":"F0lVc","../util_base":"F0lVc","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jQ3xw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomGamma",()=>p);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let p=(0,l.op)({randomGamma_:function(e,t,r=1,n="float32",s){if((0,a.assertNonNegativeIntegerDimensions)(e),null==r&&(r=1),null==n&&(n="float32"),"float32"!==n&&"int32"!==n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.RandGamma)(t,r,n,s),p=(0,o.buffer)(e,n);for(let e=0;e<p.values.length;e++)p.values[e]=l.nextValue();return p.toTensor()}})},{"../util_base":"F0lVc","./buffer":"avZau","./operation":"2qT2c","./rand_util":"hVMjY","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hVMjY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MPRandGauss",()=>l),s.export(r,"RandGamma",()=>i),s.export(r,"UniformRandom",()=>p),s.export(r,"jarqueBeraNormalityTest",()=>u),s.export(r,"expectArrayInMeanStdRange",()=>c);var a=e("seedrandom"),o=e("../test_util");class l{constructor(e,t,r,n,s){this.mean=e,this.stdDev=t,this.dtype=r,this.nextVal=NaN,this.truncated=n,this.truncated&&(this.upper=this.mean+2*this.stdDev,this.lower=this.mean-2*this.stdDev);const o=s||Math.random();this.random=a.alea(o.toString())}nextValue(){let e,t;if(!isNaN(this.nextVal)){let e=this.nextVal;return this.nextVal=NaN,e}let r=!1;for(;!r;){let n,s,a;do a=(n=2*this.random()-1)*n+(s=2*this.random()-1)*s;while(a>=1||0===a)let o=Math.sqrt(-2*Math.log(a)/a);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*s*o,(!this.truncated||this.isValidTruncated(e))&&(r=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return null==this.dtype||"float32"===this.dtype?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class i{constructor(e,t,r,n){this.alpha=e,this.beta=1/t,this.dtype=r;const s=n||Math.random();this.randu=a.alea(s.toString()),this.randn=new l(0,1,r,!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,r,n,s,a;for(;;){do n=this.randn.nextValue(),a=1+this.c*n;while(a<=0)if(a*=a*a,t=1-.331*(e=n*n)*e,r=.5*e+this.d*(1-a+Math.log(a)),(s=this.randu())<t||Math.log(s)<r)break}return a=1/this.beta*this.d*a,this.alpha<1&&(a*=Math.pow(this.randu(),1/this.alpha)),this.convertValue(a)}convertValue(e){return"float32"===this.dtype?e:Math.round(e)}}class p{constructor(e=0,t=1,r,n){if(this.canReturnFloat=()=>null==this.dtype||"float32"===this.dtype,this.min=e,this.range=t-e,this.dtype=r,null==n&&(n=Math.random()),"number"==typeof n&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=a.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function u(e){let t=e.length/6*(Math.pow(function(e){let t=d(e),r=e.length,n=0,s=0;for(let a=0;a<r;a++){let r=e[a]-t;n+=Math.pow(r,2),s+=Math.pow(r,3)}return 1/r*s/Math.pow(1/(r-1)*n,1.5)}(e),2)+.25*Math.pow(function(e){let t=d(e),r=e.length,n=0,s=0;for(let a=0;a<r;a++){let r=e[a]-t;n+=Math.pow(r,2),s+=Math.pow(r,4)}return 1/r*s/Math.pow(1/r*n,2)}(e)-3,2));if(t>5.991)throw Error(`Invalid p-value for JB: ${t}`)}function c(e,t,r,n){null==n&&(n=(0,o.testEpsilon)());let s=d(e);(0,o.expectNumbersClose)(s,t,n),(0,o.expectNumbersClose)(function(e,t){let r=0;for(let n=0;n<e.length;n++){let s=e[n]-t;r+=s*s}return Math.sqrt(r/e.length)}(e,s),r,n)}function d(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t/e.length}},{seedrandom:"4LDBU","../test_util":"j33yG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4LDBU":[function(e,t,r,n){var s=e("12650d0e2f5e5e92"),a=e("2e9ff46cdee4aab4"),o=e("a04af32374227880"),l=e("65d05f6db8da652c"),i=e("1e972c6b140abbe7"),p=e("286eb9753e804cda"),u=e("a0d0bb1ebcf7d3f9");u.alea=s,u.xor128=a,u.xorwow=o,u.xorshift7=l,u.xor4096=i,u.tychei=p,t.exports=u},{"12650d0e2f5e5e92":"92GvM","2e9ff46cdee4aab4":"bPrw2",a04af32374227880:"1C1xn","65d05f6db8da652c":"8nXw6","1e972c6b140abbe7":"esfKL","286eb9753e804cda":"dKWOY",a0d0bb1ebcf7d3f9:"6rnJl"}],"92GvM":[function(e,t,r,n){!function(e,t){function r(e){var t,r=this,n=(t=0xefc8249d,function(e){e=String(e);for(var r=0;r<e.length;r++){var n=.02519603282416938*(t+=e.charCodeAt(r));t=n>>>0,n-=t,n*=t,t=n>>>0,n-=t,t+=0x100000000*n}return(t>>>0)*23283064365386963e-26});r.next=function(){var e=2091639*r.s0+23283064365386963e-26*r.c;return r.s0=r.s1,r.s1=r.s2,r.s2=e-(r.c=0|e)},r.c=1,r.s0=n(" "),r.s1=n(" "),r.s2=n(" "),r.s0-=n(e),r.s0<0&&(r.s0+=1),r.s1-=n(e),r.s1<0&&(r.s1+=1),r.s2-=n(e),r.s2<0&&(r.s2+=1)}function n(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function s(e,t){var s=new r(e),a=t&&t.state,o=s.next;return o.int32=function(){return 0x100000000*s.next()|0},o.double=function(){return o()+(2097152*o()|0)*11102230246251565e-32},o.quick=o,a&&("object"==typeof a&&n(a,s),o.state=function(){return n(s,{})}),o}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.alea=s}(t,"function"==typeof define&&define)},{}],bPrw2:[function(e,t,r,n){!function(e,t){function r(e){var t=this,r="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:r+=e;for(var n=0;n<r.length+64;n++)t.x^=r.charCodeAt(n),t.next()}function n(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var s=new r(e),a=t&&t.state,o=function(){return(s.next()>>>0)/0x100000000};return o.double=function(){do var e=s.next()>>>11,t=(s.next()>>>0)/0x100000000,r=(e+t)/2097152;while(0===r)return r},o.int32=s.next,o.quick=o,a&&("object"==typeof a&&n(a,s),o.state=function(){return n(s,{})}),o}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor128=s}(t,"function"==typeof define&&define)},{}],"1C1xn":[function(e,t,r,n){!function(e,t){function r(e){var t=this,r="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:r+=e;for(var n=0;n<r.length+64;n++)t.x^=r.charCodeAt(n),n==r.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function n(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var s=new r(e),a=t&&t.state,o=function(){return(s.next()>>>0)/0x100000000};return o.double=function(){do var e=s.next()>>>11,t=(s.next()>>>0)/0x100000000,r=(e+t)/2097152;while(0===r)return r},o.int32=s.next,o.quick=o,a&&("object"==typeof a&&n(a,s),o.state=function(){return n(s,{})}),o}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorwow=s}(t,"function"==typeof define&&define)},{}],"8nXw6":[function(e,t,r,n){!function(e,t){function r(e){var t=this;t.next=function(){var e,r,n=t.x,s=t.i;return e=n[s],e^=e>>>7,r=e^e<<24^((e=n[s+1&7])^e>>>10)^((e=n[s+3&7])^e>>>3)^((e=n[s+4&7])^e<<7),e=n[s+7&7],e^=e<<13,r^=e^e<<9,n[s]=r,t.i=s+1&7,r};var r,n=e,s=[];if(n===(0|n))s[0]=n;else for(r=0,n=""+n;r<n.length;++r)s[7&r]=s[7&r]<<15^n.charCodeAt(r)+s[r+1&7]<<13;for(;s.length<8;)s.push(0);for(r=0;r<8&&0===s[r];++r);for(8==r?s[7]=-1:s[r],t.x=s,t.i=0,r=256;r>0;--r)t.next()}function n(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){null==e&&(e=+new Date);var s=new r(e),a=t&&t.state,o=function(){return(s.next()>>>0)/0x100000000};return o.double=function(){do var e=s.next()>>>11,t=(s.next()>>>0)/0x100000000,r=(e+t)/2097152;while(0===r)return r},o.int32=s.next,o.quick=o,a&&(a.x&&n(a,s),o.state=function(){return n(s,{})}),o}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xorshift7=s}(t,"function"==typeof define&&define)},{}],esfKL:[function(e,t,r,n){!function(e,t){function r(e){var t=this;t.next=function(){var e,r,n=t.w,s=t.X,a=t.i;return t.w=n=n+0x61c88647|0,r=s[a+34&127],e=s[a=a+1&127],r^=r<<13,e^=e<<17,r^=r>>>15,e^=e>>>12,r=s[a]=r^e,t.i=a,r+(n^n>>>16)|0},!function(e,t){var r,n,s,a,o,l=[],i=128;for(t===(0|t)?(n=t,t=null):(t+="\0",n=0,i=Math.max(i,t.length)),s=0,a=-32;a<i;++a)t&&(n^=t.charCodeAt((a+32)%t.length)),0===a&&(o=n),n^=n<<10,n^=n>>>15,n^=n<<4,n^=n>>>13,a>=0&&(o=o+0x61c88647|0,s=0==(r=l[127&a]^=n+o)?s+1:0);for(s>=128&&(l[127&(t&&t.length||0)]=-1),s=127,a=512;a>0;--a)n=l[s+34&127],r=l[s=s+1&127],n^=n<<13,r^=r<<17,n^=n>>>15,r^=r>>>12,l[s]=n^r;e.w=o,e.X=l,e.i=s}(t,e)}function n(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){null==e&&(e=+new Date);var s=new r(e),a=t&&t.state,o=function(){return(s.next()>>>0)/0x100000000};return o.double=function(){do var e=s.next()>>>11,t=(s.next()>>>0)/0x100000000,r=(e+t)/2097152;while(0===r)return r},o.int32=s.next,o.quick=o,a&&(a.X&&n(a,s),o.state=function(){return n(s,{})}),o}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.xor4096=s}(t,"function"==typeof define&&define)},{}],dKWOY:[function(e,t,r,n){!function(e,t){function r(e){var t=this,r="";t.next=function(){var e=t.b,r=t.c,n=t.d,s=t.a;return e=e<<25^e>>>7^r,r=r-n|0,n=n<<24^n>>>8^s,s=s-e|0,t.b=e=e<<20^e>>>12^r,t.c=r=r-n|0,t.d=n<<16^r>>>16^s,t.a=s-e|0},t.a=0,t.b=0,t.c=-0x61c88647,t.d=0x517cc1b7,e===Math.floor(e)?(t.a=e/0x100000000|0,t.b=0|e):r+=e;for(var n=0;n<r.length+20;n++)t.b^=r.charCodeAt(n),t.next()}function n(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var s=new r(e),a=t&&t.state,o=function(){return(s.next()>>>0)/0x100000000};return o.double=function(){do var e=s.next()>>>11,t=(s.next()>>>0)/0x100000000,r=(e+t)/2097152;while(0===r)return r},o.int32=s.next,o.quick=o,a&&("object"==typeof a&&n(a,s),o.state=function(){return n(s,{})}),o}e&&e.exports?e.exports=s:t&&t.amd?t(function(){return s}):this.tychei=s}(t,"function"==typeof define&&define)},{}],"6rnJl":[function(e,t,r,n){!function(r,n,s){var a,o="random",l=s.pow(256,6),i=s.pow(2,52),p=2*i;function u(e,t,u){var h=[],g=f(function e(t,r){var n,s=[],a=typeof t;if(r&&"object"==a)for(n in t)try{s.push(e(t[n],r-1))}catch(e){}return s.length?s:"string"==a?t:t+"\0"}((t=!0==t?{entropy:!0}:t||{}).entropy?[e,m(n)]:null==e?function(){try{var e;return a&&(e=a.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),m(e)}catch(e){var t=r.navigator,s=t&&t.plugins;return[+new Date,r,s,r.screen,m(n)]}}():e,3),h),x=new c(h),y=function(){for(var e=x.g(6),t=l,r=0;e<i;)e=(e+r)*256,t*=256,r=x.g(1);for(;e>=p;)e/=2,t/=2,r>>>=1;return(e+r)/t};return y.int32=function(){return 0|x.g(4)},y.quick=function(){return x.g(4)/0x100000000},y.double=y,f(m(x.S),n),(t.pass||u||function(e,t,r,n){return(n&&(n.S&&d(n,x),e.state=function(){return d(x,{})}),r)?(s[o]=e,t):e})(y,g,"global"in t?t.global:this==s,t.state)}function c(e){var t,r=e.length,n=this,s=0,a=n.i=n.j=0,o=n.S=[];for(r||(e=[r++]);s<256;)o[s]=s++;for(s=0;s<256;s++)o[s]=o[a=255&a+e[s%r]+(t=o[s])],o[a]=t;(n.g=function(e){for(var t,r=0,s=n.i,a=n.j,o=n.S;e--;)t=o[s=255&s+1],r=256*r+o[255&(o[s]=o[a=255&a+t])+(o[a]=t)];return n.i=s,n.j=a,r})(256)}function d(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function f(e,t){for(var r,n=e+"",s=0;s<n.length;)t[255&s]=255&(r^=19*t[255&s])+n.charCodeAt(s++);return m(t)}function m(e){return String.fromCharCode.apply(0,e)}if(f(s.random(),n),t.exports){t.exports=u;try{a=e("55ffaba5e09143c0")}catch(e){}}else"function"==typeof define&&define.amd?define(function(){return u}):s["seed"+o]=u}("u">typeof self?self:this,[],Math)},{"55ffaba5e09143c0":"a3i1H"}],fpVWB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomNormal",()=>p);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let p=(0,l.op)({randomNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error(`Unsupported data type ${n}`);let l=new(0,i.MPRandGauss)(t,r,n,!1,s),p=(0,o.buffer)(e,n);for(let e=0;e<p.values.length;e++)p.values[e]=l.nextValue();return p.toTensor()}})},{"../util_base":"F0lVc","./buffer":"avZau","./operation":"2qT2c","./rand_util":"hVMjY","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"88IkR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomStandardNormal",()=>l);var a=e("./operation"),o=e("./random_normal");let l=(0,a.op)({randomStandardNormal_:function(e,t,r){if(null!=t&&"bool"===t)throw Error(`Unsupported data type ${t}`);return(0,o.randomNormal)(e,0,1,t,r)}})},{"./operation":"2qT2c","./random_normal":"fpVWB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4ABbh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomUniform",()=>p);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let p=(0,l.op)({randomUniform_:function(e,t=0,r=1,n="float32",s){(0,a.assertNonNegativeIntegerDimensions)(e);let l=(0,o.buffer)(e,n),p=new(0,i.UniformRandom)(t,r,null,s);for(let e=0;e<l.values.length;e++)l.values[e]=p.nextValue();return l.toTensor()}})},{"../util_base":"F0lVc","./buffer":"avZau","./operation":"2qT2c","./rand_util":"hVMjY","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1wcUn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"randomUniformInt",()=>l);var a=e("./operation"),o=e("./random_uniform");let l=(0,a.op)({randomUniformInt_:function(e,t,r,n){return(0,o.randomUniform)(e,t,r,"int32",n)}})},{"./operation":"2qT2c","./random_uniform":"4ABbh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5csZz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l);var a=e("../engine"),o=e("../kernel_names");function l(e,t,r=1,n="float32"){if(0===r)throw Error("Cannot have a step of zero");return a.ENGINE.runKernel(o.Range,{},{start:e,stop:t,step:r,dtype:n})}},{"../engine":"5aImO","../kernel_names":"bvyjS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4XEJf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reciprocal_:function(e){let t=(0,l.convertToTensor)(e,"x","reciprocal");return a.ENGINE.runKernel(o.Reciprocal,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7eL1z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu_:function(e){let t=(0,l.convertToTensor)(e,"x","relu");return a.ENGINE.runKernel(o.Relu,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9s4es":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({relu6_:function(e){let t=(0,l.convertToTensor)(e,"x","relu6");return a.ENGINE.runKernel(o.Relu6,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5pJzh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({reverse_:function(e,t){let r=(0,l.convertToTensor)(e,"x","reverse");return a.ENGINE.runKernel(o.Reverse,{x:r},{dims:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5ptuz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse1d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let p=(0,l.op)({reverse1d_:function(e){let t=(0,a.convertToTensor)(e,"x","reverse");return o.assert(1===t.rank,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),(0,i.reverse)(t,0)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./reverse":"5pJzh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dMjhv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse2d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let p=(0,l.op)({reverse2d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(2===r.rank,()=>`Error in reverse2D: x must be rank 2 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./reverse":"5pJzh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jpwxB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse3d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let p=(0,l.op)({reverse3d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(3===r.rank,()=>`Error in reverse3D: x must be rank 3 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./reverse":"5pJzh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ZG62":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse4d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reverse");let p=(0,l.op)({reverse4d_:function(e,t){let r=(0,a.convertToTensor)(e,"x","reverse");return o.assert(4===r.rank,()=>`Error in reverse4D: x must be rank 4 but got rank ${r.rank}.`),(0,i.reverse)(r,t)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./reverse":"5pJzh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aJvvJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({round_:function(e){let t=(0,l.convertToTensor)(e,"x","round");return a.ENGINE.runKernel(o.Round,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],abSmD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({rsqrt_:function(e){let t=(0,l.convertToTensor)(e,"x","rsqrt","float32");return a.ENGINE.runKernel(o.Rsqrt,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7vUht":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({selu_:function(e){let t=(0,l.convertToTensor)(e,"x","selu");return a.ENGINE.runKernel(o.Selu,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"957BD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"separableConv2d",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./conv2d"),i=e("./depthwise_conv2d"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({separableConv2d_:function(e,t,r,n,s,p=[1,1],c="NHWC"){let d=(0,a.convertToTensor)(e,"x","separableConv2d"),f=(0,a.convertToTensor)(t,"depthwiseFilter","separableConv2d"),m=(0,a.convertToTensor)(r,"pointwiseFilter","separableConv2d"),h=d,g=!1;if(3===d.rank&&(g=!0,h=(0,u.reshape)(d,[1,d.shape[0],d.shape[1],d.shape[2]])),"NCHW"===c)throw Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");o.assert(4===h.rank,()=>`Error in separableConv2d: input must be rank 4, but got rank ${h.rank}.`),o.assert(4===f.rank,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(4===m.rank,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${f.rank}.`),o.assert(1===m.shape[0],()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${m.shape[0]}.`),o.assert(1===m.shape[1],()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${m.shape[1]}.`);let x=f.shape[2],y=f.shape[3];o.assert(m.shape[2]===x*y,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${x*y}, but got ${m.shape[2]}.`);let v=(0,i.depthwiseConv2d)(h,f,n,s,c,p),b=(0,l.conv2d)(v,m,1,"valid",c);return g?(0,u.reshape)(b,[b.shape[1],b.shape[2],b.shape[3]]):b}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./conv2d":"15Bfz","./depthwise_conv2d":"6xOgC","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],XJY7f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"setdiff1dAsync",()=>i);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util");let i=async function(e,t){let r=(0,o.convertToTensor)(e,"x","setdiff1d"),n=(0,o.convertToTensor)(t,"y","setdiff1d");l.assert(r.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${r.dtype}) and y (${n.dtype}).`),l.assert(1===r.rank,()=>`x should be 1D tensor, but got x (${r.shape}).`),l.assert(1===n.rank,()=>`y should be 1D tensor, but got y (${n.shape}).`);let s=await r.data(),i=new Set(await n.data()),p=0;for(let e=0;e<s.length;e++)!i.has(s[e])&&p++;let u=new(0,a.TensorBuffer)([p],r.dtype),c=new(0,a.TensorBuffer)([p],"int32");for(let e=0,t=0;e<s.length;e++)!i.has(s[e])&&(u.values[t]=s[e],c.values[t]=e,t++);return[u.toTensor(),c.toTensor()]}},{"../tensor":"izSBk","../tensor_util_env":"feaHs","../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l1pAQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sign_:function(e){let t=(0,l.convertToTensor)(e,"x","sign");return a.ENGINE.runKernel(o.Sign,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"85oH9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sin_:function(e){let t=(0,l.convertToTensor)(e,"x","sin","float32");return a.ENGINE.runKernel(o.Sin,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"10dLP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({sinh_:function(e){let t=(0,l.convertToTensor)(e,"x","sinh");return a.ENGINE.runKernel(o.Sinh,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1cBaA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice1d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let p=(0,l.op)({slice1d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice1d");return o.assert(1===n.rank,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,[t],[r])}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./slice":"2W6nS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lA442:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice2d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let p=(0,l.op)({slice2d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice2d");return o.assert(2===n.rank,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./slice":"2W6nS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gI0CQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice3d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let p=(0,l.op)({slice3d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice3d");return o.assert(3===n.rank,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./slice":"2W6nS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jmw6U:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice4d",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./slice");let p=(0,l.op)({slice4d_:function(e,t,r){let n=(0,a.convertToTensor)(e,"x","slice4d");return o.assert(4===n.rank,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),(0,i.slice)(n,t,r)}})},{"../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","./slice":"2W6nS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eLr7q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({softmax_:function(e,t=-1){let r=(0,l.convertToTensor)(e,"logits","softmax","float32");if(-1===t&&(t=r.rank-1),t!==r.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${r.rank} and dim was ${t}`);let n={dim:t};return a.ENGINE.runKernel(o.Softmax,{logits:r},n)}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],J28Me:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({fft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.FFT,{input:e})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../util":"F0lVc","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gTvtb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../util");let i=(0,e("../operation").op)({ifft_:function(e){return(0,l.assert)("complex64"===e.dtype,()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`),a.ENGINE.runKernel(o.IFFT,{input:e})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../util":"F0lVc","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hpn1V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"irfft",()=>g);var a=e("../complex"),o=e("../concat"),l=e("../imag"),i=e("../mul"),p=e("../operation"),u=e("../real"),c=e("../reshape"),d=e("../reverse"),f=e("../scalar"),m=e("../slice"),h=e("./ifft");let g=(0,p.op)({irfft_:function(e){let t,r=e.shape[e.shape.length-1],n=e.size/r;if(r<=2){let s=(0,c.reshape)(e,[n,r]);t=(0,h.ifft)(s)}else{let s=[n,2*(r-1)],p=(0,c.reshape)((0,u.real)(e),[n,r]),g=(0,c.reshape)((0,l.imag)(e),[n,r]),x=(0,d.reverse)((0,m.slice)(p,[0,1],[n,r-2]),1),y=(0,i.mul)((0,d.reverse)((0,m.slice)(g,[0,1],[n,r-2]),1),(0,f.scalar)(-1)),v=(0,o.concat)([p,x],1),b=(0,o.concat)([g,y],1),k=(0,c.reshape)((0,a.complex)(v,b),[s[0],s[1]]);t=(0,h.ifft)(k)}if(t=(0,u.real)(t),3===e.rank&&0!==e.shape[0]){let r=t,n=e.shape[0];t=(0,c.reshape)(t,[n,t.shape[0]/n,t.shape[1]]),r.dispose()}return t}})},{"../complex":"5l7Tr","../concat":"fUcw1","../imag":"jcbh1","../mul":"6u9Cs","../operation":"2qT2c","../real":"hmpeq","../reshape":"i9E3v","../reverse":"5pJzh","../scalar":"fhZsH","../slice":"2W6nS","./ifft":"gTvtb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jGVbe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rfft",()=>x);var a=e("../../util"),o=e("../complex"),l=e("../concat"),i=e("../imag"),p=e("../operation"),u=e("../real"),c=e("../reshape"),d=e("../slice"),f=e("../split"),m=e("../zeros"),h=e("../zeros_like"),g=e("./fft");let x=(0,p.op)({rfft_:function(e,t){let r;(0,a.assert)("float32"===e.dtype,()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],s=e.size/n;if(null!=t&&t<n){let s=e.shape.map(e=>0),a=e.shape.map(e=>e);a[e.shape.length-1]=t,r=(0,d.slice)(e,s,a),n=t}else if(null!=t&&t>n){let s=e.shape.map(e=>e);s[e.shape.length-1]=t-n,r=(0,l.concat)([e,(0,m.zeros)(s)],e.shape.length-1),n=t}else r=e;let p=(0,h.zerosLike)(r),x=(0,c.reshape)((0,o.complex)(r,p),[s,n]),y=(0,g.fft)(x),v=Math.floor(n/2)+1,b=(0,u.real)(y),k=(0,i.imag)(y),_=(0,f.split)(b,[v,n-v],b.shape.length-1),I=(0,f.split)(k,[v,n-v],k.shape.length-1),j=r.shape.slice();return j[r.shape.length-1]=v,(0,c.reshape)((0,o.complex)(_[0],I[0]),j)}})},{"../../util":"F0lVc","../complex":"5l7Tr","../concat":"fUcw1","../imag":"jcbh1","../operation":"2qT2c","../real":"hmpeq","../reshape":"i9E3v","../slice":"2W6nS","../split":"hosKB","../zeros":"3kicB","../zeros_like":"gLLzC","./fft":"J28Me","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hosKB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"split",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({split_:function(e,t,r=0){let n=(0,l.convertToTensor)(e,"x","split");return a.ENGINE.runKernel(o.SplitV,{x:n},{numOrSizeSplits:t,axis:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"93Vr6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util"),i=e("../tensor_util_env"),p=e("./broadcast_util");let u=(0,e("./operation").op)({squaredDifference_:function(e,t){let r=(0,i.convertToTensor)(e,"a","squaredDifference"),n=(0,i.convertToTensor)(t,"b","squaredDifference");[r,n]=(0,l.makeTypesMatch)(r,n),(0,p.assertAndGetBroadcastShape)(r.shape,n.shape);let s={a:r,b:n};return a.ENGINE.runKernel(o.SquaredDifference,s,{})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util":"5lFsY","../tensor_util_env":"feaHs","./broadcast_util":"eciNq","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"36eHf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squeeze",()=>p);var a=e("../tensor_util_env"),o=e("../util"),l=e("./operation"),i=e("./reshape");let p=(0,l.op)({squeeze_:function(e,t){let r=(0,a.convertToTensor)(e,"x","squeeze","string_or_numeric");return(0,i.reshape)(r,(0,o.squeezeShape)(r.shape,t).newShape)}})},{"../tensor_util_env":"feaHs","../util":"F0lVc","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8vGzW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stack",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({stack_:function(e,t=0){let r=(0,l.convertToTensorArray)(e,"tensors","stack","string_or_numeric");return i.assert(r.length>=1,()=>"Pass at least one tensor to tf.stack"),r.length>0&&i.assert(t<=r[0].rank,()=>"Axis must be<= rank of the tensor"),a.ENGINE.runKernel(o.Pack,r,{axis:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"60OEJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({step_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","step");return a.ENGINE.runKernel(o.Step,{x:r},{alpha:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3zFFo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({stridedSlice_:function(e,t,r,n,s=0,i=0,p=0,u=0,c=0){let d=(0,l.convertToTensor)(e,"x","stridedSlice","string_or_numeric");return a.ENGINE.runKernel(o.StridedSlice,{x:d},{begin:t,end:r,strides:n,beginMask:s,endMask:i,ellipsisMask:p,newAxisMask:u,shrinkAxisMask:c})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cl6hU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({tan_:function(e){let t=(0,l.convertToTensor)(e,"x","tan","float32");return a.ENGINE.runKernel(o.Tan,{x:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lb2KH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor1d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t){(0,o.assertNonNull)(e);let r=(0,a.inferShape)(e,t);if(1!==r.length)throw Error("tensor1d() requires values to be a flat/TypedArray");return(0,l.makeTensor)(e,null,r,t)}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6MVsa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor2d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&2!==t.length)throw Error("tensor2d() requires shape to have two numbers");let n=(0,a.inferShape)(e,r);if(2!==n.length&&1!==n.length)throw Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kOCb5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor4d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&4!==t.length)throw Error("tensor4d() requires shape to have four numbers");let n=(0,a.inferShape)(e,r);if(4!==n.length&&1!==n.length)throw Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor4d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kGPFM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor5d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&5!==t.length)throw Error("tensor5d() requires shape to have five numbers");let n=(0,a.inferShape)(e,r);if(5!==n.length&&1!==n.length)throw Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor5d() requires shape to be provided when `values` are a flat array");return(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5tzeG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensor6d",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor_ops_util");function i(e,t,r){if((0,o.assertNonNull)(e),null!=t&&6!==t.length)throw Error("tensor6d() requires shape to have six numbers");let n=(0,a.inferShape)(e,r);if(6!==n.length&&1!==n.length)throw Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(1===n.length&&null==t)throw Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,(0,l.makeTensor)(e,t,n,r)}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor_ops_util":"5BQrn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hRVwH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("./operation"),p=e("./scatter_nd_util");let u=(0,i.op)({tensorScatterUpdate_:function(e,t,r){let n=(0,l.convertToTensor)(e,"tensor","tensorScatterupdate"),s=(0,l.convertToTensor)(t,"indices","tensorScatterupdate","int32"),i=(0,l.convertToTensor)(r,"updates","tensorScatterupdate");if(p.validateInput(i,s,n.shape),n.dtype!==i.dtype)throw Error(`tensor and updates must have the same dtype, instead they are ${n.dtype} and ${i.dtype}.`);return a.ENGINE.runKernel(o.TensorScatterUpdate,{tensor:n,indices:s,updates:i},{})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","./scatter_nd_util":"8P3GB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3KB71":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topk",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({topk_:function(e,t=1,r=!0){let n=(0,l.convertToTensor)(e,"x","topk");if(0===n.rank)throw Error("topk() expects the input to be of rank 1 or higher");let s=n.shape[n.shape.length-1];if(t<0)throw Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>s)throw Error(`'k' passed to topk() must be<= the last dimension (${s}) but got ${t}`);let[i,p]=a.ENGINE.runKernel(o.TopK,{x:n},{k:t,sorted:r});return{values:i,indices:p}}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kaPZh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"truncatedNormal",()=>p);var a=e("../util_base"),o=e("./buffer"),l=e("./operation"),i=e("./rand_util");let p=(0,l.op)({truncatedNormal_:function(e,t=0,r=1,n,s){if((0,a.assertNonNegativeIntegerDimensions)(e),null!=n&&"bool"===n)throw Error("Unsupported data type $ { dtype }");let l=new(0,i.MPRandGauss)(t,r,n,!0,s),p=(0,o.buffer)(e,n);for(let e=0;e<p.values.length;e++)p.values[e]=l.nextValue();return p.toTensor()}})},{"../util_base":"F0lVc","./buffer":"avZau","./operation":"2qT2c","./rand_util":"hVMjY","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6dZfu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({unique_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unique","string_or_numeric");(0,i.assert)(r.rank>0,()=>"The input tensor must be at least 1D");let[n,s]=a.ENGINE.runKernel(o.Unique,{x:r},{axis:t});return{values:n,indices:s}}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"F0lVc","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hY4In:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({unsortedSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"x","unsortedSegmentSum"),s=(0,l.convertToTensor)(t,"segmentIds","unsortedSegmentSum","int32");return(0,i.assert)((0,i.isInt)(r),()=>"numSegments must be of dtype int"),a.ENGINE.runKernel(o.UnsortedSegmentSum,{x:n,segmentIds:s},{numSegments:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"F0lVc","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bx2AH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unstack",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util");let p=(0,e("./operation").op)({unstack_:function(e,t=0){let r=(0,l.convertToTensor)(e,"x","unstack","string_or_numeric");return i.assert(t>=-r.shape.length&&t<r.shape.length,()=>`Axis = ${t} is not in [-${r.shape.length}, ${r.shape.length})`),a.ENGINE.runKernel(o.Unpack,{value:r},{axis:t})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util":"98aA6","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kaaHf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upperBound",()=>o);var a=e("./search_sorted");function o(e,t){return(0,a.searchSorted)(e,t,"right")}},{"./search_sorted":"cZ6pF","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4t17o":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"variable",()=>o);var a=e("../engine");function o(e,t=!0,r,n){return a.ENGINE.makeVariable(e,t,r,n)}},{"../engine":"5aImO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],de05e:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereAsync",()=>l);var a=e("../backends/where_impl"),o=e("../tensor_util_env");let l=async function(e){let t=(0,o.convertToTensor)(e,"condition","whereAsync","bool"),r=await t.data(),n=(0,a.whereImpl)(t.shape,r);return e!==t&&t.dispose(),n}},{"../backends/where_impl":"fNvdb","../tensor_util_env":"feaHs","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fNvdb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"whereImpl",()=>o);var a=e("../ops/buffer");function o(e,t){let r=[];for(let e=0;e<t.length;e++)t[e]&&r.push(e);let n=(0,a.buffer)(e,"int32"),s=(0,a.buffer)([r.length,e.length],"int32");for(let t=0;t<r.length;t++){let a=n.indexToLoc(r[t]),o=t*e.length;s.values.set(a,o)}return s.toTensor()}},{"../ops/buffer":"avZau","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cgVEY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"booleanMaskAsync",()=>c);var a=e("../tensor_util_env"),o=e("../util"),l=e("./gather"),i=e("./reshape"),p=e("./squeeze"),u=e("./where_async");let c=async function(e,t,r){let n=(0,a.convertToTensor)(e,"tensor","boolMask"),s=(0,a.convertToTensor)(t,"mask","boolMask","bool"),c=null==r?0:r,d=s.rank,f=n.shape;o.assert(d>0,()=>"mask cannot be scalar"),o.assertShapesMatch(f.slice(c,c+d),s.shape,"mask's shape must match the first K dimensions of tensor's shape,");let m=1;for(let e=c;e<c+d;e++)m*=f[e];let h=f.slice(0,c).concat([m],f.slice(c+d)),g=(0,i.reshape)(n,h),x=(0,i.reshape)(s,[-1]),y=await (0,u.whereAsync)(x),v=(0,p.squeeze)(y,[1]),b=(0,l.gather)(g,v,c);return e!==n&&n.dispose(),t!==s&&s.dispose(),v.dispose(),g.dispose(),x.dispose(),y.dispose(),b}},{"../tensor_util_env":"feaHs","../util":"98aA6","./gather":"3huLg","./reshape":"i9E3v","./squeeze":"36eHf","./where_async":"de05e","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kasEV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"movingAverage",()=>h);var a=e("../tensor_util"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),p=e("./div"),u=e("./mul"),c=e("./operation"),d=e("./pow"),f=e("./scalar"),m=e("./sub");let h=(0,c.op)({movingAverage_:function(e,t,r,n,s=!0){let c=(0,o.convertToTensor)(e,"v","movingAverage"),h=(0,o.convertToTensor)(t,"x","movingAverage"),g=(0,o.convertToTensor)(r,"decay","movingAverage");(0,a.assertTypesMatch)(c,h),l.assert(l.arraysEqual(c.shape,h.shape),()=>"Shape mismatch in v and x");let x=(0,f.scalar)(1),y=(0,m.sub)(x,g),v=(0,u.mul)((0,m.sub)(h,c),y);if(s){l.assert(null!=n,()=>"When using zeroDebias: true, step is required.");let e=(0,o.convertToTensor)(n,"step","movingAverage");v=(0,p.div)(v,(0,m.sub)(x,(0,d.pow)(g,e)))}return(0,i.add)(c,v)}})},{"../tensor_util":"5lFsY","../tensor_util_env":"feaHs","../util":"98aA6","./add":"6AYbH","./div":"j6hSn","./mul":"6u9Cs","./operation":"2qT2c","./pow":"lnrqj","./scalar":"fhZsH","./sub":"1laxX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gaq52:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterND",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env"),i=e("../util_base"),p=e("./operation"),u=e("./scatter_nd_util");let c=(0,p.op)({scatterND_:function(e,t,r){(0,i.assertNonNegativeIntegerDimensions)(r);let n=(0,l.convertToTensor)(e,"indices","scatterND","int32"),s=(0,l.convertToTensor)(t,"updates","scatterND");return u.validateInput(s,n,r),a.ENGINE.runKernel(o.ScatterNd,{indices:n,updates:s},{shape:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","../util_base":"F0lVc","./operation":"2qT2c","./scatter_nd_util":"8P3GB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"40IS2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>u);var a=e("../engine"),o=e("../kernel_names"),l=e("../ops/sparse_to_dense_util"),i=e("../tensor_util_env"),p=e("../util_base");let u=(0,e("./operation").op)({sparseToDense_:function(e,t,r,n=0){(0,p.assertNonNegativeIntegerDimensions)(r);let s=(0,i.convertToTensor)(e,"sparseIndices","sparseToDense","int32"),u=(0,i.convertToTensor)(t,"sparseValues","sparseToDense","string_or_numeric"),c=(0,i.convertToTensor)(n,"defaultValue","sparseToDense",u.dtype);return l.validateInput(s,u,r,c),a.ENGINE.runKernel(o.SparseToDense,{sparseIndices:s,sparseValues:u,defaultValue:c},{outputShape:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../ops/sparse_to_dense_util":"38CBD","../tensor_util_env":"feaHs","../util_base":"F0lVc","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"38CBD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n){if("int32"!==e.dtype)throw Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let s=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(r.length!==a)throw Error(`outputShape has incorrect number of elements:, ${r.length}, should be: ${a}.`);let o=t.size;if(0!==t.rank&&(1!==t.rank||o!==s))throw Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${s}]`);if(t.dtype!==n.dtype)throw Error("sparseValues.dtype must match defaultValues.dtype")}s.defineInteropFlag(r),s.export(r,"validateInput",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kKwqz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherND",()=>i);var a=e("../engine"),o=e("../kernel_names"),l=e("../tensor_util_env");let i=(0,e("./operation").op)({gatherND_:function(e,t){let r=(0,l.convertToTensor)(t,"indices","gatherND","int32"),n=(0,l.convertToTensor)(e,"x","gatherND","string_or_numeric");return a.ENGINE.runKernel(o.GatherNd,{params:n,indices:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../tensor_util_env":"feaHs","./operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],brhWc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dropout",()=>h);var a=e("../tensor"),o=e("../tensor_util_env"),l=e("../util"),i=e("./add"),p=e("./div"),u=e("./dropout_util"),c=e("./floor"),d=e("./mul"),f=e("./operation"),m=e("./random_uniform");let h=(0,f.op)({dropout_:function(e,t,r,n){let s=(0,o.convertToTensor)(e,"x","dropout");if(l.assert("float32"===s.dtype,()=>`x has to be a floating point tensor since it's going to be scaled, but got a ${s.dtype} tensor instead.`),l.assert(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),0===t)return e instanceof a.Tensor?s.clone():s;let f=(0,u.getNoiseShape)(s,r),h=1-t,g=(0,p.div)((0,c.floor)((0,i.add)((0,m.randomUniform)(f,0,1,"float32",n),h)),h);return(0,d.mul)(s,g)}})},{"../tensor":"izSBk","../tensor_util_env":"feaHs","../util":"98aA6","./add":"6AYbH","./div":"j6hSn","./dropout_util":"jVfaI","./floor":"gaOdC","./mul":"6u9Cs","./operation":"2qT2c","./random_uniform":"4ABbh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jVfaI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getNoiseShape",()=>o);var a=e("../util");function o(e,t){if(null==t)return e.shape.slice();if(a.arraysEqual(e.shape,t))return t;if(e.shape.length===t.length){let r=[];for(let n=0;n<e.shape.length;n++)null==t[n]&&null!=e.shape[n]?r.push(e.shape[n]):r.push(t[n]);return r}return t}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hYHLJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"enclosingPowerOfTwo",()=>o),s.export(r,"cosineWindow",()=>l);var a=e("./tensor1d");function o(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function l(e,t,r){let n=1-e%2,s=new Float32Array(e);for(let a=0;a<e;++a){let o=2*Math.PI*a/(e+n-1);s[a]=t-r*Math.cos(o)}return(0,a.tensor1d)(s,"float32")}},{"./tensor1d":"lb2KH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"62nZ7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"inTopKAsync",()=>i);var a=e("../tensor_util_env"),o=e("../util"),l=e("./tensor");let i=async function(e,t,r=1){let n=(0,a.convertToTensor)(e,"predictions","inTopK"),s=(0,a.convertToTensor)(t,"targets","inTopK");(0,o.assert)(n.rank>1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),(0,o.assert)(n.rank-1===s.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${s.rank}`),(0,o.assertShapesMatch)(n.shape.slice(0,n.shape.length-1),s.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let i=n.shape[n.shape.length-1];(0,o.assert)(r>0&&r<=i,()=>`'k' passed to inTopK() must be > 0 &&<= the predictions last dimension (${i}), but got ${r}`);let p=await n.data(),u=await s.data(),[c,d]=[p.length/i,i],f=(0,o.getTypedArrayFromDType)("bool",c);for(let e=0;e<c;e++){let t=e*d,n=p.subarray(t,t+d),s=[];for(let e=0;e<n.length;e++)s.push({value:n[e],index:e});s.sort((e,t)=>t.value-e.value),f[e]=0;for(let t=0;t<r;t++)if(s[t].index===u[e]){f[e]=1;break}}return e!==n&&n.dispose(),t!==s&&s.dispose(),(0,l.tensor)(f,s.shape,"bool")}},{"../tensor_util_env":"feaHs","../util":"F0lVc","./tensor":"dTxMo","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],b3kjm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>a.conv2d),s.export(r,"depthwiseConv2d",()=>o.depthwiseConv2d),s.export(r,"matMul",()=>l.matMul);var a=e("./fused/conv2d"),o=e("./fused/depthwise_conv2d"),l=e("./fused/mat_mul")},{"./fused/conv2d":"16Xhb","./fused/depthwise_conv2d":"7YX01","./fused/mat_mul":"9SrVy","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"16Xhb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>b);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),p=e("../../tensor_util_env"),u=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv2d"),m=e("../conv2d_backprop_filter"),h=e("../conv2d_backprop_input"),g=e("../conv_util"),x=e("../fused_util"),y=e("../operation"),v=e("../reshape");let b=(0,y.op)({fusedConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:y=[1,1],dimRoundingMode:b,bias:k,activation:_="linear",preluActivationWeights:I,leakyreluAlpha:j}){let w,T;if(_=_||"linear",!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,_)){u.assert("NHWC"===s,()=>`Error in fused conv2d: got dataFormat of ${s} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let a=(0,f.conv2d)(e,t,r,n,s,y,b);return null!=k&&(a=(0,c.add)(a,k)),(0,x.applyActivation)(a,_,I,j)}let S=(0,p.convertToTensor)(e,"x","conv2d","float32"),C=(0,p.convertToTensor)(t,"filter","conv2d","float32"),N=S,E=!1;3===S.rank&&(E=!0,N=(0,v.reshape)(S,[1,S.shape[0],S.shape[1],S.shape[2]])),u.assert(4===N.rank,()=>`Error in fused conv2d: input must be rank 4, but got rank ${N.rank}.`),u.assert(4===C.rank,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${C.rank}.`),g.checkPadOnDimRoundingMode("fused conv2d",n,b);let F="NHWC"===s?N.shape[3]:N.shape[1];u.assert(C.shape[2]===F,()=>`Error in conv2d: depth of input (${F}) must match input depth for filter ${C.shape[2]}.`),u.assert(g.eitherStridesOrDilationsAreOne(r,y),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${r} and dilations '${y}'`);let A=g.computeConv2DInfo(N.shape,C.shape,r,y,n,b);if(null!=k&&(w=(0,p.convertToTensor)(k,"bias","fused conv2d"),[w]=(0,i.makeTypesMatch)(w,S),"NHWC"===s?d.assertAndGetBroadcastShape(A.outShape,w.shape):(u.assert(w.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${w.shape.length}.`),u.assert(0===w.shape.length||w.shape[0]===A.outChannels||1===w.shape[0],()=>`Error in fused conv2d: bias shape (${w.shape}) is not compatible with the number of output channels (${A.outChannels})`))),null!=I){let e=I.shape;if(u.assert(e.length<=1||3===e.length,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${e.length}.`),1===e.length)u.assert(1===e[0]||e[0]===A.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the number of output channels (${A.outChannels}).`);else if(3===e.length)try{d.assertAndGetBroadcastShape(e,A.outShape)}catch(t){throw Error(`Error in fused conv2d: PReLU activation weights (${e}) is not compatible with the output shape of the conv2d (${A.outShape}).`)}T=(0,p.convertToTensor)(I,"prelu weights","fused conv2d")}let R=(e,t)=>{u.assert("NHWC"===s,()=>`Error in gradient of fused conv2D: got dataFormat of ${s} but only NHWC is currently supported.`);let[a,o,l,i]=t,p=(0,x.getFusedDyActivation)(e,l,_);u.assert(g.tupleValuesAreOne(y),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${y}'`);let c=[(0,h.conv2DBackpropInput)(o.shape,p,a,r,n),(0,m.conv2DBackpropFilter)(o,p,a.shape,r,n)];if(null!=i){let e=(0,x.getFusedBiasGradient)(i,p);c.push(e)}return c},P={x:N,filter:C,bias:w,preluActivationWeights:T},$={strides:r,pad:n,dataFormat:s,dilations:y,dimRoundingMode:b,activation:_,leakyreluAlpha:j};return null==k?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedConv2D,P,$);return r([t,e,n]),E&&(n=(0,v.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:R}})(N,C):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedConv2D,P,$);return n([t,e,s,r]),E&&(s=(0,v.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:R}})(N,C,w)}})},{"../../engine":"5aImO","../../gradients":"bUS3C","../../kernel_names":"bvyjS","../../tensor_util":"5lFsY","../../tensor_util_env":"feaHs","../../util":"98aA6","../add":"6AYbH","../broadcast_util":"eciNq","../conv2d":"15Bfz","../conv2d_backprop_filter":"fPuIk","../conv2d_backprop_input":"jycaD","../conv_util":"ckBsO","../fused_util":"cl7EF","../operation":"2qT2c","../reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fPuIk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>c);var a=e("../engine"),o=e("../kernel_names"),l=e("../util"),i=e("./conv_util"),p=e("./operation"),u=e("./reshape");let c=(0,p.op)({conv2DBackpropFilter_:function(e,t,r,n,s,p="NHWC",c){let d=e;3===e.rank&&(d=(0,u.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let f=t;3===f.rank&&(f=(0,u.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]])),l.assert(4===d.rank,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${d.shape}.`),l.assert(4===f.rank,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${f.shape}.`),l.assert(4===r.length,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${r}.`);let m="NHWC"===p?d.shape[3]:d.shape[1],h="NHWC"===p?f.shape[3]:f.shape[1];l.assert(m===r[2],()=>`Error in conv2dDerFilter: depth of input ${m}) must match input depth in filter (${r[2]}.`),l.assert(h===r[3],()=>`Error in conv2dDerFilter: depth of dy (${h}) must match output depth for filter (${r[3]}).`),i.checkPadOnDimRoundingMode("conv2dDerFilter",s,c);let g={x:d,dy:f};return a.ENGINE.runKernel(o.Conv2DBackpropFilter,g,{strides:n,pad:s,dataFormat:p,dimRoundingMode:c,filterShape:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","../util":"98aA6","./conv_util":"ckBsO","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cl7EF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getFusedDyActivation",()=>g),s.export(r,"getFusedBiasGradient",()=>x),s.export(r,"applyActivation",()=>y),s.export(r,"shouldFuse",()=>v);var a=e("./broadcast_util"),o=e("./elu"),l=e("./leaky_relu"),i=e("./mul"),p=e("./prelu"),u=e("./relu"),c=e("./relu6"),d=e("./reshape"),f=e("./sigmoid"),m=e("./step"),h=e("./sum");function g(e,t,r){if(null==r||"linear"===r)return e;if("relu"===r)return(0,i.mul)(e,(0,m.step)(t));throw Error(`Cannot compute gradient for fused activation ${r}.`)}function x(e,t){let r=t,n=a.getReductionAxes(e.shape,t.shape);return n.length>0&&(r=(0,h.sum)(r,n)),(0,d.reshape)(r,e.shape)}function y(e,t,r,n){if("linear"===t)return e;if("relu"===t)return(0,u.relu)(e);if("elu"===t)return(0,o.elu)(e);if("relu6"===t)return(0,c.relu6)(e);if("prelu"===t)return(0,p.prelu)(e,r);else if("leakyrelu"===t)return(0,l.leakyRelu)(e,n);else if("sigmoid"===t)return(0,f.sigmoid)(e);throw Error(`Unknown fused activation ${t}.`)}let v=(e,t)=>!(e>0)||"linear"===t},{"./broadcast_util":"eciNq","./elu":"ezxha","./leaky_relu":"6T6LU","./mul":"6u9Cs","./prelu":"ez5fa","./relu":"7eL1z","./relu6":"9s4es","./reshape":"i9E3v","./sigmoid":"hx1GK","./step":"60OEJ","./sum":"jrqRB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7YX01":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2d",()=>b);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),p=e("../../tensor_util_env"),u=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../conv_util"),m=e("../depthwise_conv2d"),h=e("../depthwise_conv2d_native_backprop_filter"),g=e("../depthwise_conv2d_native_backprop_input"),x=e("../fused_util"),y=e("../operation"),v=e("../reshape");let b=(0,y.op)({fusedDepthwiseConv2d_:function({x:e,filter:t,strides:r,pad:n,dataFormat:s="NHWC",dilations:y=[1,1],dimRoundingMode:b,bias:k,activation:_="linear",preluActivationWeights:I,leakyreluAlpha:j}){let w,T;if(!1===(0,x.shouldFuse)(a.ENGINE.state.gradientDepth,_)){let a=(0,m.depthwiseConv2d)(e,t,r,n,s,y,b);return null!=k&&(a=(0,c.add)(a,k)),(0,x.applyActivation)(a,_,I,j)}let S=(0,p.convertToTensor)(e,"x","depthwiseConv2d","float32"),C=(0,p.convertToTensor)(t,"filter","depthwiseConv2d","float32"),N=S,E=!1;3===S.rank&&(E=!0,N=(0,v.reshape)(S,[1,S.shape[0],S.shape[1],S.shape[2]])),u.assert(4===N.rank,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${N.rank}.`),u.assert(4===C.rank,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${C.rank}.`),u.assert(N.shape[3]===C.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${N.shape[3]}) must match the inChannels dimension in filter ${C.shape[2]}.`),null==y&&(y=[1,1]),u.assert(f.eitherStridesOrDilationsAreOne(r,y),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${y}'`),f.checkPadOnDimRoundingMode("fused depthwiseConv2d",n,b);let F=f.computeConv2DInfo(N.shape,C.shape,r,y,n,b,!0);null!=k&&(w=(0,p.convertToTensor)(k,"bias","fused conv2d"),[w]=(0,i.makeTypesMatch)(w,S),d.assertAndGetBroadcastShape(F.outShape,w.shape)),null!=I&&(T=(0,p.convertToTensor)(I,"prelu weights","fused depthwiseConv2d"));let A=(e,t)=>{u.assert(f.tupleValuesAreOne(y),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${y}'`);let[s,a,o,l]=t,i=(0,x.getFusedDyActivation)(e,o,_),p=(0,g.depthwiseConv2dNativeBackpropInput)(a.shape,i,s,r,n,y,b),c=(0,h.depthwiseConv2dNativeBackpropFilter)(a,i,s.shape,r,n,y,b);return null!=l?[p,c,(0,x.getFusedBiasGradient)(w,i)]:[p,c]},R={x:N,filter:C,bias:w,preluActivationWeights:T},P={strides:r,pad:n,dataFormat:s,dilations:y,dimRoundingMode:b,activation:_,leakyreluAlpha:j};return null==k?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,P);return r([t,e,n]),E&&(n=(0,v.reshape)(n,[n.shape[1],n.shape[2],n.shape[3]])),{value:n,gradFunc:A}})(N,C):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l.FusedDepthwiseConv2D,R,P);return n([t,e,s,r]),E&&(s=(0,v.reshape)(s,[s.shape[1],s.shape[2],s.shape[3]])),{value:s,gradFunc:A}})(N,C,w)}})},{"../../engine":"5aImO","../../gradients":"bUS3C","../../kernel_names":"bvyjS","../../tensor_util":"5lFsY","../../tensor_util_env":"feaHs","../../util":"98aA6","../add":"6AYbH","../broadcast_util":"eciNq","../conv_util":"ckBsO","../depthwise_conv2d":"6xOgC","../depthwise_conv2d_native_backprop_filter":"ig4Lb","../depthwise_conv2d_native_backprop_input":"4Q9rk","../fused_util":"cl7EF","../operation":"2qT2c","../reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ig4Lb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let p=(0,l.op)({depthwiseConv2dNativeBackpropFilter_:function(e,t,r,n,s,l=[1,1],p){let u=e;3===e.rank&&(u=(0,i.reshape)(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let c=t;3===c.rank&&(c=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={x:u,dy:c};return a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropFilter,d,{strides:n,pad:s,dimRoundingMode:p,dilations:l,filterShape:r})}})},{"../engine":"5aImO","../kernel_names":"bvyjS","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4Q9rk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>p);var a=e("../engine"),o=e("../kernel_names"),l=e("./operation"),i=e("./reshape");let p=(0,l.op)({depthwiseConv2dNativeBackpropInput_:function(e,t,r,n,s,l=[1,1],p){let u=t,c=!1;3===t.rank&&(c=!0,u=(0,i.reshape)(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let d={dy:u,filter:r},f=a.ENGINE.runKernel(o.DepthwiseConv2dNativeBackpropInput,d,{strides:n,pad:s,dimRoundingMode:p,dilations:l,inputShape:e});return c?(0,i.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../engine":"5aImO","../kernel_names":"bvyjS","./operation":"2qT2c","./reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9SrVy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"matMul",()=>x);var a=e("../../engine"),o=e("../../gradients"),l=e("../../kernel_names"),i=e("../../tensor_util"),p=e("../../tensor_util_env"),u=e("../../util"),c=e("../add"),d=e("../broadcast_util"),f=e("../fused_util"),m=e("../mat_mul"),h=e("../operation"),g=e("../reshape");let x=(0,h.op)({fusedMatMul_:function({a:e,b:t,transposeA:r=!1,transposeB:n=!1,bias:s,activation:h="linear",preluActivationWeights:x,leakyreluAlpha:y=.2}){let v,b;if(!1===(0,f.shouldFuse)(a.ENGINE.state.gradientDepth,h)){let a=(0,m.matMul)(e,t,r,n);return null!=s&&(a=(0,c.add)(a,s)),(0,f.applyActivation)(a,h,x,y)}let k=(0,p.convertToTensor)(e,"a","fused matMul"),_=(0,p.convertToTensor)(t,"b","fused matMul");[k,_]=(0,i.makeTypesMatch)(k,_);let I=r?k.shape[k.rank-2]:k.shape[k.rank-1],j=n?_.shape[_.rank-1]:_.shape[_.rank-2],w=r?k.shape[k.rank-1]:k.shape[k.rank-2],T=n?_.shape[_.rank-2]:_.shape[_.rank-1],S=k.shape.slice(0,-2),C=_.shape.slice(0,-2),N=u.sizeFromShape(S),E=u.sizeFromShape(C);u.assert(I===j,()=>`Error in fused matMul: inner shapes (${I}) and (${j}) of Tensors with shapes ${k.shape} and ${_.shape} and transposeA=${r} and transposeB=${n} must match.`);let F=d.assertAndGetBroadcastShape(k.shape.slice(0,-2),_.shape.slice(0,-2)).concat([w,T]),A=r?(0,g.reshape)(k,[N,I,w]):(0,g.reshape)(k,[N,w,I]),R=n?(0,g.reshape)(_,[E,T,j]):(0,g.reshape)(_,[E,j,T]);null!=s&&(v=(0,p.convertToTensor)(s,"bias","fused matMul"),[v]=(0,i.makeTypesMatch)(v,k),d.assertAndGetBroadcastShape(F,v.shape)),null!=x&&(b=(0,p.convertToTensor)(x,"prelu weights","fused matMul"));let P=(e,t)=>{let a,o,[l,i,p,u]=t,c=(0,f.getFusedDyActivation)((0,g.reshape)(e,p.shape),p,h);return(r||n?!r&&n?(a=(0,m.matMul)(c,i,!1,!1),o=(0,m.matMul)(c,l,!0,!1)):r&&!n?(a=(0,m.matMul)(i,c,!1,!0),o=(0,m.matMul)(l,c,!1,!1)):(a=(0,m.matMul)(i,c,!0,!0),o=(0,m.matMul)(c,l,!0,!0)):(a=(0,m.matMul)(c,i,!1,!0),o=(0,m.matMul)(l,c,!0,!1)),null!=s)?[a,o,(0,f.getFusedBiasGradient)(u,c)]:[a,o]},$={a:A,b:R,bias:v,preluActivationWeights:b},O={transposeA:r,transposeB:n,activation:h,leakyreluAlpha:y};return null==s?(0,o.customGrad)((e,t,r)=>{let n=a.ENGINE.runKernel(l._FusedMatMul,$,O);return r([e,t,n]),{value:(0,g.reshape)(n,F),gradFunc:P}})(A,R):(0,o.customGrad)((e,t,r,n)=>{let s=a.ENGINE.runKernel(l._FusedMatMul,$,O);return n([e,t,s,r]),{value:(0,g.reshape)(s,F),gradFunc:P}})(A,R,v)}})},{"../../engine":"5aImO","../../gradients":"bUS3C","../../kernel_names":"bvyjS","../../tensor_util":"5lFsY","../../tensor_util_env":"feaHs","../../util":"98aA6","../add":"6AYbH","../broadcast_util":"eciNq","../fused_util":"cl7EF","../mat_mul":"jyMFR","../operation":"2qT2c","../reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fno0k:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hammingWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hammingWindow_:function(e){return(0,o.cosineWindow)(e,.54,.46)}})},{"../operation":"2qT2c","../signal_ops_util":"hYHLJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],deHg2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hannWindow",()=>l);var a=e("../operation"),o=e("../signal_ops_util");let l=(0,a.op)({hannWindow_:function(e){return(0,o.cosineWindow)(e,.5,.5)}})},{"../operation":"2qT2c","../signal_ops_util":"hYHLJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j2XAo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"frame",()=>c);var a=e("../concat"),o=e("../fill"),l=e("../operation"),i=e("../reshape"),p=e("../slice"),u=e("../tensor2d");let c=(0,l.op)({frame_:function(e,t,r,n=!1,s=0){let l=0,c=[];for(;l+t<=e.size;)c.push((0,p.slice)(e,l,t)),l+=r;if(n)for(;l<e.size;){let n=l+t-e.size,i=(0,a.concat)([(0,p.slice)(e,l,t-n),(0,o.fill)([n],s)]);c.push(i),l+=r}return 0===c.length?(0,u.tensor2d)([],[0,t]):(0,i.reshape)((0,a.concat)(c),[c.length,t])}})},{"../concat":"fUcw1","../fill":"5rPaY","../operation":"2qT2c","../reshape":"i9E3v","../slice":"2W6nS","../tensor2d":"6MVsa","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k7vk4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stft",()=>c);var a=e("../mul"),o=e("../operation"),l=e("../signal_ops_util"),i=e("../spectral/rfft"),p=e("./frame"),u=e("./hann_window");let c=(0,o.op)({stft_:function(e,t,r,n,s=u.hannWindow){null==n&&(n=(0,l.enclosingPowerOfTwo)(t));let o=(0,p.frame)(e,t,r),c=(0,a.mul)(o,s(t));return(0,i.rfft)(c,n)}})},{"../mul":"6u9Cs","../operation":"2qT2c","../signal_ops_util":"hYHLJ","../spectral/rfft":"jGVbe","./frame":"j2XAo","./hann_window":"deHg2","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7AQLu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let p=(0,e("../operation").op)({cropAndResize_:function(e,t,r,n,s="bilinear",p=0){let u=(0,l.convertToTensor)(e,"image","cropAndResize"),c=(0,l.convertToTensor)(t,"boxes","cropAndResize","float32"),d=(0,l.convertToTensor)(r,"boxInd","cropAndResize","int32"),f=c.shape[0];return i.assert(4===u.rank,()=>`Error in cropAndResize: image must be rank 4,but got rank ${u.rank}.`),i.assert(2===c.rank&&4===c.shape[1],()=>`Error in cropAndResize: boxes must be have size [${f},4] but had shape ${c.shape}.`),i.assert(1===d.rank&&d.shape[0]===f,()=>`Error in cropAndResize: boxInd must be have size [${f}] but had shape ${c.shape}.`),i.assert(2===n.length,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),i.assert(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),i.assert("bilinear"===s||"nearest"===s,()=>`method must be bilinear or nearest, but was ${s}`),a.ENGINE.runKernel(o.CropAndResize,{image:u,boxes:c,boxInd:d},{method:s,extrapolationValue:p,cropSize:n})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5Eqik":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRight",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let p=(0,e("../operation").op)({flipLeftRight_:function(e){let t=(0,l.convertToTensor)(e,"image","flipLeftRight","float32");return i.assert(4===t.rank,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`),a.ENGINE.runKernel(o.FlipLeftRight,{image:t},{})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fIrf8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"grayscaleToRGB",()=>p);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../operation"),i=e("../tile");let p=(0,l.op)({grayscaleToRGB_:function(e){let t=(0,a.convertToTensor)(e,"image","grayscaleToRGB"),r=t.rank-1,n=t.shape[r];o.assert(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),o.assert(1===n,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let s=Array(t.rank);return s.fill(1,0,r),s[r]=3,(0,i.tile)(t,s)}})},{"../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","../tile":"6j23e","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iEOlG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rgbToGrayscale",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../cast"),i=e("../einsum"),p=e("../expand_dims"),u=e("../operation"),c=e("../tensor1d");let d=(0,u.op)({rgbToGrayscale_:function(e){let t,r=(0,a.convertToTensor)(e,"image","RGBToGrayscale"),n=r.rank-1,s=r.shape[n];o.assert(r.rank>=2,()=>`Error in RGBToGrayscale: images must be at least rank 2, but got rank ${r.rank}.`),o.assert(3===s,()=>`Error in RGBToGrayscale: last dimension of an RGB image should be size 3, but got size ${s}.`);let u=r.dtype,d=(0,l.cast)(r,"float32"),f=(0,c.tensor1d)([.2989,.587,.114]);switch(r.rank){case 2:t=(0,i.einsum)("ij,j->i",d,f);break;case 3:t=(0,i.einsum)("ijk,k->ij",d,f);break;case 4:t=(0,i.einsum)("ijkl,l->ijk",d,f);break;case 5:t=(0,i.einsum)("ijklm,m->ijkl",d,f);break;case 6:t=(0,i.einsum)("ijklmn,n->ijklm",d,f);break;default:throw Error("Not a valid tensor rank.")}return t=(0,p.expandDims)(t,-1),(0,l.cast)(t,u)}})},{"../../tensor_util_env":"feaHs","../../util":"98aA6","../cast":"Qs5mF","../einsum":"lgdpC","../expand_dims":"kvdc2","../operation":"2qT2c","../tensor1d":"lb2KH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"60LYc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffset",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let p=(0,e("../operation").op)({rotateWithOffset_:function(e,t,r=0,n=.5){let s=(0,l.convertToTensor)(e,"image","rotateWithOffset","float32");return i.assert(4===s.rank,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${s.rank}.`),a.ENGINE.runKernel(o.RotateWithOffset,{image:s},{radians:t,fillValue:r,center:n})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3qilh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppression",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let p=(0,e("../operation").op)({nonMaxSuppression_:function(e,t,r,n=.5,s=-1/0){let p=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression","float32"),u=(0,l.convertToTensor)(t,"scores","nonMaxSuppression","float32"),c=(0,i.nonMaxSuppSanityCheck)(p,u,r,n,s);r=c.maxOutputSize;let d={maxOutputSize:r,iouThreshold:n=c.iouThreshold,scoreThreshold:s=c.scoreThreshold};return a.ENGINE.runKernel(o.NonMaxSuppressionV3,{boxes:p,scores:u},d)}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../nonmax_util":"2HrRR","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2HrRR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppSanityCheck",()=>o);var a=e("../util");function o(e,t,r,n,s,o){null==n&&(n=.5),null==s&&(s=-1/0),null==o&&(o=0);let l=e.shape[0];return r=Math.min(r,l),a.assert(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),a.assert(2===e.rank,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),a.assert(4===e.shape[1],()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),a.assert(1===t.rank,()=>"scores must be a 1D tensor"),a.assert(t.shape[0]===l,()=>`scores has incompatible shape with boxes. Expected ${l}, but was ${t.shape[0]}`),a.assert(0<=o&&o<=1,()=>`softNmsSigma must be in [0, 1], but was '${o}'`),{maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:o}}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i3qOd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionAsync",()=>p);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let p=async function(e,t,r,n=.5,s=-1/0){let p=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),u=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),c=(0,l.nonMaxSuppSanityCheck)(p,u,r,n,s);r=c.maxOutputSize,n=c.iouThreshold,s=c.scoreThreshold;let d=await Promise.all([p.data(),u.data()]),f=d[0],m=d[1],{selectedIndices:h}=(0,a.nonMaxSuppressionV3Impl)(f,m,r,n,s);return p!==e&&p.dispose(),u!==t&&u.dispose(),(0,i.tensor1d)(h,"int32")}},{"../../backends/non_max_suppression_impl":"4DLPl","../../tensor_util_env":"feaHs","../nonmax_util":"2HrRR","../tensor1d":"lb2KH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4DLPl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3Impl",()=>o),s.export(r,"nonMaxSuppressionV4Impl",()=>l),s.export(r,"nonMaxSuppressionV5Impl",()=>i);var a=e("./non_max_suppression_util");function o(e,t,r,n,s){return p(e,t,r,n,s,0)}function l(e,t,r,n,s,a){return p(e,t,r,n,s,0,!1,a,!0)}function i(e,t,r,n,s,a){return p(e,t,r,n,s,a,!0)}function p(e,t,r,n,s,o,l=!1,i=!1,c=!1){let d=[];for(let e=0;e<t.length;e++)t[e]>s&&d.push({score:t[e],boxIndex:e,suppressBeginIndex:0});d.sort(u);let f=o>0?-.5/o:0,m=[],h=[];for(;m.length<r&&d.length>0;){let t=d.pop(),{score:r,boxIndex:o,suppressBeginIndex:l}=t;if(r<s)break;let i=!1;for(let r=m.length-1;r>=l;--r){let a=function(e,t,r){let n=e.subarray(4*t,4*t+4),s=e.subarray(4*r,4*r+4),a=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),l=Math.max(n[0],n[2]),i=Math.max(n[1],n[3]),p=Math.min(s[0],s[2]),u=Math.min(s[1],s[3]),c=Math.max(s[0],s[2]),d=Math.max(s[1],s[3]),f=(l-a)*(i-o),m=(c-p)*(d-u);if(f<=0||m<=0)return 0;let h=Math.max(Math.min(l,c)-Math.max(a,p),0)*Math.max(Math.min(i,d)-Math.max(o,u),0);return h/(f+m-h)}(e,o,m[r]);if(a>=n){i=!0;break}if(t.score=t.score*function(e,t,r){let n=Math.exp(t*r*r);return r<=e?n:0}(n,f,a),t.score<=s)break}t.suppressBeginIndex=m.length,!i&&(t.score===r?(m.push(o),h.push(t.score)):t.score>s&&(0,a.binaryInsert)(d,t,u))}let g=m.length,x=r-g;i&&x>0&&(m.push(...Array(x).fill(0)),h.push(...Array(x).fill(0)));let y={selectedIndices:m};return l&&(y.selectedScores=h),c&&(y.validOutputs=g),y}function u(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}},{"./non_max_suppression_util":"hh4wk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hh4wk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){let n=o(e,t,r);e.splice(n<0?-(n+1):n,0,t)}function o(e,t,r){return function(e,t,r){let n=0,s=e.length,a=0,o=!1;for(;n<s;){let l=r(t,e[a=n+(s-n>>>1)]);l>0?n=a+1:(s=a,o=!l)}return o?n:-n-1}(e,t,r||l)}function l(e,t){return e>t?1:e<t?-1:0}s.defineInteropFlag(r),s.export(r,"binaryInsert",()=>a),s.export(r,"binarySearch",()=>o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iYrlU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScore",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let p=(0,e("../operation").op)({nonMaxSuppressionWithScore_:function(e,t,r,n=.5,s=-1/0,p=0){let u=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(u,c,r,n,s,p);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold;let f={maxOutputSize:r,iouThreshold:n,scoreThreshold:s,softNmsSigma:p=d.softNmsSigma},m=a.ENGINE.runKernel(o.NonMaxSuppressionV5,{boxes:u,scores:c},f);return{selectedIndices:m[0],selectedScores:m[1]}}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../nonmax_util":"2HrRR","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9RLbC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionWithScoreAsync",()=>p);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../tensor1d");let p=async function(e,t,r,n=.5,s=-1/0,p=0){let u=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),c=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),d=(0,l.nonMaxSuppSanityCheck)(u,c,r,n,s,p);r=d.maxOutputSize,n=d.iouThreshold,s=d.scoreThreshold,p=d.softNmsSigma;let f=await Promise.all([u.data(),c.data()]),m=f[0],h=f[1],{selectedIndices:g,selectedScores:x}=(0,a.nonMaxSuppressionV5Impl)(m,h,r,n,s,p);return u!==e&&u.dispose(),c!==t&&c.dispose(),{selectedIndices:(0,i.tensor1d)(g,"int32"),selectedScores:(0,i.tensor1d)(x)}}},{"../../backends/non_max_suppression_impl":"4DLPl","../../tensor_util_env":"feaHs","../nonmax_util":"2HrRR","../tensor1d":"lb2KH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2gDAP":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPadded",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../nonmax_util");let p=(0,e("../operation").op)({nonMaxSuppressionPadded_:function(e,t,r,n=.5,s=-1/0,p=!1){let u=(0,l.convertToTensor)(e,"boxes","nonMaxSuppression"),c=(0,l.convertToTensor)(t,"scores","nonMaxSuppression"),d=(0,i.nonMaxSuppSanityCheck)(u,c,r,n,s,null),f=d.maxOutputSize,m=d.iouThreshold,h=d.scoreThreshold,g=a.ENGINE.runKernel(o.NonMaxSuppressionV4,{boxes:u,scores:c},{maxOutputSize:f,iouThreshold:m,scoreThreshold:h,padToMaxOutputSize:p});return{selectedIndices:g[0],validOutputs:g[1]}}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../nonmax_util":"2HrRR","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eqpkU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionPaddedAsync",()=>u);var a=e("../../backends/non_max_suppression_impl"),o=e("../../tensor_util_env"),l=e("../nonmax_util"),i=e("../scalar"),p=e("../tensor1d");let u=async function(e,t,r,n=.5,s=-1/0,u=!1){let c=(0,o.convertToTensor)(e,"boxes","nonMaxSuppressionAsync"),d=(0,o.convertToTensor)(t,"scores","nonMaxSuppressionAsync"),f=(0,l.nonMaxSuppSanityCheck)(c,d,r,n,s,null),m=f.maxOutputSize,h=f.iouThreshold,g=f.scoreThreshold,[x,y]=await Promise.all([c.data(),d.data()]),{selectedIndices:v,validOutputs:b}=(0,a.nonMaxSuppressionV4Impl)(x,y,m,h,g,u);return c!==e&&c.dispose(),d!==t&&d.dispose(),{selectedIndices:(0,p.tensor1d)(v,"int32"),validOutputs:(0,i.scalar)(b,"int32")}}},{"../../backends/non_max_suppression_impl":"4DLPl","../../tensor_util_env":"feaHs","../nonmax_util":"2HrRR","../scalar":"fhZsH","../tensor1d":"lb2KH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3jISr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),p=e("../operation"),u=e("../reshape");let c=(0,p.op)({resizeBilinear_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeBilinear");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),i.assert(!1===n||!1===r,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let p=s,c=!1;3===s.rank&&(c=!0,p=(0,u.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:p},f=a.ENGINE.runKernel(o.ResizeBilinear,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,u.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","../reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jn5ng:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>c);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util"),p=e("../operation"),u=e("../reshape");let c=(0,p.op)({resizeNearestNeighbor_:function(e,t,r=!1,n=!1){let s=(0,l.convertToTensor)(e,"images","resizeNearestNeighbor");i.assert(3===s.rank||4===s.rank,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${s.rank}.`),i.assert(2===t.length,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),i.assert("float32"===s.dtype||"int32"===s.dtype,()=>"`images` must have `int32` or `float32` as dtype"),i.assert(!1===n||!1===r,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let p=s,c=!1;3===s.rank&&(c=!0,p=(0,u.reshape)(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let[]=t,d={images:p},f=a.ENGINE.runKernel(o.ResizeNearestNeighbor,d,{alignCorners:r,halfPixelCenters:n,size:t});return c?(0,u.reshape)(f,[f.shape[1],f.shape[2],f.shape[3]]):f}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","../reshape":"i9E3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hpNz3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"threshold",()=>w);var a=e("../tensor1d"),o=e("../operation"),l=e("../cast"),i=e("../split"),p=e("../bincount"),u=e("../less_equal"),c=e("../greater"),d=e("../sum"),f=e("../add"),m=e("../mul"),h=e("../div"),g=e("../sub"),x=e("../round"),y=e("../where"),v=e("../fill"),b=e("../slice"),k=e("../range"),_=e("../tensor"),I=e("../../util"),j=e("../../tensor_util_env");let w=(0,o.op)({threshold_:function(e,t="binary",r=!1,n=.5){let s,o,w,T,S=(0,j.convertToTensor)(e,"image","threshold"),C=S.shape[0]*S.shape[1],N=(0,m.mul)((0,a.tensor1d)([n]),255);if(I.assert(3===S.rank,()=>`Error in threshold: image must be rank 3,but got rank ${S.rank}.`),I.assert(3===S.shape[2]||1===S.shape[2],()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${S.shape[2]}.`),I.assert("int32"===S.dtype||"float32"===S.dtype,()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${S.dtype}.`),I.assert("otsu"===t||"binary"===t,()=>`Method must be binary or otsu, but was ${t}`),3===S.shape[2]){[s,o,w]=(0,i.split)(S,[1,1,1],-1);let e=(0,m.mul)(s,.2989),t=(0,m.mul)(o,.587),r=(0,m.mul)(w,.114);T=(0,f.add)((0,f.add)(e,t),r)}else T=e;"otsu"===t&&(N=function(e,t){let r,n,s,o,l,i,p=(0,a.tensor1d)([-1]),u=(0,a.tensor1d)([0]),x=(0,a.tensor1d)([0]);for(let _=0;_<e.size-1;_++){r=(0,b.slice)(e,0,_+1),n=(0,b.slice)(e,_+1),l=(0,h.div)((0,d.sum)(r),t),i=(0,h.div)((0,d.sum)(n),t);let I=(0,d.sum)((0,m.mul)(r,(0,k.range)(0,r.size)));s=(0,h.div)(I,(0,d.sum)(r));let j=(0,v.fill)(n.shape,r.size),w=(0,f.add)((0,k.range)(0,n.size),j),T=(0,m.mul)(n,w);o=(0,h.div)((0,d.sum)(T),(0,d.sum)(n));let S=(0,g.sub)(s,o),C=(0,g.sub)(s,o),N=(0,m.mul)(l,i);x=(0,m.mul)((0,m.mul)(N,S),C);let E=(0,c.greater)(x,u);u=(0,y.where)(E,x,u),p=(0,y.where)(E,(0,a.tensor1d)([_]),p)}return p}((0,p.bincount)((0,l.cast)((0,x.round)(T),"int32"),(0,_.tensor)([]),256),C));let E=r?(0,u.lessEqual)(T,N):(0,c.greater)(T,N);return(0,l.cast)((0,m.mul)(E,255),"int32")}})},{"../tensor1d":"lb2KH","../operation":"2qT2c","../cast":"Qs5mF","../split":"hosKB","../bincount":"gV0pt","../less_equal":"5ke7N","../greater":"g5fgq","../sum":"jrqRB","../add":"6AYbH","../mul":"6u9Cs","../div":"j6hSn","../sub":"1laxX","../round":"aJvvJ","../where":"83Uoy","../fill":"5rPaY","../slice":"2W6nS","../range":"5csZz","../tensor":"dTxMo","../../util":"98aA6","../../tensor_util_env":"feaHs","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hllna:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>p);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env"),i=e("../../util");let p=(0,e("../operation").op)({transform_:function(e,t,r="nearest",n="constant",s=0,p){let u=(0,l.convertToTensor)(e,"image","transform","float32"),c=(0,l.convertToTensor)(t,"transforms","transform","float32");return i.assert(4===u.rank,()=>`Error in transform: image must be rank 4,but got rank ${u.rank}.`),i.assert(2===c.rank&&(c.shape[0]===u.shape[0]||1===c.shape[0])&&8===c.shape[1],()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),i.assert(null==p||2===p.length,()=>`Error in transform: outputShape must be [height, width] or null, but got ${p}.`),a.ENGINE.runKernel(o.Transform,{image:u,transforms:c},{interpolation:r,fillMode:n,fillValue:s,outputShape:p})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../../util":"98aA6","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4lUdG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bandPart",()=>k);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../greater_equal"),i=e("../less"),p=e("../less_equal"),u=e("../logical_and"),c=e("../minimum"),d=e("../neg"),f=e("../operation"),m=e("../range"),h=e("../reshape"),g=e("../stack"),x=e("../sub"),y=e("../unstack"),v=e("../where"),b=e("../zeros");let k=(0,f.op)({bandPart_:function(e,t,r){let n,s,f=(0,a.convertToTensor)(e,"a","bandPart");(0,o.assert)(f.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${f.rank}.`);let k=f.shape,[_,I]=f.shape.slice(-2);"number"==typeof t?((0,o.assert)(t%1==0,()=>`bandPart(): numLower must be an integer, got ${t}.`),(0,o.assert)(t<=_,()=>`bandPart(): numLower (${t}) must not be greater than the number of rows (${_}).`),n=(0,a.convertToTensor)(t<0?_:t,"numLower","bandPart")):((0,o.assert)("int32"===t.dtype,()=>"bandPart(): numLower's dtype must be an int32."),n=(0,v.where)((0,i.less)(t,0),_,(0,c.minimum)(t,_))),"number"==typeof r?((0,o.assert)(r%1==0,()=>`bandPart(): numUpper must be an integer, got ${r}.`),(0,o.assert)(r<=I,()=>`bandPart(): numUpper (${r}) must not be greater than the number of columns (${I}).`),s=(0,a.convertToTensor)(r<0?I:r,"numUpper","bandPart")):((0,o.assert)("int32"===r.dtype,()=>"bandPart(): numUpper's dtype must be an int32."),s=(0,v.where)((0,i.less)(r,0),I,(0,c.minimum)(r,I)));let j=(0,h.reshape)((0,m.range)(0,_,1,"int32"),[-1,1]),w=(0,m.range)(0,I,1,"int32"),T=(0,x.sub)(j,w),S=(0,u.logicalAnd)((0,p.lessEqual)(T,n),(0,l.greaterEqual)(T,(0,d.neg)(s))),C=(0,b.zeros)([_,I],f.dtype);return(0,h.reshape)((0,g.stack)((0,y.unstack)((0,h.reshape)(f,[-1,_,I])).map(e=>(0,v.where)(S,e,C))),k)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../greater_equal":"fcGF0","../less":"1aWGo","../less_equal":"5ke7N","../logical_and":"jiW04","../minimum":"1R0ab","../neg":"2tLkY","../operation":"2qT2c","../range":"5csZz","../reshape":"i9E3v","../stack":"8vGzW","../sub":"1laxX","../unstack":"bx2AH","../where":"83Uoy","../zeros":"3kicB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9VaJt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gramSchmidt",()=>g);var a=e("../../engine"),o=e("../../util"),l=e("../div"),i=e("../mul"),p=e("../norm"),u=e("../operation"),c=e("../split"),d=e("../squeeze"),f=e("../stack"),m=e("../sub"),h=e("../sum");let g=(0,u.op)({gramSchmidt_:function(e){let t;if(Array.isArray(e)){t=!1,(0,o.assert)(null!=e&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let t=1;t<e.length;++t)(0,o.assert)(e[t].shape[0]===r,()=>`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[t].shape[0]} vs. ${r})`)}else t=!0,e=(0,c.split)(e,e.shape[0],0).map(e=>(0,d.squeeze)(e,[0]));(0,o.assert)(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let r=[],n=e;for(let t=0;t<e.length;++t)r.push(a.ENGINE.tidy(()=>{let e=n[t];if(t>0)for(let n=0;n<t;++n){let t=(0,i.mul)((0,h.sum)((0,i.mul)(r[n],e)),r[n]);e=(0,m.sub)(e,t)}return(0,l.div)(e,(0,p.norm)(e,"euclidean"))}));return t?(0,f.stack)(r,0):r}})},{"../../engine":"5aImO","../../util":"F0lVc","../div":"j6hSn","../mul":"6u9Cs","../norm":"7eGDB","../operation":"2qT2c","../split":"hosKB","../squeeze":"36eHf","../stack":"8vGzW","../sub":"1laxX","../sum":"jrqRB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3c320":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"qr",()=>S);var a=e("../../engine"),o=e("../../globals"),l=e("../../util"),i=e("../clone"),p=e("../concat"),u=e("../div"),c=e("../eye"),d=e("../greater"),f=e("../mat_mul"),m=e("../mul"),h=e("../neg"),g=e("../norm"),x=e("../operation"),y=e("../reshape"),v=e("../slice"),b=e("../stack"),k=e("../sub"),_=e("../tensor2d"),I=e("../transpose"),j=e("../unstack"),w=e("../where");function T(e,t=!1){return a.ENGINE.tidy(()=>{(0,l.assert)(2===e.shape.length,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let r=e.shape[0],n=e.shape[1],s=(0,c.eye)(r),x=(0,i.clone)(e),y=(0,_.tensor2d)([[1]],[1,1]),b=(0,i.clone)(y),j=r>=n?n:r;for(let e=0;e<j;++e){let t=x,l=b,c=s;[b,x,s]=a.ENGINE.tidy(()=>{let t=(0,v.slice)(x,[e,e],[r-e,1]),a=(0,g.norm)(t),o=(0,v.slice)(x,[e,e],[1,1]),l=(0,w.where)((0,d.greater)(o,0),(0,_.tensor2d)([[-1]]),(0,_.tensor2d)([[1]])),c=(0,k.sub)(o,(0,m.mul)(l,a)),j=(0,u.div)(t,c);b=1===j.shape[0]?(0,i.clone)(y):(0,p.concat)([y,(0,v.slice)(j,[1,0],[j.shape[0]-1,j.shape[1]])],0);let T=(0,h.neg)((0,u.div)((0,f.matMul)(l,c),a)),S=(0,v.slice)(x,[e,0],[r-e,n]),C=(0,m.mul)(T,b),N=(0,I.transpose)(b);if(0===e)x=(0,k.sub)(S,(0,f.matMul)(C,(0,f.matMul)(N,S)));else{let t=(0,k.sub)(S,(0,f.matMul)(C,(0,f.matMul)(N,S)));x=(0,p.concat)([(0,v.slice)(x,[0,0],[e,n]),t],0)}let E=(0,I.transpose)(C),F=(0,v.slice)(s,[0,e],[r,s.shape[1]-e]);if(0===e)s=(0,k.sub)(F,(0,f.matMul)((0,f.matMul)(F,b),E));else{let t=(0,k.sub)(F,(0,f.matMul)((0,f.matMul)(F,b),E));s=(0,p.concat)([(0,v.slice)(s,[0,0],[r,e]),t],1)}return[b,x,s]}),(0,o.dispose)([t,l,c])}return!t&&r>n&&(s=(0,v.slice)(s,[0,0],[r,n]),x=(0,v.slice)(x,[0,0],[n,n])),[s,x]})}let S=(0,x.op)({qr_:function(e,t=!1){if((0,l.assert)(e.rank>=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),2===e.rank)return T(e,t);{let r=e.shape.slice(0,e.shape.length-2).reduce((e,t)=>e*t),n=(0,j.unstack)((0,y.reshape)(e,[r,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),s=[],a=[];return n.forEach(e=>{let[r,n]=T(e,t);s.push(r),a.push(n)}),[(0,y.reshape)((0,b.stack)(s,0),e.shape),(0,y.reshape)((0,b.stack)(a,0),e.shape)]}}})},{"../../engine":"5aImO","../../globals":"1ONwU","../../util":"F0lVc","../clone":"jyVCU","../concat":"fUcw1","../div":"j6hSn","../eye":"9xEvl","../greater":"g5fgq","../mat_mul":"jyMFR","../mul":"6u9Cs","../neg":"2tLkY","../norm":"7eGDB","../operation":"2qT2c","../reshape":"i9E3v","../slice":"2W6nS","../stack":"8vGzW","../sub":"1laxX","../tensor2d":"6MVsa","../transpose":"2Qc4K","../unstack":"bx2AH","../where":"83Uoy","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jivcM:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"absoluteDifference",()=>d);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../loss_ops_utils"),p=e("../operation"),u=e("../sub"),c=e("./compute_weighted_loss");let d=(0,p.op)({absoluteDifference_:function(e,t,r,n=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","absoluteDifference"),p=(0,a.convertToTensor)(t,"predictions","absoluteDifference"),d=null;null!=r&&(d=(0,a.convertToTensor)(r,"weights","absoluteDifference")),(0,o.assertShapesMatch)(s.shape,p.shape,"Error in absoluteDifference: ");let f=(0,l.abs)((0,u.sub)(s,p));return(0,c.computeWeightedLoss)(f,d,n)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../abs":"khyDh","../loss_ops_utils":"4QGTL","../operation":"2qT2c","../sub":"1laxX","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4QGTL":[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"Reduction",()=>a),(s=a||(a={}))[s.NONE=0]="NONE",s[s.MEAN=1]="MEAN",s[s.SUM=2]="SUM",s[s.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bIp2c:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"computeWeightedLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../cast"),l=e("../div"),i=e("../loss_ops_utils"),p=e("../mean"),u=e("../mul"),c=e("../not_equal"),d=e("../ones"),f=e("../operation"),m=e("../scalar"),h=e("../sum");let g=(0,f.op)({computeWeightedLoss_:function(e,t,r=i.Reduction.SUM_BY_NONZERO_WEIGHTS){let n=(0,a.convertToTensor)(e,"losses","computeWeightedLoss"),s=null;null!=t&&(s=(0,a.convertToTensor)(t,"weights","computeWeightedLoss"));let f=null==s?n:(0,u.mul)(n,s);if(r===i.Reduction.NONE)return f;if(r===i.Reduction.SUM)return(0,h.sum)(f);if(r===i.Reduction.MEAN)if(null==s)return(0,p.mean)(f);else{let e=n.size/s.size,t=(0,l.div)((0,h.sum)(f),(0,h.sum)(s));return e>1?(0,l.div)(t,(0,m.scalar)(e)):t}if(r===i.Reduction.SUM_BY_NONZERO_WEIGHTS)if(null==s)return(0,l.div)((0,h.sum)(f),(0,m.scalar)(n.size));else{let e=(0,u.mul)(s,(0,d.ones)(n.shape)),t=(0,o.cast)((0,h.sum)((0,c.notEqual)(e,(0,m.scalar)(0))),"float32");return(0,l.div)((0,h.sum)(f),t)}throw Error(`Unknown reduction: ${r}`)}})},{"../../tensor_util_env":"feaHs","../cast":"Qs5mF","../div":"j6hSn","../loss_ops_utils":"4QGTL","../mean":"d8WjP","../mul":"6u9Cs","../not_equal":"XasxQ","../ones":"bmJ6z","../operation":"2qT2c","../scalar":"fhZsH","../sum":"jrqRB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2WV8B":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosineDistance",()=>m);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),p=e("../operation"),u=e("../scalar"),c=e("../sub"),d=e("../sum"),f=e("./compute_weighted_loss");let m=(0,p.op)({cosineDistance_:function(e,t,r,n,s=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let p=(0,a.convertToTensor)(e,"labels","cosineDistance"),m=(0,a.convertToTensor)(t,"predictions","cosineDistance"),h=null;null!=n&&(h=(0,a.convertToTensor)(n,"weights","cosineDistance")),(0,o.assertShapesMatch)(p.shape,m.shape,"Error in cosineDistance: ");let g=(0,u.scalar)(1),x=(0,c.sub)(g,(0,d.sum)((0,i.mul)(p,m),r,!0));return(0,f.computeWeightedLoss)(x,h,s)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../loss_ops_utils":"4QGTL","../mul":"6u9Cs","../operation":"2qT2c","../scalar":"fhZsH","../sub":"1laxX","../sum":"jrqRB","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],wC9ol:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"hingeLoss",()=>m);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../mul"),p=e("../operation"),u=e("../relu"),c=e("../scalar"),d=e("../sub"),f=e("./compute_weighted_loss");let m=(0,p.op)({hingeLoss_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","hingeLoss"),p=(0,a.convertToTensor)(t,"predictions","hingeLoss"),m=null;null!=r&&(m=(0,a.convertToTensor)(r,"weights","hingeLoss")),(0,o.assertShapesMatch)(s.shape,p.shape,"Error in hingeLoss: ");let h=(0,c.scalar)(1);s=(0,d.sub)((0,i.mul)((0,c.scalar)(2),s),h);let g=(0,u.relu)((0,d.sub)(h,(0,i.mul)(s,p)));return(0,f.computeWeightedLoss)(g,m,n)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../loss_ops_utils":"4QGTL","../mul":"6u9Cs","../operation":"2qT2c","../relu":"7eL1z","../scalar":"fhZsH","../sub":"1laxX","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kAn9d:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"huberLoss",()=>x);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),p=e("../loss_ops_utils"),u=e("../minimum"),c=e("../mul"),d=e("../operation"),f=e("../scalar"),m=e("../square"),h=e("../sub"),g=e("./compute_weighted_loss");let x=(0,d.op)({huberLoss_:function(e,t,r,n=1,s=p.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","huberLoss"),x=(0,a.convertToTensor)(t,"predictions","huberLoss"),y=null;null!=r&&(y=(0,a.convertToTensor)(r,"weights","huberLoss")),(0,o.assertShapesMatch)(d.shape,x.shape,"Error in huberLoss: ");let v=(0,f.scalar)(n),b=(0,l.abs)((0,h.sub)(x,d)),k=(0,u.minimum)(b,v),_=(0,h.sub)(b,k),I=(0,i.add)((0,c.mul)((0,f.scalar)(.5),(0,m.square)(k)),(0,c.mul)(v,_));return(0,g.computeWeightedLoss)(I,y,s)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../abs":"khyDh","../add":"6AYbH","../loss_ops_utils":"4QGTL","../minimum":"1R0ab","../mul":"6u9Cs","../operation":"2qT2c","../scalar":"fhZsH","../square":"iewSj","../sub":"1laxX","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],filgm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logLoss",()=>g);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../add"),i=e("../log"),p=e("../loss_ops_utils"),u=e("../mul"),c=e("../neg"),d=e("../operation"),f=e("../scalar"),m=e("../sub"),h=e("./compute_weighted_loss");let g=(0,d.op)({logLoss_:function(e,t,r,n=1e-7,s=p.Reduction.SUM_BY_NONZERO_WEIGHTS){let d=(0,a.convertToTensor)(e,"labels","logLoss"),g=(0,a.convertToTensor)(t,"predictions","logLoss"),x=null;null!=r&&(x=(0,a.convertToTensor)(r,"weights","logLoss")),(0,o.assertShapesMatch)(d.shape,g.shape,"Error in logLoss: ");let y=(0,f.scalar)(1),v=(0,f.scalar)(n),b=(0,c.neg)((0,u.mul)(d,(0,i.log)((0,l.add)(g,v)))),k=(0,u.mul)((0,m.sub)(y,d),(0,i.log)((0,l.add)((0,m.sub)(y,g),v))),_=(0,m.sub)(b,k);return(0,h.computeWeightedLoss)(_,x,s)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../add":"6AYbH","../log":"l513F","../loss_ops_utils":"4QGTL","../mul":"6u9Cs","../neg":"2tLkY","../operation":"2qT2c","../scalar":"fhZsH","../sub":"1laxX","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9fas8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanSquaredError",()=>c);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../loss_ops_utils"),i=e("../operation"),p=e("../squared_difference"),u=e("./compute_weighted_loss");let c=(0,i.op)({meanSquaredError_:function(e,t,r,n=l.Reduction.SUM_BY_NONZERO_WEIGHTS){let s=(0,a.convertToTensor)(e,"labels","meanSquaredError"),i=(0,a.convertToTensor)(t,"predictions","meanSquaredError"),c=null;null!=r&&(c=(0,a.convertToTensor)(r,"weights","meanSquaredError")),(0,o.assertShapesMatch)(s.shape,i.shape,"Error in meanSquaredError: ");let d=(0,p.squaredDifference)(s,i);return(0,u.computeWeightedLoss)(d,c,n)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../loss_ops_utils":"4QGTL","../operation":"2qT2c","../squared_difference":"93Vr6","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f9i2U:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoidCrossEntropy",()=>v);var a=e("../../tensor_util_env"),o=e("../../util"),l=e("../abs"),i=e("../add"),p=e("../exp"),u=e("../log1p"),c=e("../loss_ops_utils"),d=e("../mul"),f=e("../neg"),m=e("../operation"),h=e("../relu"),g=e("../scalar"),x=e("../sub"),y=e("./compute_weighted_loss");let v=(0,m.op)({sigmoidCrossEntropy_:function(e,t,r,n=0,s=c.Reduction.SUM_BY_NONZERO_WEIGHTS){var m;let v,b,k,_,I,j=(0,a.convertToTensor)(e,"multiClassLabels","sigmoidCrossEntropy"),w=(0,a.convertToTensor)(t,"logits","sigmoidCrossEntropy"),T=null;if(null!=r&&(T=(0,a.convertToTensor)(r,"weights","sigmoidCrossEntropy")),(0,o.assertShapesMatch)(j.shape,w.shape,"Error in sigmoidCrossEntropy: "),n>0){let e=(0,g.scalar)(n),t=(0,g.scalar)(1),r=(0,g.scalar)(.5);j=(0,i.add)((0,d.mul)(j,(0,x.sub)(t,e)),(0,d.mul)(r,e))}let S=(m=j,v=(0,a.convertToTensor)(m,"labels","sigmoidCrossEntropyWithLogits"),b=(0,a.convertToTensor)(w,"logits","sigmoidCrossEntropyWithLogits"),(0,o.assertShapesMatch)(v.shape,b.shape,"Error in sigmoidCrossEntropyWithLogits: "),k=(0,h.relu)(b),_=(0,d.mul)(b,v),I=(0,u.log1p)((0,p.exp)((0,f.neg)((0,l.abs)(b)))),(0,i.add)((0,x.sub)(k,_),I));return(0,y.computeWeightedLoss)(S,T,s)}})},{"../../tensor_util_env":"feaHs","../../util":"F0lVc","../abs":"khyDh","../add":"6AYbH","../exp":"94rBB","../log1p":"a4Qz0","../loss_ops_utils":"4QGTL","../mul":"6u9Cs","../neg":"2tLkY","../operation":"2qT2c","../relu":"7eL1z","../scalar":"fhZsH","../sub":"1laxX","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],foqVz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmaxCrossEntropy",()=>I);var a=e("../../gradients"),o=e("../../tensor_util_env"),l=e("../../util"),i=e("../add"),p=e("../axis_util"),u=e("../cast"),c=e("../div"),d=e("../exp"),f=e("../log_sum_exp"),m=e("../loss_ops_utils"),h=e("../mul"),g=e("../neg"),x=e("../operation"),y=e("../reshape"),v=e("../scalar"),b=e("../sub"),k=e("../sum"),_=e("./compute_weighted_loss");let I=(0,x.op)({softmaxCrossEntropy_:function(e,t,r,n=0,s=m.Reduction.SUM_BY_NONZERO_WEIGHTS){let x=(0,o.convertToTensor)(e,"onehotLabels","softmaxCrossEntropy"),I=(0,o.convertToTensor)(t,"logits","softmaxCrossEntropy"),j=null;if(null!=r&&(j=(0,o.convertToTensor)(r,"weights","softmaxCrossEntropy")),(0,l.assertShapesMatch)(x.shape,I.shape,"Error in softmaxCrossEntropy: "),n>0){let e=(0,v.scalar)(n),t=(0,v.scalar)(1),r=(0,v.scalar)(x.shape[1]);x=(0,i.add)((0,h.mul)(x,(0,b.sub)(t,e)),(0,c.div)(e,r))}let w=function(e,t,r=-1){if(-1===r&&(r=t.rank-1),r!==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 ${r}`);return(0,a.customGrad)((e,t,n)=>{let s=(0,f.logSumExp)(t,[r],!0),a=(0,b.sub)((0,u.cast)(t,"float32"),s);n([e,a]);let o=(0,g.neg)((0,h.mul)(a,e));return{value:(0,k.sum)(o,[r]),gradFunc:(e,t)=>{let[n,s]=t,a=(0,p.expandShapeToKeepDim)(e.shape,[r]);return[(0,h.mul)((0,y.reshape)(e,a),(0,b.sub)((0,u.cast)(n,"float32"),(0,d.exp)(s))),(0,h.mul)((0,y.reshape)(e,a),(0,b.sub)((0,d.exp)(s),(0,u.cast)(n,"float32")))]}}})(e,t)}(x,I);return(0,_.computeWeightedLoss)(w,j,s)}})},{"../../gradients":"bUS3C","../../tensor_util_env":"feaHs","../../util":"F0lVc","../add":"6AYbH","../axis_util":"f71mQ","../cast":"Qs5mF","../div":"j6hSn","../exp":"94rBB","../log_sum_exp":"4BsSl","../loss_ops_utils":"4QGTL","../mul":"6u9Cs","../neg":"2tLkY","../operation":"2qT2c","../reshape":"i9E3v","../scalar":"fhZsH","../sub":"1laxX","../sum":"jrqRB","./compute_weighted_loss":"bIp2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eb88A:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseFillEmptyRows_:function(e,t,r,n){let s=(0,l.convertToTensor)(e,"indices","sparseFillEmptyRows","int32"),i=(0,l.convertToTensor)(t,"values","sparseFillEmptyRows"),p=(0,l.convertToTensor)(r,"denseShape","sparseFillEmptyRows","int32"),u=(0,l.convertToTensor)(n,"defaultValue","sparseFillEmptyRows",i.dtype);if(2!==s.rank)throw Error(`Indices should be Tensor2D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`Values should be Tensor1D but received shape ${i.shape}`);if(1!==p.rank)throw Error(`Dense shape should be Tensor1D but received shape ${p.shape}`);if(0!==u.rank)throw Error(`Default value should be a scalar but received shape ${u.shape}`);let c=a.ENGINE.runKernel(o.SparseFillEmptyRows,{indices:s,values:i,denseShape:p,defaultValue:u});return{outputIndices:c[0],outputValues:c[1],emptyRowIndicator:c[2],reverseIndexMap:c[3]}}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],b9ToC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseReshape_:function(e,t,r){let n=(0,l.convertToTensor)(e,"inputIndices","sparseReshape","int32"),s=(0,l.convertToTensor)(t,"inputShape","sparseReshape","int32"),i=(0,l.convertToTensor)(r,"newShape","sparseReshape","int32");if(2!==n.rank)throw Error(`Input indices should be Tensor2D but received shape ${n.shape}`);if(1!==s.rank)throw Error(`Input shape should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`New shape should be Tensor1D but received shape ${i.shape}`);let p=a.ENGINE.runKernel(o.SparseReshape,{inputIndices:n,inputShape:s,newShape:i});return{outputIndices:p[0],outputShape:p[1]}}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4sZ5F":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentMean_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentMean"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentMean","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentMean,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2zbkY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({sparseSegmentSum_:function(e,t,r){let n=(0,l.convertToTensor)(e,"data","sparseSegmentSum"),s=(0,l.convertToTensor)(t,"indices","sparseSegmentSum","int32"),i=(0,l.convertToTensor)(r,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.rank)throw Error(`Indices should be Tensor1D but received shape ${s.shape}`);if(1!==i.rank)throw Error(`Segment ids should be Tensor1D but received shape ${i.shape}`);return a.ENGINE.runKernel(o.SparseSegmentSum,{data:n,indices:s,segmentIds:i})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l18E4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringNGrams_:function(e,t,r,n,s,i,p,u){let c=(0,l.convertToTensor)(e,"data","stringNGrams","string");if("string"!==c.dtype)throw Error("Data must be of datatype string");if(1!==c.shape.length)throw Error(`Data must be a vector, saw: ${c.shape}`);let d=(0,l.convertToTensor)(t,"dataSplits","stringNGrams");if("int32"!==d.dtype)throw Error("Data splits must be of datatype int32");let f=a.ENGINE.runKernel(o.StringNGrams,{data:c,dataSplits:d},{separator:r,nGramWidths:n,leftPad:s,rightPad:i,padWidth:p,preserveShortSequences:u});return{nGrams:f[0],nGramsSplits:f[1]}}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"56wZz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringSplit_:function(e,t,r=!0){let n=(0,l.convertToTensor)(e,"input","stringSplit","string"),s=(0,l.convertToTensor)(t,"delimiter","stringSplit","string");if(1!==n.rank)throw Error(`Input should be Tensor1D but received shape ${n.shape}`);if(0!==s.rank)throw Error(`Delimiter should be a scalar but received shape ${s.shape}`);let i=a.ENGINE.runKernel(o.StringSplit,{input:n,delimiter:s},{skipEmpty:r});return{indices:i[0],values:i[1],shape:i[2]}}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9f5Uk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({stringToHashBucketFast_:function(e,t){let r=(0,l.convertToTensor)(e,"input","stringToHashBucketFast","string");if(t<=0)throw Error("Number of buckets must be at least 1");return a.ENGINE.runKernel(o.StringToHashBucketFast,{input:r},{numBuckets:t})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bhDR4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>i);var a=e("../../engine"),o=e("../../kernel_names"),l=e("../../tensor_util_env");let i=(0,e("../operation").op)({staticRegexReplace_:function(e,t,r,n=!0){let s=(0,l.convertToTensor)(e,"input","staticRegexReplace","string");return a.ENGINE.runKernel(o.StaticRegexReplace,{x:s},{pattern:t,rewrite:r,replaceGlobal:n})}})},{"../../engine":"5aImO","../../kernel_names":"bvyjS","../../tensor_util_env":"feaHs","../operation":"2qT2c","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dl3Zw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"train",()=>a);let a=e("./optimizers/optimizer_constructors").OptimizerConstructors},{"./optimizers/optimizer_constructors":"3RZnR","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dENN7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nextFrame",()=>o);let a="u">typeof requestAnimationFrame?requestAnimationFrame:"u">typeof setImmediate?setImmediate:e=>e();function o(){return new Promise(e=>a(()=>e()))}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kzLNA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"upcastType",()=>h.upcastType),s.export(r,"slice_util",()=>m),s.export(r,"segment_util",()=>N),s.export(r,"fromUint8ToStringArray",()=>E),s.export(r,"fromStringArrayToUint8",()=>F);var a=e("../util"),o=e("../ops/axis_util");s.exportAll(o,r);var l=e("../ops/broadcast_util");s.exportAll(l,r);var i=e("../ops/concat_util");s.exportAll(i,r);var p=e("../ops/conv_util");s.exportAll(p,r);var u=e("../ops/fused_util");s.exportAll(u,r);var c=e("../ops/fused_types");s.exportAll(c,r);var d=e("../ops/ragged_to_dense_util");s.exportAll(d,r);var f=e("../ops/reduce_util");s.exportAll(f,r);var m=e("../ops/slice_util"),h=e("../types"),g=e("../ops/rotate_util");s.exportAll(g,r);var x=e("../ops/array_ops_util");s.exportAll(x,r);var y=e("../ops/gather_nd_util");s.exportAll(y,r);var v=e("../ops/scatter_nd_util");s.exportAll(v,r);var b=e("../ops/selu_util");s.exportAll(b,r),s.exportAll(u,r);var k=e("../ops/erf_util");s.exportAll(k,r);var _=e("../log");s.exportAll(_,r);var I=e("../backends/complex_util");s.exportAll(I,r);var j=e("../backends/einsum_util");s.exportAll(j,r);var w=e("../ops/split_util");s.exportAll(w,r);var T=e("../ops/sparse/sparse_fill_empty_rows_util");s.exportAll(T,r);var S=e("../ops/sparse/sparse_reshape_util");s.exportAll(S,r);var C=e("../ops/sparse/sparse_segment_reduction_util");s.exportAll(C,r);var N=e("../ops/segment_util");function E(e){try{return e.map(e=>(0,a.decodeString)(e))}catch(e){throw Error(`Failed to decode encoded string bytes into utf-8, error: ${e}`)}}function F(e){return e.map(e=>(0,a.encodeString)(e))}},{"../util":"98aA6","../ops/axis_util":"f71mQ","../ops/broadcast_util":"eciNq","../ops/concat_util":"3x0IG","../ops/conv_util":"ckBsO","../ops/fused_util":"cl7EF","../ops/fused_types":"cAQxj","../ops/ragged_to_dense_util":"13fOc","../ops/reduce_util":"4SxdL","../ops/slice_util":"1Tyqd","../types":"c6lOT","../ops/rotate_util":"hXW6Z","../ops/array_ops_util":"dlyQZ","../ops/gather_nd_util":"fIneF","../ops/scatter_nd_util":"8P3GB","../ops/selu_util":"hF9P2","../ops/erf_util":"1ZGIU","../log":"jXKXX","../backends/complex_util":"lo2Mr","../backends/einsum_util":"kQ6C4","../ops/split_util":"fjQdy","../ops/sparse/sparse_fill_empty_rows_util":"isvc7","../ops/sparse/sparse_reshape_util":"7eyFK","../ops/sparse/sparse_segment_reduction_util":"9WwKW","../ops/segment_util":"86DF8","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3x0IG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertParamsConsistent",()=>o),s.export(r,"computeOutShape",()=>l);var a=e("../util");function o(e,t){let r=e[0].length;e.forEach((e,t)=>{a.assert(e.length===r,()=>`Error in concat${r}D: rank of tensors[${t}] must be the same as the rank of the rest (${r})`)}),a.assert(t>=0&&t<r,()=>`Error in concat${r}D: axis must be between 0 and ${r-1}.`);let n=e[0];e.forEach((e,s)=>{for(let o=0;o<r;o++)a.assert(o===t||e[o]===n[o],()=>`Error in concat${r}D: Shape of tensors[${s}] (${e}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function l(e,t){let r=e[0].slice();for(let n=1;n<e.length;n++)r[t]+=e[n][t];return r}},{"../util":"98aA6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cAQxj:[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"13fOc":[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");function l(e,t,r){let n=[];if(null==r&&null==t)return n;if(null==t)for(;n.length<e+r.length;)n.push(-1);else n=t.slice();if(null==r)return n;if(e+r.length!==n.length)throw Error(`rt input.shape and shape=${t} are incompatible: rt input.rank = ${e+r.length}, but shape.rank = ${n.length}`);for(let s=1;s<r.length;++s){let a=r[s],o=n[n.length-r.length+s],l=n[o];if(a>=0)if(l>=0){if(l!==a)throw Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${s+e}] = ${a} but shape[${s+e}] = ${l}`)}else n[o]=a}return n}function i(e){let t={FIRST_DIM_SIZE:a.FIRST_DIM_SIZE,VALUE_ROWIDS:a.VALUE_ROWIDS,ROW_LENGTHS:a.ROW_LENGTHS,ROW_SPLITS:a.ROW_SPLITS,ROW_LIMITS:a.ROW_LIMITS,ROW_STARTS:a.ROW_STARTS},r=[];for(let n of e)if(n in t)r.push(t[n]);else break;return r}function p(e){return 0===e.length?0:e[0]===a.FIRST_DIM_SIZE?e.length-1:e.length}function u(e,t){if(null==e||null==t)return;let r=e.length,n=t.length;if(r>=n)throw Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${r} must be less than ragged tensor input flatValues.rank = ${n})`);for(let s=0;s<Math.min(r,n-1);++s){let r=e[s],n=t[s+1];if(r>=0&&n>=0&&1!==r&&r!==n)throw Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${s-e.length}] = ${r} but ragged tensor input.flatValues.shape[${s-e.length}] = ${n}`)}}o.defineInteropFlag(r),o.export(r,"RowPartitionType",()=>a),o.export(r,"combineRaggedTensorToTensorShapes",()=>l),o.export(r,"getRowPartitionTypesHelper",()=>i),o.export(r,"getRaggedRank",()=>p),o.export(r,"validateDefaultValueShape",()=>u),(s=a||(a={}))[s.FIRST_DIM_SIZE=0]="FIRST_DIM_SIZE",s[s.VALUE_ROWIDS=1]="VALUE_ROWIDS",s[s.ROW_LENGTHS=2]="ROW_LENGTHS",s[s.ROW_SPLITS=3]="ROW_SPLITS",s[s.ROW_LIMITS=4]="ROW_LIMITS",s[s.ROW_STARTS=5]="ROW_STARTS"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4SxdL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PARALLELIZE_THRESHOLD",()=>o),s.export(r,"computeOptimalWindowSize",()=>l);var a=e("../util");let o=30;function l(e){return e<=o?e:(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)))}},{"../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hXW6Z:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r){return[r*("number"==typeof e?e:e[0]),t*("number"==typeof e?e:e[1])]}s.defineInteropFlag(r),s.export(r,"getImageCenter",()=>a)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dlyQZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t,r,n=!0){let s=[];if(n)(s=s.concat(t.slice(0))).push(e[0]/r),s=s.concat(e.slice(1));else{s=s.concat(e[0]);let r=t.length;for(let n=0;n<r;++n)s=s.concat([e[n+1]/t[n],t[n]]);s=s.concat(e.slice(r+1))}return s}function o(e,t,r=!0){let n=[];if(r){n.push(t);for(let r=t+1;r<e;++r)r<=2*t?(n.push(r),n.push(r-(t+1))):n.push(r)}else{let r=[],s=[];for(let n=1;n<e;++n)n>=2*t+1||n%2==1?s.push(n):r.push(n);n.push(...r),n.push(0),n.push(...s)}return n}function l(e,t,r,n=!0){let s=[];n?s.push(e[0]/r):s.push(e[0]*r);for(let r=1;r<e.length;++r)r<=t.length?n?s.push(t[r-1]*e[r]):s.push(e[r]/t[r-1]):s.push(e[r]);return s}function i(e,t){let r=[0];for(let n=0;n<t;++n)r.push(e[n][0]);return r}function p(e,t,r){let n=e.slice(0,1);for(let s=0;s<r;++s)n.push(e[s+1]-t[s][0]-t[s][1]);return n}s.defineInteropFlag(r),s.export(r,"getReshaped",()=>a),s.export(r,"getPermuted",()=>o),s.export(r,"getReshapedPermuted",()=>l),s.export(r,"getSliceBeginCoords",()=>i),s.export(r,"getSliceSize",()=>p)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hF9P2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SELU_SCALEALPHA",()=>a),s.export(r,"SELU_SCALE",()=>o);let a=1.7580993408473768,o=1.0507009873554805},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1ZGIU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ERF_P",()=>a),s.export(r,"ERF_A1",()=>o),s.export(r,"ERF_A2",()=>l),s.export(r,"ERF_A3",()=>i),s.export(r,"ERF_A4",()=>p),s.export(r,"ERF_A5",()=>u);let a=.3275911,o=.254829592,l=-.284496736,i=1.421413741,p=-1.453152027,u=1.061405429},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lo2Mr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){if(e.length!==t.length)throw Error(`Cannot merge real and imag arrays of different lengths. real:${e.length}, imag: ${t.length}.`);let r=new Float32Array(2*e.length);for(let n=0;n<r.length;n+=2)r[n]=e[n/2],r[n+1]=t[n/2];return r}function o(e){let t=new Float32Array(e.length/2),r=new Float32Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=e[n],r[n/2]=e[n+1];return{real:t,imag:r}}function l(e){let t=Math.ceil(e.length/4),r=new Float32Array(t),n=new Float32Array(t);for(let t=0;t<e.length;t+=4)r[Math.floor(t/4)]=e[t],n[Math.floor(t/4)]=e[t+1];return{real:r,imag:n}}function i(e){let t=Math.floor(e.length/4),r=new Float32Array(t),n=new Float32Array(t);for(let t=2;t<e.length;t+=4)r[Math.floor(t/4)]=e[t],n[Math.floor(t/4)]=e[t+1];return{real:r,imag:n}}function p(e,t){return{real:e[2*t],imag:e[2*t+1]}}function u(e,t,r,n){e[2*n]=t,e[2*n+1]=r}function c(e,t){let r=new Float32Array(e/2),n=new Float32Array(e/2);for(let s=0;s<Math.ceil(e/2);s++){let a=(t?2:-2)*Math.PI*(s/e);r[s]=Math.cos(a),n[s]=Math.sin(a)}return{real:r,imag:n}}function d(e,t,r){let n=(r?2:-2)*Math.PI*(e/t);return{real:Math.cos(n),imag:Math.sin(n)}}s.defineInteropFlag(r),s.export(r,"mergeRealAndImagArrays",()=>a),s.export(r,"splitRealAndImagArrays",()=>o),s.export(r,"complexWithEvenIndex",()=>l),s.export(r,"complexWithOddIndex",()=>i),s.export(r,"getComplexWithIndex",()=>p),s.export(r,"assignToTypedArray",()=>u),s.export(r,"exponents",()=>c),s.export(r,"exponent",()=>d)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kQ6C4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"decodeEinsumEquation",()=>l),s.export(r,"getEinsumPermutation",()=>i),s.export(r,"checkEinsumDimSizes",()=>p),s.export(r,"getEinsumComputePath",()=>u),s.export(r,"isIdentityPermutation",()=>c);var a=e("../util_base");let o=/->/g;function l(e,t){let r=((e=e.replace(/\s/g,"")).length-e.replace(o,"").length)/2;if(r<1)throw Error("Equations without an arrow are not supported.");if(r>1)throw Error('Equation must contain exactly one arrow ("->").');let[n,s]=e.split("->");(0,a.assert)(-1===n.indexOf("..."),()=>'The ellipsis notation ("...") is not supported yet.');let l=n.split(","),i=l.length;if(t!==i)throw Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw Error("Support for more than 2 input tensors is not implemented yet.");let p=[];for(let e=0;e<s.length;++e){let t=s[e];if(!l.some(e=>-1!==e.indexOf(t)))throw Error(`Output subscripts contain the label ${t} not present in the input subscripts.`);-1===p.indexOf(t)&&p.push(t)}for(let e=0;e<n.length;++e){let t=n[e];-1===p.indexOf(t)&&","!==t&&p.push(t)}let u=Array(l.length);for(let e=0;e<i;++e){if(new Set(l[e].split("")).size!==l[e].length)throw Error(`Found duplicate axes in input component ${l[e]}. Support for duplicate axes in input is not implemented yet.`);u[e]=[];for(let t=0;t<l[e].length;++t)u[e].push(p.indexOf(l[e][t]))}let c=p.length,d=s.length,f=[];for(let e=d;e<c;++e)f.push(e);return{allDims:p,summedDims:f,idDims:u}}function i(e,t){let r=Array(e);r.fill(-1);for(let e=0;e<t.length;++e)r[t[e]]=e;let n=[];for(let t=0;t<e;++t)-1===r[t]&&n.push(t);return{permutationIndices:r=r.filter(e=>-1!==e),expandDims:n}}function p(e,t,r){let n=Array(e);for(let e=0;e<r.length;++e){let s=r[e].shape;for(let r=0;r<t[e].length;++r)void 0===n[t[e][r]]?n[t[e][r]]=s[r]:(0,a.assert)(n[t[e][r]]===s[r],()=>`Expected dimension ${n[t[e][r]]} at axis ${r} of input shaped ${JSON.stringify(s)}, but got dimension ${s[r]}`)}}function u(e,t){let r=[],n=0;0===e.length&&e.push(-1),n=e.length+1;for(let e=0;e<n;++e)r.push([]);let s=[];for(let n=0;n<e.length;++n)for(let a of function(e,t){let r=[];for(let n=0;n<e.length;++n)(0===e[n].length||-1!==e[n].indexOf(t)||-1===t)&&r.push(n);return r}(t,e[n]))-1===s.indexOf(a)&&(r[n].push(a),s.push(a));return{path:e,steps:r}}function c(e){return e.every((e,t)=>e===t)}},{"../util_base":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fjQdy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prepareSplitSize",()=>o);var a=e("../util");function o(e,t,r=0){let n=[];if("number"==typeof t)(0,a.assert)(e.shape[r]%t==0,()=>"Number of splits must evenly divide the axis."),n=Array(t).fill(e.shape[r]/t);else{let s=t.reduce((e,t)=>(-1===t&&(e+=1),e),0);(0,a.assert)(s<=1,()=>"There should be only one negative value in split array.");let o=t.indexOf(-1);if(-1!==o){let n=t.reduce((e,t)=>t>0?e+t:e);t[o]=e.shape[r]-n}(0,a.assert)(e.shape[r]===t.reduce((e,t)=>e+t),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}},{"../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],isvc7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return`Received SparseTensor with denseShape[0] = 0 but indices.shape[0] = ${e}`}function o(e,t){return`indices(${e}, 0) is invalid: ${t}< 0`}function l(e,t,r){return`indices(${e}, 0) is invalid: ${t} >= ${r}`}s.defineInteropFlag(r),s.export(r,"getSparseFillEmptyRowsIndicesDenseShapeMismatch",()=>a),s.export(r,"getSparseFillEmptyRowsNegativeIndexErrorMessage",()=>o),s.export(r,"getSparseFillEmptyRowsOutOfRangeIndexErrorMessage",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7eyFK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getSparseReshapeMultipleNegativeOneOutputDimErrorMessage",()=>o),s.export(r,"getSparseReshapeNegativeOutputDimErrorMessage",()=>l),s.export(r,"getSparseReshapeEmptyTensorZeroOutputDimErrorMessage",()=>i),s.export(r,"getSparseReshapeInputOutputMultipleErrorMessage",()=>p),s.export(r,"getSparseReshapeInputOutputMismatchErrorMessage",()=>u);var a=e("../../util");function o(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function l(e,t){return`size ${e} must be non-negative, not ${t}`}function i(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function p(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a SparseTensor with ${r} dense values, but the requested shape requires a multiple of ${n}. inputShape=${e} outputShape= ${t}`}function u(e,t){let r=(0,a.sizeFromShape)(e),n=(0,a.sizeFromShape)(t);return`Input to reshape is a tensor with ${r} dense values, but the requested shape has ${n}. inputShape=${e} outputShape=${t}`}},{"../../util":"F0lVc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9WwKW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(){return"segment ids must be >= 0"}function o(){return"segment ids are not increasing"}function l(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function i(e,t,r){return`Bad: indices[${e}] == ${t} out of range [0, ${r})`}s.defineInteropFlag(r),s.export(r,"getSparseSegmentReductionNegativeSegmentIdsErrorMessage",()=>a),s.export(r,"getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage",()=>o),s.export(r,"getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage",()=>l),s.export(r,"getSparseSegmentReductionIndicesOutOfRangeErrorMessage",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"86DF8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"segOpComputeOptimalWindowSize",()=>l),s.export(r,"computeOutShape",()=>i),s.export(r,"collectGatherOpShapeInfo",()=>p);var a=e("../util"),o=e("./reduce_util");function l(e,t){let r,n=!1;for(e<=o.PARALLELIZE_THRESHOLD?(r=e,n=!0):r=(0,a.nearestDivisor)(e,Math.floor(Math.sqrt(e)));!n;)r>t||r===e?n=!0:r=(0,a.nearestDivisor)(e,r+1);return r}function i(e,t,r){let n=[],s=e.length;for(let a=0;a<s;a++)a!==t?n.push(e[a]):n.push(r);return n}function p(e,t,r,n){let s=t.shape.length,a=e.shape.length;if(0!==n&&(n<-s||n>s))throw Error(`Expect batchDims in the range of [-${s}, ${s}], but got ${n}`);if(n<0&&(n+=s),n>a)throw Error(`batchDims (${n}) must be less than rank(x) ( ${a}).`);if(r<n)throw Error(`batchDims (${n}) must be less than or equal to axis (${r}).`);for(let r=0;r<n;++r)if(e.shape[r]!==t.shape[r])throw Error(`x.shape[${r}]: ${e.shape[r]} should be equal to indices.shape[${r}]: ${t.shape[r]}.`);let o=e.shape[r],l=[],i=1,p=1,u=1;for(let t=0;t<n;++t)l.push(e.shape[t]),i*=e.shape[t];for(let t=n;t<r;t++)l.push(e.shape[t]),p*=e.shape[t];for(let e=n;e<s;e++)l.push(t.shape[e]);for(let t=r+1;t<a;t++)l.push(e.shape[t]),u*=e.shape[t];return{batchSize:i,sliceSize:u,outerSize:p,dimSize:o,outputShape:l}}},{"../util":"F0lVc","./reduce_util":"4SxdL","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3ahWG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3Impl",()=>a.nonMaxSuppressionV3Impl),s.export(r,"nonMaxSuppressionV4Impl",()=>a.nonMaxSuppressionV4Impl),s.export(r,"nonMaxSuppressionV5Impl",()=>a.nonMaxSuppressionV5Impl),s.export(r,"whereImpl",()=>o.whereImpl);var a=e("./non_max_suppression_impl"),o=e("./where_impl")},{"./non_max_suppression_impl":"4DLPl","./where_impl":"fNvdb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eHI7U:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GraphModel",()=>a.GraphModel),s.export(r,"loadGraphModel",()=>a.loadGraphModel),s.export(r,"loadGraphModelSync",()=>a.loadGraphModelSync),s.export(r,"deregisterOp",()=>o.deregisterOp),s.export(r,"registerOp",()=>o.registerOp),s.export(r,"version_converter",()=>l.version),e("./flags");var a=e("./executor/graph_model"),o=e("./operations/custom_op/register"),l=e("./version")},{"./flags":"6hDaC","./executor/graph_model":"5oB8D","./operations/custom_op/register":"j5u17","./version":"4MwHk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6hDaC":[function(e,t,r,n){(0,e("@tensorflow/tfjs-core").env)().registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")})},{"@tensorflow/tfjs-core":"2Gtps"}],"5oB8D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TFHUB_SEARCH_PARAM",()=>u),s.export(r,"DEFAULT_MODEL_NAME",()=>c),s.export(r,"GraphModel",()=>d),s.export(r,"loadGraphModel",()=>f),s.export(r,"loadGraphModelSync",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../operations/operation_mapper"),l=e("./graph_executor"),i=e("./resource_manager"),p=e("@tensorflow/tfjs-core/dist/io/io_utils");let u="?tfjs-format=file",c="model.json";class d{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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}constructor(e,t={},r=a.io){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=r,null==t&&(this.loadOptions={}),this.resourceManager=new(0,i.ResourceManager)}findIOHandler(){let e=this.modelUrl;if(null!=e.load)this.handler=e;else if(null!=this.loadOptions.requestInit)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(0===t.length)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),null==this.handler.load)throw Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return a.util.isPromise(e)?e.then(e=>null==e.getWeightStream?this.loadSync(e):this.loadStreaming(e)):this.loadSync(e)}loadSync(e){let t=this.io.decodeWeights(e.weightData,e.weightSpecs);return this.loadWithWeightMap(e,t)}async loadStreaming(e){if(null==e.getWeightStream)throw Error("Model artifacts missing streamWeights function");let t=await (0,p.decodeWeightsStream)(e.getWeightStream(),e.weightSpecs);return this.loadWithWeightMap(e,t)}loadWithWeightMap(e,t){this.artifacts=e;let r=this.artifacts.modelTopology,n=this.artifacts.signature;if(null!=this.artifacts.userDefinedMetadata){let e=this.artifacts.userDefinedMetadata;null!=e.signature&&(n=e.signature),null!=e.structuredOutputKeys&&(this.structuredOutputKeys=e.structuredOutputKeys)}if(this.signature=n,this.version=`${r.versions.producer}.${r.versions.minConsumer}`,this.executor=new(0,l.GraphExecutor)(o.OperationMapper.Instance.transformGraph(r,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(t),this.executor.resourceManager=this.resourceManager,null!=e.modelInitializer&&null!=e.modelInitializer.node){let t=o.OperationMapper.Instance.transformGraph(e.modelInitializer);this.initializer=new(0,l.GraphExecutor)(t),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if("string"==typeof e){let t=this.io.getSaveHandlers(e);if(0===t.length)throw Error(`Cannot find any save handlers for URL '${e}'`);if(t.length>1)throw Error(`Found more than one (${t.length}) save handlers for URL '${e}'`);e=t[0]}if(null==e.save)throw Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof a.Tensor?[e]:e,r={};return t.forEach((e,t)=>r[this.structuredOutputKeys[t]]=e),r}return e}predict(e,t){let r=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(r)}async predictAsync(e,t){let r=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(r)}normalizeInputs(e){var t;if(!(e instanceof a.Tensor)&&!Array.isArray(e)){let r=null==(t=this.signature)?void 0:t.inputs;if(null!=r)for(let t in r){let n=r[t];null!=n.resourceId&&(e[t]=this.resourceIdToCapturedInput[n.resourceId])}return e}e=Array.isArray(e)?e:[e];let r=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+r!==this.inputNodes.length)throw Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-r} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((t,r)=>{var s,a,o;let l=null==(o=null==(a=null==(s=this.signature)?void 0:s.inputs)?void 0:a[r])?void 0:o.resourceId;return null!=l?t[r]=this.resourceIdToCapturedInput[l]:t[r]=e[n++],t},{})}normalizeOutputs(e){return Array.isArray(e=e||this.outputNodes)?e:[e]}executeInitializerGraph(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return null==this.initializer?[]:null==this.initializerSignature?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,r=Object.keys(t);for(let n=0;n<r.length;n++){let s=t[r[n]];this.resourceIdToCapturedInput[s.resourceId]=e[n]}}}execute(e,t){null==this.resourceIdToCapturedInput&&this.setResourceIdToCapturedInput(this.executeInitializerGraph()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let r=this.executor.execute(e,t);return r.length>1?r:r[0]}async executeAsync(e,t){null==this.resourceIdToCapturedInput&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let r=await this.executor.executeAsync(e,t);return r.length>1?r:r[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,r)=>(t[r]=[e[r]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&(0,a.dispose)(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}}async function f(e,t={},r=a.io){var n;if(null==e)throw Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");null==t&&(t={}),t.fromTFHub&&"string"==typeof e&&((n=e).endsWith("/")||(n+="/"),e=`${n}${c}${u}`);let s=new d(e,t,r);return await s.load(),s}function m(e){let t;if(null==e)throw Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");if(e instanceof Array){let[r,n]=e;if(!r)throw Error("modelJSON must be the first element of the array");if(!n||!(n instanceof ArrayBuffer))throw Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in r))throw Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in r))throw Error("Model JSON is missing 'weightsManifest'");let s=a.io.getWeightSpecs(r.weightsManifest),o=a.io.getModelArtifactsForJSONSync(r,s,n);t=a.io.fromMemorySync(o)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=a.io.fromMemorySync(e);else throw Error("Unknown model format");let r=new d(t);return r.load(),r}},{"@tensorflow/tfjs-core":"2Gtps","../operations/operation_mapper":"lginT","./graph_executor":"2xoeY","./resource_manager":"7LEqC","@tensorflow/tfjs-core/dist/io/io_utils":"6yZPf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lginT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OperationMapper",()=>C),s.export(r,"decodeBase64",()=>N),s.export(r,"parseStringParam",()=>E),s.export(r,"getStringParam",()=>F),s.export(r,"getBoolParam",()=>A),s.export(r,"getNumberParam",()=>R),s.export(r,"parseDtypeParam",()=>P),s.export(r,"getFuncParam",()=>$),s.export(r,"getDtypeParam",()=>O),s.export(r,"getDtypeArrayParam",()=>D),s.export(r,"parseTensorShapeParam",()=>M),s.export(r,"getTensorShapeParam",()=>B),s.export(r,"getNumericArrayParam",()=>G),s.export(r,"getStringArrayParam",()=>V),s.export(r,"getTensorShapeArrayParam",()=>L),s.export(r,"getBoolArrayParam",()=>z);var a=e("@tensorflow/tfjs-core"),o=e("../data/compiled_api"),l=e("./custom_op/register"),i=e("./executors/utils"),p=e("./op_list/arithmetic"),u=e("./op_list/basic_math"),c=e("./op_list/control"),d=e("./op_list/convolution"),f=e("./op_list/creation"),m=e("./op_list/dynamic"),h=e("./op_list/evaluation"),g=e("./op_list/graph"),x=e("./op_list/hash_table"),y=e("./op_list/image"),v=e("./op_list/logical"),b=e("./op_list/matrices"),k=e("./op_list/normalization"),_=e("./op_list/reduction"),I=e("./op_list/slice_join"),j=e("./op_list/sparse"),w=e("./op_list/spectral"),T=e("./op_list/string"),S=e("./op_list/transformation");class C{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[].concat(...[p,u,c,d,f,m,h,g,x,y,v,b,k,_,I,j,w,T,S].map(e=>e.json));this.opMappers=e.reduce((e,t)=>(e[t.tfOpName]=t,e),{})}transformGraph(e,t={}){let r=e.node,n=[],s=[],a=[],o=r.reduce((e,t)=>(e[t.name]=this.mapNode(t),t.op.startsWith("Placeholder")?n.push(e[t.name]):"Const"===t.op?s.push(e[t.name]):(null==t.input||0===t.input.length)&&a.push(e[t.name]),e),{}),l=[],p=[],u={},c={};null!=t&&(u=this.mapSignatureEntries(t.inputs),c=this.mapSignatureEntries(t.outputs));let d=Object.keys(o);d.forEach(e=>{let t=o[e];t.inputNames.forEach((e,r)=>{let[n,,s]=(0,i.getNodeNameAndIndex)(e),a=o[n];if(null!=a.outputs){let e=a.outputs.indexOf(s);if(-1!==e){let s=`${n}:${e}`;t.inputNames[r]=s}}t.inputs.push(a),a.children.push(t)})}),0===Object.keys(c).length?d.forEach(e=>{let t=o[e];0===t.children.length&&p.push(t)}):Object.keys(c).forEach(e=>{let[t]=(0,i.getNodeNameAndIndex)(e),r=o[t];null!=r&&(r.signatureKey=c[e],p.push(r))}),Object.keys(u).length>0?Object.keys(u).forEach(e=>{let[t]=(0,i.getNodeNameAndIndex)(e),r=o[t];r&&(r.signatureKey=u[e],l.push(r))}):l=n;let f={};null!=e.library&&null!=e.library.function&&(f=e.library.function.reduce((e,t)=>(e[t.signature.name]=this.mapFunction(t),e),{}));let m={nodes:o,inputs:l,outputs:p,weights:s,placeholders:n,signature:t,functions:f};return a.length>0&&(m.initNodes=a),m}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,r)=>(t[e[r].name]=r,t),{})}mapNode(e){let t=(0,l.getRegisteredOp)(e.op)||this.opMappers[e.op]||{};null==e.attr&&(e.attr={});let r={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(e=>e.startsWith("^")?e.slice(1):e),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return null!=t.inputs&&(r.inputParams=t.inputs.reduce((e,t)=>(e[t.name]={type:t.type,inputIndexStart:t.start,inputIndexEnd:t.end},e),{})),null!=t.attrs&&(r.attrParams=t.attrs.reduce((t,r)=>{let n,s=r.type;switch(r.type){case"string":void 0===(n=F(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=F(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":void 0===(n=V(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=V(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":void 0===(n=R(e.attr,r.tfName,r.defaultValue||0))&&r.tfDeprecatedName&&(n=R(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":void 0===(n=G(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=G(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":void 0===(n=A(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=A(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":void 0===(n=z(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=z(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":void 0===(n=B(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=B(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":void 0===(n=L(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=L(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":void 0===(n=O(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=O(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":void 0===(n=D(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=D(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":void 0===(n=$(e.attr,r.tfName,r.defaultValue))&&r.tfDeprecatedName&&(n=$(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return t[r.name]={value:n,type:s},t},{})),r}mapFunction(e){let t=e.nodeDef,r=[],n={};null!=t&&(n=t.reduce((e,t)=>(e[t.name]=this.mapNode(t),"Const"===t.op&&r.push(e[t.name]),e),{}));let s=[],a=[];e.signature.inputArg.forEach(e=>{let[t]=(0,i.getNodeNameAndIndex)(e.name),r={name:t,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:P(e.type),type:"dtype"}},children:[]};r.signatureKey=e.name,s.push(r),n[t]=r}),Object.keys(n).forEach(e=>{let t=n[e];t.inputNames.forEach((e,r)=>{let[s,,a]=(0,i.getNodeNameAndIndex)(e),o=n[s];if(null!=o.outputs){let e=o.outputs.indexOf(a);if(-1!==e){let n=`${s}:${e}`;t.inputNames[r]=n}}t.inputs.push(o),o.children.push(t)})});let o=e.ret;e.signature.outputArg.forEach(e=>{let[t,r]=(0,i.getNodeNameAndIndex)(o[e.name]),s=n[t];null!=s&&(s.defaultOutput=r,a.push(s))});let l=this.mapArgsToSignature(e);return{nodes:n,inputs:s,outputs:a,weights:r,placeholders:[],signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((e,t)=>(e[t.name]=this.mapArgToTensorInfo(t),e),{}),outputs:e.signature.outputArg.reduce((t,r)=>(t[r.name]=this.mapArgToTensorInfo(r,e.ret),t),{})}}mapArgToTensorInfo(e,t){let r=e.name;return null!=t&&(r=t[r]),{name:r,dtype:e.type}}}function N(e){let t=(0,a.env)().global;if(void 0!==t.atob)return t.atob(e);if("u">typeof Buffer)return new Buffer(e,"base64").toString();throw Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function E(e,t){let r=Array.isArray(e)?String.fromCharCode.apply(null,e):N(e);return t?r:r.toLowerCase()}function F(e,t,r,n=!1){let s=e[t];return null!=s?E(s.s,n):r}function A(e,t,r){let n=e[t];return n?n.b:r}function R(e,t,r){let n=e[t]||{},s=null!=n.i?n.i:null!=n.f?n.f:r;return"number"==typeof s?s:parseInt(s,10)}function P(e){switch("string"==typeof e&&(e=o.DataType[e]),e){case o.DataType.DT_FLOAT:case o.DataType.DT_HALF:return"float32";case o.DataType.DT_INT32:case o.DataType.DT_INT64:case o.DataType.DT_INT8:case o.DataType.DT_UINT8:return"int32";case o.DataType.DT_BOOL:return"bool";case o.DataType.DT_DOUBLE:return"float32";case o.DataType.DT_STRING:return"string";case o.DataType.DT_COMPLEX64:case o.DataType.DT_COMPLEX128:return"complex64";default:return null}}function $(e,t,r){let n=e[t];return n&&n.func?n.func.name:r}function O(e,t,r){let n=e[t];return n&&n.type?P(n.type):r}function D(e,t,r){let n=e[t];return n&&n.list&&n.list.type?n.list.type.map(e=>P(e)):r}function M(e){if(!e.unknownRank)return null!=e.dim?e.dim.map(e=>"number"==typeof e.size?e.size:parseInt(e.size,10)):[]}function B(e,t,r){let n=e[t];return n&&n.shape?M(n.shape):r}function G(e,t,r){let n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(e=>"number"==typeof e?e:parseInt(e,10)):r}function V(e,t,r,n=!1){let s=e[t];return s&&s.list&&s.list.s?s.list.s.map(e=>E(e,n)):r}function L(e,t,r){let n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map(e=>M(e)):r}function z(e,t,r){let n=e[t];return n&&n.list&&n.list.b?n.list.b:r}},{"@tensorflow/tfjs-core":"2Gtps","../data/compiled_api":"BNhid","./custom_op/register":"j5u17","./executors/utils":"7JaBk","./op_list/arithmetic":"cxNyo","./op_list/basic_math":"hco3m","./op_list/control":"97vYf","./op_list/convolution":"1drIb","./op_list/creation":"7Savn","./op_list/dynamic":"gW1dm","./op_list/evaluation":"gqjVt","./op_list/graph":"ggyMr","./op_list/hash_table":"f0Kzh","./op_list/image":"6FkEZ","./op_list/logical":"xIP3m","./op_list/matrices":"ioD1E","./op_list/normalization":"k0yo4","./op_list/reduction":"am7tX","./op_list/slice_join":"dNpji","./op_list/sparse":"cqFMk","./op_list/spectral":"byomO","./op_list/string":"6z66K","./op_list/transformation":"72RQ6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],BNhid:[function(e,t,r,n){var s,a,o,l,i,p=e("@parcel/transformer-js/src/esmodule-helpers.js");p.defineInteropFlag(r),p.export(r,"DataType",()=>l),p.export(r,"SaverDef",()=>i),(s=l||(l={}))[s.DT_INVALID=0]="DT_INVALID",s[s.DT_FLOAT=1]="DT_FLOAT",s[s.DT_DOUBLE=2]="DT_DOUBLE",s[s.DT_INT32=3]="DT_INT32",s[s.DT_UINT8=4]="DT_UINT8",s[s.DT_INT16=5]="DT_INT16",s[s.DT_INT8=6]="DT_INT8",s[s.DT_STRING=7]="DT_STRING",s[s.DT_COMPLEX64=8]="DT_COMPLEX64",s[s.DT_INT64=9]="DT_INT64",s[s.DT_BOOL=10]="DT_BOOL",s[s.DT_QINT8=11]="DT_QINT8",s[s.DT_QUINT8=12]="DT_QUINT8",s[s.DT_QINT32=13]="DT_QINT32",s[s.DT_BFLOAT16=14]="DT_BFLOAT16",s[s.DT_QINT16=15]="DT_QINT16",s[s.DT_QUINT16=16]="DT_QUINT16",s[s.DT_UINT16=17]="DT_UINT16",s[s.DT_COMPLEX128=18]="DT_COMPLEX128",s[s.DT_HALF=19]="DT_HALF",s[s.DT_RESOURCE=20]="DT_RESOURCE",s[s.DT_VARIANT=21]="DT_VARIANT",s[s.DT_UINT32=22]="DT_UINT32",s[s.DT_UINT64=23]="DT_UINT64",s[s.DT_FLOAT_REF=101]="DT_FLOAT_REF",s[s.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",s[s.DT_INT32_REF=103]="DT_INT32_REF",s[s.DT_UINT8_REF=104]="DT_UINT8_REF",s[s.DT_INT16_REF=105]="DT_INT16_REF",s[s.DT_INT8_REF=106]="DT_INT8_REF",s[s.DT_STRING_REF=107]="DT_STRING_REF",s[s.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",s[s.DT_INT64_REF=109]="DT_INT64_REF",s[s.DT_BOOL_REF=110]="DT_BOOL_REF",s[s.DT_QINT8_REF=111]="DT_QINT8_REF",s[s.DT_QUINT8_REF=112]="DT_QUINT8_REF",s[s.DT_QINT32_REF=113]="DT_QINT32_REF",s[s.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",s[s.DT_QINT16_REF=115]="DT_QINT16_REF",s[s.DT_QUINT16_REF=116]="DT_QUINT16_REF",s[s.DT_UINT16_REF=117]="DT_UINT16_REF",s[s.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",s[s.DT_HALF_REF=119]="DT_HALF_REF",s[s.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",s[s.DT_VARIANT_REF=121]="DT_VARIANT_REF",s[s.DT_UINT32_REF=122]="DT_UINT32_REF",s[s.DT_UINT64_REF=123]="DT_UINT64_REF",(o=(a=i||(i={})).CheckpointFormatVersion||(a.CheckpointFormatVersion={}))[o.LEGACY=0]="LEGACY",o[o.V1=1]="V1",o[o.V2=2]="V2"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j5u17:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"registerOp",()=>o),s.export(r,"getRegisteredOp",()=>l),s.export(r,"deregisterOp",()=>i);let a={};function o(e,t){a[e]={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t}}function l(e){return a[e]}function i(e){delete a[e]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7JaBk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getParamValue",()=>o),s.export(r,"getTensor",()=>l),s.export(r,"getTensorsForCurrentContext",()=>i),s.export(r,"getNodeNameAndIndex",()=>p),s.export(r,"parseNodeName",()=>c),s.export(r,"split",()=>d),s.export(r,"getPadding",()=>f),s.export(r,"cloneTensor",()=>m);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=t.inputParams[e];if(o&&void 0!==o.inputIndexStart){let e=o.inputIndexStart,i=0===o.inputIndexEnd?void 0:void 0===o.inputIndexEnd?e+1:o.inputIndexEnd,p=e<0?t.inputNames.length+e:e;if("tensor"===o.type)return l(t.inputNames[p],r,n,s);if("tensors"===o.type){let a=t.inputs.slice(e,i);return t.inputNames.slice(e,i).filter((e,t)=>{var r;return(null==(r=a[t])?void 0:r.op)!=="NoOp"}).map(e=>l(e,r,n,s))}let u=l(t.inputNames[p],r,n,s),c=u.dataSync();return"number"===o.type?c[0]:a.util.toNestedArray(u.shape,c)}let i=t.attrParams[e];return i&&i.value}function l(e,t,r,n){let[s,a]=c(e,r);if(null!=n){let e=n.getHashTableHandleByName(s);if(null!=e)return e}let o=r.currentContextIds.find(e=>!!t[u(s,e)]);return void 0!==o?t[u(s,o)][a]:void 0}function i(e,t,r){return t[u(e,r.currentContextId)]}function p(e,t){let[r,n,s]=c(e,t);return[u(r,t&&t.currentContextId),n,s]}function u(e,t){return t?`${e}-${t}`:e}function c(e,t){let r;if(""===e)return["",0,void 0];let n=null!=t&&null!=t.parseNodeNameCache;if(n){let r=t.parseNodeNameCache.get(e);if(null!=r)return r}let s=e.split(":");if(1===s.length)r=[e,0,void 0];else{let e=s[0],t=3===s.length?s[1]:void 0;r=[e,Number(s[s.length-1]),t]}return n&&t.parseNodeNameCache.set(e,r),r}function d(e,t){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function f(e,t,r){let n=o("pad",e,t,r);if("explicit"===n){n=o("explicitPaddings",e,t,r);let s=[[0,0],[0,0],[0,0],[0,0]];for(let e=0;e<4;e++)s[e][0]=n[2*e],s[e][1]=n[2*e+1];return s}return n}function m(e){return e.kept?e:(0,a.clone)(e)}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cxNyo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hco3m:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsFinite",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsInf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"97vYf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1drIb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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",defaultValue:.2}]},{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7Savn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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:"RandomUniformInt",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number"},{tfName:"maxval",name:"maxval",type:"number"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gW1dm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gqjVt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ggyMr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f0Kzh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6FkEZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],xIP3m:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]},{tfOpName:"BitwiseAnd",category:"logical",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ioD1E:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"MatrixBandPart",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"numLower",type:"tensor"},{start:1,name:"numUpper",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k0yo4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],am7tX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cumprod",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"}]},{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"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dNpji:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]},{tfOpName:"TensorScatterUpdate",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"values",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cqFMk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],byomO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6z66K":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{tfOpName:"StaticRegexReplace",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"pattern",name:"pattern",type:"string"},{tfName:"rewrite",name:"rewrite",type:"string"},{tfName:"replace_global",name:"replaceGlobal",type:"bool"}]},{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"72RQ6":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"json",()=>a);let a=[{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:"EnsureShape",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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}]},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2xoeY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GraphExecutor",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../operations/executors/utils"),l=e("../operations/operation_executor"),i=e("./execution_context"),p=e("./model_analysis");class u{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(t=>e[t].map(e=>e.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),{})}constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this.parseNodeNameCache=new Map,this._weightMap={},this.SEPARATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,null!=e.functions&&Object.keys(e.functions).forEach(t=>{this._functionExecutorMap[t]=new u(e.functions[t],this)})}getCompilationKey(e,t){let r=e.map(e=>e.name).sort(),n=t.map(e=>e.name).sort();return r.join(this.SEPARATOR)+"--"+n.join(this.SEPARATOR)}compile(e,t){let r=(0,p.getExecutionSubgraph)(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:s,syncInputs:a}=r;if(null!=s)throw 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 r=t.map(e=>e.name),s=Object.keys(e);throw Error(`Cannot compute the outputs [${r}] from the provided inputs [${s}]. Missing the following inputs: [${n}]`)}let o=(0,p.getNodesInTopologicalOrder)(this.graph,r),l=(0,p.getNodeLiveUntilMap)(o);return{orderedNodes:o,nodeLiveUntilMap:l}}cloneAndKeepTensor(e){if(null==e)return null;let t=e.clone();return(0,a.keep)(t),t}cloneTensorList(e){return e?e.map(e=>this.cloneAndKeepTensor(e)):null}cloneTensorMap(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,this.cloneTensorList(t)]))}execute(e,t){this.disposeIntermediateTensors();let r=Object.keys(e=this.mapInputs(e)).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let n=r.map(e=>this.graph.nodes[(0,o.parseNodeName)(e)[0]]),s=t.map(e=>(0,o.parseNodeName)(e)[0]),p=new Set(s),u=s.map(e=>this.graph.nodes[e]);0===u.length&&(u=this._outputs);let c=this.getCompilationKey(n,u),d=this.compiledMap.get(c);null==d&&(d=this.compile(e,u),this.compiledMap.set(c,d));try{this.keepIntermediateTensors=(0,a.env)().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1,console.warn(e.message)}let f={},m={};return(0,a.tidy)(()=>{let r=new(0,i.ExecutionContext)(this.weightMap,f,m,this.functionExecutorMap,this.parseNodeNameCache),n=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(t=>{let[s,a]=(0,o.parseNodeName)(t,r),l=[];l[a]=e[t],n[s]=l,this.keepIntermediateTensors&&(this.clonedTensorsMap[s]=this.cloneTensorList(l))});let s=this.getFrozenTensorIds(n),{orderedNodes:u,nodeLiveUntilMap:c}=d;for(let e of u){if(n[e.name])continue;let t=(0,l.executeOp)(e,n,r,this._resourceManager);if(a.util.isPromise(t))throw Error(`The execution of the op '${e.op}' returned a promise. Please use model.executeAsync() instead.`);n[e.name]=t,this.keepIntermediateTensors&&(this.clonedTensorsMap[e.name]=this.cloneTensorList(t)),this.checkTensorForDisposalWithNodeLiveUntilInfo(e,n,r,s,p,c.get(e.name))}return null==this.parent&&r.dispose(s),t.map(e=>(0,o.getTensor)(e,n,r))})}getFrozenTensorIds(e){return new Set([].concat.apply([],Object.keys(e).map(t=>e[t]).map(e=>e.map(e=>e.id))))}checkTensorForDisposal(e,t,r,n,s,a,l){if(!((0,p.isControlFlow)(t)||a.has(e))){for(let n of r[e])null!=n&&(l[n.id]=(l[n.id]||0)+t.children.length);for(let e of t.inputs){if((0,p.isControlFlow)(e))continue;let t=(0,o.getTensorsForCurrentContext)(e.name,r,n);if(null!=t)for(let e of t){if(!e||e.kept||s.has(e.id))continue;let t=l[e.id];1===t?(e.dispose(),delete l[e.id]):null!=t&&l[e.id]--}}}}checkTensorForDisposalWithNodeLiveUntilInfo(e,t,r,n,s,a){if(!(0,p.isControlFlow)(e)&&null!=a){for(let e of a)if(!((0,p.isControlFlow)(e)||s.has(e.name)))for(let s of(0,o.getTensorsForCurrentContext)(e.name,t,r))!s||s.kept||n.has(s.id)||s.dispose()}}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){this.clonedTensorsMap&&(Object.values(this.clonedTensorsMap).forEach(e=>{for(let t of e)t&&!t.isDisposed&&t.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(e,t,r=!1,n={},s={}){this.disposeIntermediateTensors(),r||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepIntermediateTensors=(0,a.env)().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(e){this.keepIntermediateTensors=!1,console.warn(e.message)}let l=new(0,i.ExecutionContext)(this.weightMap,n,s,this.functionExecutorMap,this.parseNodeNameCache);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let p=await this.executeWithControlFlow(e,l,t,r),u=t.map(e=>(0,o.getTensor)(e,p,l)),c=new Set([...u.map(e=>e.id),...Object.keys(e).map(t=>e[t].id),...this.weightIds]);return Object.values(p).forEach(e=>{e.forEach(e=>{!e||e.isDisposed||c.has(e.id)||e.dispose()})}),null==this.parent&&l.dispose(c),u}async executeFunctionAsync(e,t,r){let n=e.reduce((e,t,r)=>(e[this.inputs[r].name]=t,e),{});return this._executeAsync(n,this.outputNodes,!0,t,r)}async executeWithControlFlow(e,t,r,n){let s=Object.keys(e),a=s.map(e=>this.graph.nodes[(0,o.parseNodeName)(e)[0]]),l=r.map(e=>(0,o.parseNodeName)(e)[0]),i=new Set(l),u=l.map(e=>this.graph.nodes[e]);0===u.length&&(u=this._outputs);let{usedNodes:c,missingInputs:d,dynamicNode:f,syncInputs:m}=(0,p.getExecutionSubgraph)(e,u,this.weightMap,this._initNodes),h=[...a,...this.graph.weights,...this._initNodes||[]].map(e=>({node:e,contexts:t.currentContext})),g=Object.assign({},this.weightMap);Object.keys(e).forEach(t=>{let[r,n]=(0,o.parseNodeName)(t),s=[];s[n]=e[t],g[r]=s});let x={},y=this.getFrozenTensorIds(g),v={};for(;h.length>0;){let e=this.processStack(a,h,t,g,v,y,i,x,c);await Promise.all(e)}null!=f||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=u.filter(e=>!(0,p.isControlFlow)(e)&&!(0,o.getTensor)(e.name,g,t)).map(e=>e.name);if(b.length>0){let e="";throw null!=f&&(e=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${d}]. ${e}`)}return g}processStack(e,t,r,n,s,i,p,u,c){let d=[];for(;t.length>0;){let e=t.pop();r.currentContext=e.contexts;let f="";if("Enter"===e.node.op&&(0,o.getParamValue)("isConstant",e.node,n,r)&&([f]=(0,o.getNodeNameAndIndex)(e.node.name,r)),null==n[e.node.name]){let m=(0,l.executeOp)(e.node,n,r,this._resourceManager);f||([f]=(0,o.getNodeNameAndIndex)(e.node.name,r));let h=r.currentContext;a.util.isPromise(m)?d.push(m.then(a=>(n[f]=a,this.keepIntermediateTensors&&(this.clonedTensorsMap[f]=this.cloneTensorList(a)),r.currentContext=h,this.checkTensorForDisposal(f,e.node,n,r,i,p,u),this.processChildNodes(e.node,t,r,n,s,c),a))):(n[f]=m,this.keepIntermediateTensors&&(this.clonedTensorsMap[f]=this.cloneTensorList(m)),this.checkTensorForDisposal(f,e.node,n,r,i,p,u),this.processChildNodes(e.node,t,r,n,s,c))}else this.processChildNodes(e.node,t,r,n,s,c)}return d}processChildNodes(e,t,r,n,s,a){e.children.forEach(e=>{let[l]=(0,o.getNodeNameAndIndex)(e.name,r);!s[l]&&a.has(e.name)&&("Merge"===e.op?e.inputNames.some(e=>!!(0,o.getTensor)(e,n,r))&&(s[l]=!0,t.push({contexts:r.currentContext,node:e})):e.inputNames.every(e=>!!(0,o.getTensor)(e,n,r))&&(s[l]=!0,t.push({contexts:r.currentContext,node:e})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(e=>e.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let r=e[t],[n]=(0,o.parseNodeName)(t),s=this.graph.nodes[n];if(s.attrParams.shape&&s.attrParams.shape.value){let e=s.attrParams.shape.value,t=e.length===r.shape.length&&r.shape.every((t,r)=>-1===e[r]||e[r]===t);a.util.assert(t,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${e}], but was [${r.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&a.util.assert(r.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${r.dtype}`)})}mapInputs(e){var t,r;let n={};for(let s in e){let a=null==(r=null==(t=this._signature)?void 0:t.inputs)?void 0:r[s];null!=a?n[a.name]=e[s]:n[s]=e[s]}return n}checkInputs(e){let t=Object.keys(e).filter(e=>{let[t]=(0,o.parseNodeName)(e);return null==this.graph.nodes[t]});if(t.length>0)throw Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(e=>{var t,r;let n=null==(r=null==(t=this._signature)?void 0:t.outputs)?void 0:r[e];return null!=n?n.name:e},{})}checkOutputs(e){e.forEach(e=>{let[t]=(0,o.parseNodeName)(e);if(!this.graph.nodes[t])throw Error(`The output '${e}' is not found in the graph`)})}}},{"@tensorflow/tfjs-core":"2Gtps","../operations/executors/utils":"7JaBk","../operations/operation_executor":"jRbJE","./execution_context":"kjrPn","./model_analysis":"6RNWa","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jRbJE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>C);var a=e("@tensorflow/tfjs-core"),o=e("./custom_op/node_value_impl"),l=e("./custom_op/register"),i=e("./executors/arithmetic_executor"),p=e("./executors/basic_math_executor"),u=e("./executors/control_executor"),c=e("./executors/convolution_executor"),d=e("./executors/creation_executor"),f=e("./executors/dynamic_executor"),m=e("./executors/evaluation_executor"),h=e("./executors/graph_executor"),g=e("./executors/hash_table_executor"),x=e("./executors/image_executor"),y=e("./executors/logical_executor"),v=e("./executors/matrices_executor"),b=e("./executors/normalization_executor"),k=e("./executors/ragged_executor"),_=e("./executors/reduction_executor"),I=e("./executors/slice_join_executor"),j=e("./executors/sparse_executor"),w=e("./executors/spectral_executor"),T=e("./executors/string_executor"),S=e("./executors/transformation_executor");function C(e,t,r,n,s=a.tidy){let N=((e,t,r)=>{switch(e.category){case"arithmetic":return s(()=>i.executeOp(e,t,r));case"basic_math":return s(()=>p.executeOp(e,t,r));case"control":return u.executeOp(e,t,r);case"convolution":return s(()=>c.executeOp(e,t,r));case"creation":return s(()=>d.executeOp(e,t,r));case"dynamic":return f.executeOp(e,t,r);case"evaluation":return s(()=>m.executeOp(e,t,r));case"image":return s(()=>x.executeOp(e,t,r));case"graph":return s(()=>h.executeOp(e,t,r));case"logical":return s(()=>y.executeOp(e,t,r));case"matrices":return s(()=>v.executeOp(e,t,r));case"normalization":return s(()=>b.executeOp(e,t,r));case"ragged":return s(()=>k.executeOp(e,t,r));case"reduction":return s(()=>_.executeOp(e,t,r));case"slice_join":return s(()=>I.executeOp(e,t,r));case"sparse":return s(()=>j.executeOp(e,t,r));case"spectral":return s(()=>w.executeOp(e,t,r));case"string":return s(()=>T.executeOp(e,t,r));case"transformation":return s(()=>S.executeOp(e,t,r));case"hash_table":return g.executeOp(e,t,r,n);case"custom":let a=(0,l.getRegisteredOp)(e.op);if(a&&a.customExecutor)return a.customExecutor(new(0,o.NodeValueImpl)(e,t,r));throw TypeError(`Custom op ${e.op} is not registered.`);default:throw TypeError(`Unknown op '${e.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,r);return a.util.isPromise(N)?N.then(e=>[].concat(e)):[].concat(N)}},{"@tensorflow/tfjs-core":"2Gtps","./custom_op/node_value_impl":"gsVt0","./custom_op/register":"j5u17","./executors/arithmetic_executor":"8j2Lq","./executors/basic_math_executor":"ibHoa","./executors/control_executor":"dUvmj","./executors/convolution_executor":"ebCt3","./executors/creation_executor":"jGuVv","./executors/dynamic_executor":"6MrZY","./executors/evaluation_executor":"aCa2f","./executors/graph_executor":"aTTe4","./executors/hash_table_executor":"bgWBQ","./executors/image_executor":"4PO7O","./executors/logical_executor":"1Av7N","./executors/matrices_executor":"iyJvB","./executors/normalization_executor":"3LyHZ","./executors/ragged_executor":"ig29V","./executors/reduction_executor":"ayS3S","./executors/slice_join_executor":"exLUI","./executors/sparse_executor":"4cqnd","./executors/spectral_executor":"ldBfB","./executors/string_executor":"dinGK","./executors/transformation_executor":"7MPCS","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gsVt0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"NodeValueImpl",()=>l);var a=e("../executors/utils"),o=e("../operation_mapper");class l{constructor(e,t,r){this.node=e,this.tensorMap=t,this.context=r,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(e=>this.getInput(e)),null!=e.rawAttrs&&(this.attrs=Object.keys(e.rawAttrs).reduce((e,t)=>(e[t]=this.getAttr(t),e),{}))}getInput(e){return(0,a.getTensor)(e,this.tensorMap,this.context)}getAttr(e,t){let r=this.node.rawAttrs[e];if(null!=r.tensor)return(0,a.getTensor)(e,this.tensorMap,this.context);if(null!=r.i||null!=r.f)return(0,o.getNumberParam)(this.node.rawAttrs,e,t);if(null!=r.s)return(0,o.getStringParam)(this.node.rawAttrs,e,t);if(null!=r.b)return(0,o.getBoolParam)(this.node.rawAttrs,e,t);if(null!=r.shape)return(0,o.getTensorShapeParam)(this.node.rawAttrs,e,t);if(null!=r.type)return(0,o.getDtypeParam)(this.node.rawAttrs,e,t);if(null!=r.list){if(null!=r.list.i||null!=r.list.f)return(0,o.getNumericArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.s)return(0,o.getStringArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.shape)return(0,o.getTensorShapeArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.b)return(0,o.getBoolArrayParam)(this.node.rawAttrs,e,t);if(null!=r.list.type)return(0,o.getDtypeArrayParam)(this.node.rawAttrs,e,t)}return t}}},{"../executors/utils":"7JaBk","../operation_mapper":"lginT","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8j2Lq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[n.add((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"AddN":return[n.addN((0,o.getParamValue)("tensors",e,t,r))];case"FloorMod":case"Mod":return[n.mod((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Mul":return[n.mul((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"RealDiv":case"Div":return[n.div((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"DivNoNan":return[n.divNoNan((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"FloorDiv":return[n.floorDiv((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Sub":return[n.sub((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Minimum":return[n.minimum((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Maximum":return[n.maximum((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Pow":return[n.pow((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"SquaredDifference":return[n.squaredDifference((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="arithmetic"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dSdTy:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./ops");s.exportAll(a,r)},{"./ops":"4pdlU","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ibHoa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Abs":case"ComplexAbs":return[n.abs((0,o.getParamValue)("x",e,t,r))];case"Acos":return[n.acos((0,o.getParamValue)("x",e,t,r))];case"Acosh":return[n.acosh((0,o.getParamValue)("x",e,t,r))];case"Asin":return[n.asin((0,o.getParamValue)("x",e,t,r))];case"Asinh":return[n.asinh((0,o.getParamValue)("x",e,t,r))];case"Atan":return[n.atan((0,o.getParamValue)("x",e,t,r))];case"Atan2":return[n.atan2((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("y",e,t,r))];case"Atanh":return[n.atanh((0,o.getParamValue)("x",e,t,r))];case"Ceil":return[n.ceil((0,o.getParamValue)("x",e,t,r))];case"Complex":return[n.complex((0,o.getParamValue)("real",e,t,r),(0,o.getParamValue)("imag",e,t,r))];case"Cos":return[n.cos((0,o.getParamValue)("x",e,t,r))];case"Cosh":return[n.cosh((0,o.getParamValue)("x",e,t,r))];case"Elu":return[n.elu((0,o.getParamValue)("x",e,t,r))];case"Erf":return[n.erf((0,o.getParamValue)("x",e,t,r))];case"Exp":return[n.exp((0,o.getParamValue)("x",e,t,r))];case"Expm1":return[n.expm1((0,o.getParamValue)("x",e,t,r))];case"Floor":return[n.floor((0,o.getParamValue)("x",e,t,r))];case"Log":return[n.log((0,o.getParamValue)("x",e,t,r))];case"Log1p":return[n.log1p((0,o.getParamValue)("x",e,t,r))];case"Imag":return[n.imag((0,o.getParamValue)("x",e,t,r))];case"Neg":return[n.neg((0,o.getParamValue)("x",e,t,r))];case"Reciprocal":return[n.reciprocal((0,o.getParamValue)("x",e,t,r))];case"Real":return[n.real((0,o.getParamValue)("x",e,t,r))];case"Relu":return[n.relu((0,o.getParamValue)("x",e,t,r))];case"Round":return[n.round((0,o.getParamValue)("x",e,t,r))];case"Selu":return[n.selu((0,o.getParamValue)("x",e,t,r))];case"Sigmoid":return[n.sigmoid((0,o.getParamValue)("x",e,t,r))];case"Sin":return[n.sin((0,o.getParamValue)("x",e,t,r))];case"Sign":return[n.sign((0,o.getParamValue)("x",e,t,r))];case"Sinh":return[n.sinh((0,o.getParamValue)("x",e,t,r))];case"Softplus":return[n.softplus((0,o.getParamValue)("x",e,t,r))];case"Sqrt":return[n.sqrt((0,o.getParamValue)("x",e,t,r))];case"Square":return[n.square((0,o.getParamValue)("x",e,t,r))];case"Tanh":return[n.tanh((0,o.getParamValue)("x",e,t,r))];case"Tan":return[n.tan((0,o.getParamValue)("x",e,t,r))];case"ClipByValue":return[n.clipByValue((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("clipValueMin",e,t,r),(0,o.getParamValue)("clipValueMax",e,t,r))];case"Relu6":return[n.relu6((0,o.getParamValue)("x",e,t,r))];case"Rsqrt":return[n.rsqrt((0,o.getTensor)(e.inputNames[0],t,r))];case"LeakyRelu":return[n.leakyRelu((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("alpha",e,t,r))];case"Prelu":return[n.prelu((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("alpha",e,t,r))];case"IsNan":return[n.isNaN((0,o.getTensor)(e.inputNames[0],t,r))];case"IsInf":return[n.isInf((0,o.getTensor)(e.inputNames[0],t,r))];case"IsFinite":return[n.isFinite((0,o.getTensor)(e.inputNames[0],t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="basic_math"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dUvmj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>p),s.export(r,"CATEGORY",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../../executor/tensor_array"),l=e("../../executor/tensor_list"),i=e("./utils");let p=async(e,t,r)=>{switch(e.op){case"If":case"StatelessIf":{let n=(0,i.getParamValue)("thenBranch",e,t,r),s=(0,i.getParamValue)("elseBranch",e,t,r),a=(0,i.getParamValue)("cond",e,t,r),o=(0,i.getParamValue)("args",e,t,r);if((await a.data())[0])return r.functionMap[n].executeFunctionAsync(o,r.tensorArrayMap,r.tensorListMap);return r.functionMap[s].executeFunctionAsync(o,r.tensorArrayMap,r.tensorListMap)}case"While":case"StatelessWhile":{let n=(0,i.getParamValue)("body",e,t,r),s=(0,i.getParamValue)("cond",e,t,r),a=(0,i.getParamValue)("args",e,t,r),o=await r.functionMap[s].executeFunctionAsync(a,r.tensorArrayMap,r.tensorListMap),l=a.map(e=>e.id),p=await o[0].data();o.forEach(e=>{e.kept||-1!==l.indexOf(e.id)||e.dispose()});let u=a;for(;p[0];){let e=u,t=(u=await r.functionMap[n].executeFunctionAsync(u,r.tensorArrayMap,r.tensorListMap)).map(e=>e.id);e.forEach(e=>{e.kept||-1!==l.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()});let a=await r.functionMap[s].executeFunctionAsync(u,r.tensorArrayMap,r.tensorListMap);p=await a[0].data(),a.forEach(e=>{e.kept||-1!==l.indexOf(e.id)||-1!==t.indexOf(e.id)||e.dispose()})}return u}case"LoopCond":{let n=(0,i.getParamValue)("pred",e,t,r);return[(0,i.cloneTensor)(n)]}case"Switch":{let n=(0,i.getParamValue)("pred",e,t,r),s=(0,i.getParamValue)("data",e,t,r);return s.kept||(s=(0,i.cloneTensor)(s)),(await n.data())[0]?[void 0,s]:[s,void 0]}case"Merge":{let n=e.inputNames.find(e=>void 0!==(0,i.getTensor)(e,t,r));if(n){let e=(0,i.getTensor)(n,t,r);return[(0,i.cloneTensor)(e)]}return}case"Enter":{let n=(0,i.getParamValue)("frameName",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r);return r.enterFrame(n),[(0,i.cloneTensor)(s)]}case"Exit":{let n=(0,i.getParamValue)("tensor",e,t,r);return r.exitFrame(),[(0,i.cloneTensor)(n)]}case"NextIteration":{let n=(0,i.getParamValue)("tensor",e,t,r);return r.nextIteration(),[(0,i.cloneTensor)(n)]}case"TensorArrayV3":{let n=(0,i.getParamValue)("size",e,t,r),s=(0,i.getParamValue)("dtype",e,t,r),l=(0,i.getParamValue)("elementShape",e,t,r),p=(0,i.getParamValue)("dynamicSize",e,t,r),u=(0,i.getParamValue)("clearAfterRead",e,t,r),c=(0,i.getParamValue)("identicalElementShapes",e,t,r),d=(0,i.getParamValue)("name",e,t,r),f=new(0,o.TensorArray)(d,s,n,l,c,p,u);return r.addTensorArray(f),[f.idTensor,(0,a.scalar)(1)]}case"TensorArrayWriteV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("index",e,t,r),a=(0,i.getParamValue)("tensor",e,t,r),o=r.getTensorArray(n.id);return o.write(s,a),[o.idTensor]}case"TensorArrayReadV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("index",e,t,r);return[r.getTensorArray(n.id).read(s)]}case"TensorArrayGatherV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("indices",e,t,r),a=(0,i.getParamValue)("dtype",e,t,r);return[r.getTensorArray(n.id).gather(s,a)]}case"TensorArrayScatterV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("indices",e,t,r),a=(0,i.getParamValue)("tensor",e,t,r),o=r.getTensorArray(n.id);return o.scatter(s,a),[o.idTensor]}case"TensorArrayConcatV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=r.getTensorArray(n.id),a=(0,i.getParamValue)("dtype",e,t,r);return[s.concat(a)]}case"TensorArraySplitV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r),a=(0,i.getParamValue)("lengths",e,t,r),o=r.getTensorArray(n.id);return o.split(a,s),[o.idTensor]}case"TensorArraySizeV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=r.getTensorArray(n.id);return[(0,a.scalar)(s.size(),"int32")]}case"TensorArrayCloseV3":{let n=(0,i.getParamValue)("tensorArrayId",e,t,r),s=r.getTensorArray(n.id);return s.clearAndClose(),[s.idTensor]}case"TensorListSetItem":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("index",e,t,r),a=(0,i.getParamValue)("tensor",e,t,r),o=r.getTensorList(n.id);return o.setItem(s,a),[o.idTensor]}case"TensorListGetItem":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("index",e,t,r),a=(0,i.getParamValue)("elementShape",e,t,r),o=(0,i.getParamValue)("elementDType",e,t,r);return[r.getTensorList(n.id).getItem(s,a,o)]}case"TensorListScatterV2":case"TensorListScatter":{let n=(0,i.getParamValue)("indices",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r),a=(0,i.getParamValue)("elementShape",e,t,r),o=(0,i.getParamValue)("numElements",e,t,r),p=(0,l.scatter)(s,n,a,o);return r.addTensorList(p),[p.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n,s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r);n="TensorListReserve"===e.op?"numElements":"maxNumElements";let o=(0,i.getParamValue)(n,e,t,r),p="TensorListReserve"===e.op?-1:o,u=(0,l.reserve)(s,a,o,p);return r.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("indices",e,t,r),a=(0,i.getParamValue)("elementShape",e,t,r),o=(0,i.getParamValue)("elementDType",e,t,r);return[r.getTensorList(n.id).gather(s,o,a)]}case"TensorListStack":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r),o=(0,i.getParamValue)("numElements",e,t,r);return[r.getTensorList(n.id).stack(s,a,o)]}case"TensorListFromTensor":{let n=(0,i.getParamValue)("tensor",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r),o=(0,l.fromTensor)(n,s,a);return r.addTensorList(o),[o.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=r.getTensorList(n.id),a=(0,i.getParamValue)("dtype",e,t,r),o=(0,i.getParamValue)("elementShape",e,t,r);return[s.concat(a,o)]}case"TensorListPushBack":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("tensor",e,t,r),a=r.getTensorList(n.id);return a.pushBack(s),[a.idTensor]}case"TensorListPopBack":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("elementDType",e,t,r);return[r.getTensorList(n.id).popBack(s,a)]}case"TensorListSplit":{let n=(0,i.getParamValue)("tensor",e,t,r),s=(0,i.getParamValue)("elementShape",e,t,r),a=(0,i.getParamValue)("lengths",e,t,r),o=(0,l.split)(n,a,s);return r.addTensorList(o),[o.idTensor]}case"TensorListLength":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=r.getTensorList(n.id);return[(0,a.scalar)(s.size(),"int32")]}case"TensorListResize":{let n=(0,i.getParamValue)("tensorListId",e,t,r),s=(0,i.getParamValue)("size",e,t,r),a=r.getTensorList(n.id).resize(s);return r.addTensorList(a),[a.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},u="control"},{"@tensorflow/tfjs-core":"2Gtps","../../executor/tensor_array":"k3W9R","../../executor/tensor_list":"kXZSw","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k3W9R:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorArray",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./tensor_utils");class l{constructor(e,t,r,n,s,o,l){this.name=e,this.dtype=t,this.maxSize=r,this.elementShape=n,this.identicalElementShapes=s,this.dynamicSize=o,this.clearAfterRead=l,this.tensors=[],this.closed_=!1,this.idTensor=(0,a.scalar)(0),(0,a.keep)(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{null!=e&&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 Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw 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(e=>this.read(e))}write(e,t){if(this.closed_)throw Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let r=this.tensors[e]||{};if(t.dtype!==this.dtype)throw 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(0===this.size()&&(null==this.elementShape||0===this.elementShape.length)&&(this.elementShape=t.shape),(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),r.read)throw Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(r.written)throw Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);r.tensor=t,(0,a.keep)(t),r.written=!0,this.tensors[e]=r}writeMany(e,t){if(e.length!==t.length)throw 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((e,r)=>this.write(e,t[r]))}gather(e,t){if(t&&t!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let t=0;t<this.size();t++)e.push(t)}if(0===e.length)return(0,a.tensor)([],[0].concat(this.elementShape));let r=this.readMany(e);return(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,r[0].shape,"TensorArray shape mismatch: "),(0,a.stack)(r,0)}concat(e){if(e&&e!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but concat requested dtype ${e}`);if(0===this.size())return(0,a.tensor)([],[0].concat(this.elementShape));let t=[];for(let e=0;e<this.size();e++)t.push(e);let r=this.readMany(t);return(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,r[0].shape,`TensorArray shape mismatch: tensor array shape (${this.elementShape}) vs first tensor shape (${r[0].shape})`),(0,a.concat)(r,0)}scatter(e,t){if(t.dtype!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);if(e.length!==t.shape[0])throw Error(`Expected len(indices) == tensor.shape[0], but saw: ${e.length} vs. ${t.shape[0]}`);let r=Math.max(...e);if(!this.dynamicSize&&r>=this.maxSize)throw Error(`Max index must be< array size (${r} vs. ${this.maxSize})`);this.writeMany(e,(0,a.unstack)(t,0))}split(e,t){if(t.dtype!==this.dtype)throw Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let r=0,n=e.map(e=>r+=e);if(r!==t.shape[0])throw Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is ${r}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw 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=0===r?0:t.size/r,o=[];(0,a.tidy)(()=>{t=(0,a.reshape)(t,[1,r,s]);for(let r=0;r<e.length;++r){let l=[0,0===r?0:n[r-1],0],i=[1,e[r],s];o[r]=(0,a.reshape)((0,a.slice)(t,l,i),this.elementShape)}return o});let l=[];for(let t=0;t<e.length;t++)l[t]=t;this.writeMany(l,o)}}},{"@tensorflow/tfjs-core":"2Gtps","./tensor_utils":"hF3CO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hF3CO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertShapesMatchAllowUndefinedSize",()=>o),s.export(r,"fullDefinedShape",()=>l),s.export(r,"inferElementShape",()=>i),s.export(r,"mergeElementShape",()=>p);var a=e("@tensorflow/tfjs-core");function o(e,t,r=""){if("number"!=typeof e&&"number"!=typeof t){a.util.assert(e.length===t.length,()=>r+` Shapes ${e} and ${t} must match`);for(let n=0;n<e.length;n++){let s=e[n],o=t[n];a.util.assert(s<0||o<0||s===o,()=>r+` Shapes ${e} and ${t} must match`)}}}function l(e){return!("number"==typeof e||e.some(e=>e<0))}function i(e,t,r){let n=p(e,r),s=!l(n);if(s&&0===t.length)throw Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(s&&t.forEach(e=>{n=p(e.shape,n)}),!l(n))throw Error(`Non-fully-defined elementShape: ${n}`);return n}function p(e,t){if("number"==typeof e)return t;if("number"==typeof t)return e;if(e.length!==t.length)throw Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let r=[];for(let n=0;n<e.length;++n){let s=e[n],a=t[n];if(s>=0&&a>=0&&s!==a)throw Error(`Incompatible shape during merge: ${e} vs. ${t}`);r[n]=s>=0?s:a}return r}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kXZSw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TensorList",()=>l),s.export(r,"fromTensor",()=>i),s.export(r,"reserve",()=>p),s.export(r,"scatter",()=>u),s.export(r,"split",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./tensor_utils");class l{get id(){return this.idTensor.id}constructor(e,t,r,n=-1){this.tensors=e,this.elementShape=t,this.elementDtype=r,null!=e&&e.forEach(e=>{if(r!==e.dtype)throw Error(`Invalid data types; op elements ${r}, but list elements ${e.dtype}`);(0,o.assertShapesMatchAllowUndefinedSize)(t,e.shape,"TensorList shape mismatch: "),(0,a.keep)(e)}),this.idTensor=(0,a.scalar)(0),this.maxNumElements=n,(0,a.keep)(this.idTensor)}copy(){return new l([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{null!=e&&e.has(t.id)||t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,r=-1){if(t!==this.elementDtype)throw Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(-1!==r&&this.tensors.length!==r)throw Error(`Operation expected a list with ${r} elements but got a list with ${this.tensors.length} elements.`);(0,o.assertShapesMatchAllowUndefinedSize)(e,this.elementShape,"TensorList shape mismatch: ");let n=(0,o.inferElementShape)(this.elementShape,this.tensors,e);return(0,a.tidy)(()=>{let e=this.tensors.map(e=>(0,a.reshape)(e,n));return(0,a.stack)(e,0)})}popBack(e,t){if(t!==this.elementDtype)throw Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(0===this.size())throw Error("Trying to pop from an empty list.");let r=(0,o.inferElementShape)(this.elementShape,this.tensors,e),n=this.tensors.pop();return n.kept=!1,(0,o.assertShapesMatchAllowUndefinedSize)(n.shape,e,"TensorList shape mismatch: "),(0,a.reshape)(n,r)}pushBack(e){if(e.dtype!==this.elementDtype)throw Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if((0,o.assertShapesMatchAllowUndefinedSize)(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw Error("Trying to push element into a full list.");(0,a.keep)(e),this.tensors.push(e)}resize(e){if(e<0)throw Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(-1!==this.maxNumElements&&e>this.maxNumElements)throw Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new l([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let r=0;r<Math.min(this.tensors.length,e);++r)t.tensors[r]=this.tensors[r];return t}getItem(e,t,r){if(r!==this.elementDtype)throw Error(`Invalid data types; op elements ${r}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(null==this.tensors[e])throw Error(`element at index ${e} is null.`);(0,o.assertShapesMatchAllowUndefinedSize)(this.tensors[e].shape,t,"TensorList shape mismatch: ");let n=(0,o.inferElementShape)(this.elementShape,this.tensors,t);return(0,a.reshape)(this.tensors[e],n)}setItem(e,t){if(t.dtype!==this.elementDtype)throw Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||-1!==this.maxNumElements&&e>=this.maxNumElements)throw Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,t.shape,"TensorList shape mismatch: "),(0,a.keep)(t),null!=this.tensors[e]&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,r){if(t!==this.elementDtype)throw Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,r,"TensorList shape mismatch: "),e=e.slice(0,this.size());let n=(0,o.inferElementShape)(this.elementShape,this.tensors,r);return 0===e.length?(0,a.tensor)([],[0].concat(n)):(0,a.tidy)(()=>{let t=e.map(e=>(0,a.reshape)(this.tensors[e],n));return(0,a.stack)(t,0)})}concat(e,t){if(e&&e!==this.elementDtype)throw Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);(0,o.assertShapesMatchAllowUndefinedSize)(this.elementShape,t,"TensorList shape mismatch: ");let r=(0,o.inferElementShape)(this.elementShape,this.tensors,t);return 0===this.size()?(0,a.tensor)([],[0].concat(r)):(0,a.tidy)(()=>{let e=this.tensors.map(e=>(0,a.reshape)(e,r));return(0,a.concat)(e,0)})}}function i(e,t,r){let n=e.dtype;if(e.shape.length<1)throw Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==r)throw Error(`Invalid data types; op elements ${e.dtype}, but list elements ${r}`);let s=e.shape.slice(1);return(0,o.assertShapesMatchAllowUndefinedSize)(s,t,"TensorList shape mismatch: "),new l((0,a.unstack)(e),t,n)}function p(e,t,r,n){return new l([],e,t,n)}function u(e,t,r,n){if(t.length!==e.shape[0])throw Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let s=Math.max(...t);if(null!=n&&-1!==n&&s>=n)throw Error(`Max index must be< array size (${s} vs. ${n})`);let o=new l([],r,e.dtype,n),i=(0,a.unstack)(e,0);return t.forEach((e,t)=>{o.setItem(e,i[t])}),o}function c(e,t,r){let n=0,s=t.map(e=>n+=e);if(n!==e.shape[0])throw Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is ${n}, and tensor's shape is: ${e.shape}`);let i=e.shape.slice(1),p=(0,o.mergeElementShape)(i,r),u=0===n?0:e.size/n,c=(0,a.tidy)(()=>{let r=[];e=(0,a.reshape)(e,[1,n,u]);for(let n=0;n<t.length;++n){let o=[0,0===n?0:s[n-1],0],l=[1,t[n],u];r[n]=(0,a.reshape)((0,a.slice)(e,o,l),p)}return e.dispose(),r}),d=new l([],r,e.dtype,t.length);for(let e=0;e<c.length;e++)d.setItem(e,c[e]);return d}},{"@tensorflow/tfjs-core":"2Gtps","./tensor_utils":"hF3CO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ebCt3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>i),s.export(r,"CATEGORY",()=>p);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");function l(e,t,r){let[n,s]=(0,o.getParamValue)("fusedOps",e,t,r),a="biasadd"===n,l="prelu"===s,i=(0,o.getParamValue)("numArgs",e,t,r);if(a){if(l&&2!==i)throw Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!l&&a&&1!==i)throw Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if("fusedbatchnorm"===n)throw Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=(0,o.getParamValue)("strides",e,t,r),u=(0,o.getPadding)(e,t,r),c=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),d=(0,o.getParamValue)("dilations",e,t,r),[f,m]=(0,o.getParamValue)("args",e,t,r);return a||(m=f,f=void 0),{stride:p,pad:u,dataFormat:c,dilations:d,biasArg:f,preluArg:m,activationFunc:s,leakyreluAlpha:(0,o.getParamValue)("leakyreluAlpha",e,t,r)}}let i=(e,t,r,n=a)=>{switch(e.op){case"Conv1D":{let s=(0,o.getParamValue)("stride",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),i=(0,o.getParamValue)("dilation",e,t,r);return[n.conv1d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),s,a,l,i)]}case"Conv2D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getPadding)(e,t,r),l=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),i=(0,o.getParamValue)("dilations",e,t,r);return[n.conv2d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),[s[1],s[2]],a,l,[i[1],i[2]])]}case"_FusedConv2D":{let{stride:s,pad:a,dataFormat:i,dilations:p,biasArg:u,preluArg:c,activationFunc:d,leakyreluAlpha:f}=l(e,t,r);return[n.fused.conv2d({x:(0,o.getParamValue)("x",e,t,r),filter:(0,o.getParamValue)("filter",e,t,r),strides:[s[1],s[2]],pad:a,dataFormat:i,dilations:[p[1],p[2]],bias:u,activation:d,preluActivationWeights:c,leakyreluAlpha:f})]}case"FusedDepthwiseConv2dNative":{let{stride:s,pad:a,dataFormat:i,dilations:p,biasArg:u,preluArg:c,activationFunc:d,leakyreluAlpha:f}=l(e,t,r);return[n.fused.depthwiseConv2d({x:(0,o.getParamValue)("x",e,t,r),filter:(0,o.getParamValue)("filter",e,t,r),strides:[s[1],s[2]],pad:a,dataFormat:i,dilations:[p[1],p[2]],bias:u,activation:d,preluActivationWeights:c,leakyreluAlpha:f})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let s=(0,o.getParamValue)("outputShape",e,t,r),a=(0,o.getParamValue)("strides",e,t,r),l=(0,o.getPadding)(e,t,r);return[n.conv2dTranspose((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),s,[a[1],a[2]],l)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getPadding)(e,t,r),l=(0,o.getParamValue)("dilations",e,t,r),i=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase();return[n.depthwiseConv2d((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("filter",e,t,r),[s[1],s[2]],a,i,[l[1],l[2]])]}case"Conv3D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase(),i=(0,o.getParamValue)("dilations",e,t,r);return[n.conv3d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),[s[1],s[2],s[3]],a,l,[i[1],i[2],i[3]])]}case"AvgPool":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.avgPool((0,o.getParamValue)("x",e,t,r),[l[1],l[2]],[s[1],s[2]],a)]}case"MaxPool":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.maxPool((0,o.getParamValue)("x",e,t,r),[l[1],l[2]],[s[1],s[2]],a)]}case"MaxPoolWithArgmax":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r),i=(0,o.getParamValue)("includeBatchInIndex",e,t,r),{result:p,indexes:u}=n.maxPoolWithArgmax((0,o.getParamValue)("x",e,t,r),[l[1],l[2]],[s[1],s[2]],a,i);return[p,u]}case"AvgPool3D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.avgPool3d((0,o.getParamValue)("x",e,t,r),[l[1],l[2],l[3]],[s[1],s[2],s[3]],a)]}case"MaxPool3D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("kernelSize",e,t,r);return[n.maxPool3d((0,o.getParamValue)("x",e,t,r),[l[1],l[2],l[3]],[s[1],s[2],s[3]],a)]}case"Dilation2D":{let s=(0,o.getParamValue)("strides",e,t,r),a=(0,o.getParamValue)("pad",e,t,r),l=(0,o.getParamValue)("dilations",e,t,r),i=s[1],p=s[2],u=l[1],c=l[2];return[n.dilation2d((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("filter",e,t,r),[i,p],a,[u,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p="convolution"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jGuVv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Fill":{let s=(0,o.getParamValue)("shape",e,t,r),a=(0,o.getParamValue)("dtype",e,t,r),l=(0,o.getParamValue)("value",e,t,r);return[n.fill(s,l,a)]}case"LinSpace":{let s=(0,o.getParamValue)("start",e,t,r),a=(0,o.getParamValue)("stop",e,t,r),l=(0,o.getParamValue)("num",e,t,r);return[n.linspace(s,a,l)]}case"Multinomial":{let s=(0,o.getParamValue)("logits",e,t,r),a=(0,o.getParamValue)("numSamples",e,t,r),l=(0,o.getParamValue)("seed",e,t,r);return[n.multinomial(s,a,l)]}case"OneHot":{let s=(0,o.getParamValue)("indices",e,t,r),a=(0,o.getParamValue)("depth",e,t,r),l=(0,o.getParamValue)("onValue",e,t,r),i=(0,o.getParamValue)("offValue",e,t,r),p=(0,o.getParamValue)("dtype",e,t,r);return[n.oneHot(s,a,l,i,p)]}case"Ones":return[n.ones((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"OnesLike":return[n.onesLike((0,o.getParamValue)("x",e,t,r))];case"RandomStandardNormal":return[n.randomStandardNormal((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("dtype",e,t,r),(0,o.getParamValue)("seed",e,t,r))];case"RandomUniform":return[n.randomUniform((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("minval",e,t,r),(0,o.getParamValue)("maxval",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"RandomUniformInt":return[n.randomUniformInt((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("minval",e,t,r),(0,o.getParamValue)("maxval",e,t,r),(0,o.getParamValue)("seed",e,t,r))];case"Range":{let s=(0,o.getParamValue)("start",e,t,r),a=(0,o.getParamValue)("stop",e,t,r),l=(0,o.getParamValue)("step",e,t,r);return[n.range(s,a,l,(0,o.getParamValue)("dtype",e,t,r))]}case"TruncatedNormal":{let s=(0,o.getParamValue)("shape",e,t,r),a=(0,o.getParamValue)("mean",e,t,r),l=(0,o.getParamValue)("stdDev",e,t,r),i=(0,o.getParamValue)("seed",e,t,r);return[n.truncatedNormal(s,a,l,(0,o.getParamValue)("dtype",e,t,r),i)]}case"Zeros":return[n.zeros((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"ZerosLike":return[n.zerosLike((0,o.getParamValue)("x",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="creation"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6MrZY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>i),s.export(r,"CATEGORY",()=>p);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");function l(e,t,r){let n=(0,o.getParamValue)("boxes",e,t,r),s=(0,o.getParamValue)("scores",e,t,r),a=(0,o.getParamValue)("maxOutputSize",e,t,r),l=(0,o.getParamValue)("iouThreshold",e,t,r);return{boxes:n,scores:s,maxOutputSize:a,iouThreshold:l,scoreThreshold:(0,o.getParamValue)("scoreThreshold",e,t,r),softNmsSigma:(0,o.getParamValue)("softNmsSigma",e,t,r)}}let i=async(e,t,r,n,s=a)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:n,scores:a,maxOutputSize:o,iouThreshold:i,scoreThreshold:p,softNmsSigma:u}=l(e,t,r),c=await s.image.nonMaxSuppressionWithScoreAsync(n,a,o,i,p,u);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:n,scores:a,maxOutputSize:i,iouThreshold:p,scoreThreshold:u}=l(e,t,r),c=(0,o.getParamValue)("padToMaxOutputSize",e,t,r),d=await s.image.nonMaxSuppressionPaddedAsync(n,a,i,p,u,c);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:n,scores:a,maxOutputSize:o,iouThreshold:i,scoreThreshold:p}=l(e,t,r);return[await s.image.nonMaxSuppressionAsync(n,a,o,i,p)]}case"Where":{let n=s.cast((0,o.getParamValue)("condition",e,t,r),"bool"),a=[await s.whereAsync(n)];return n.dispose(),a}case"ListDiff":return s.setdiff1dAsync((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("y",e,t,r));default:throw TypeError(`Node type ${e.op} is not implemented`)}},p="dynamic"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aCa2f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"LowerBound":{let s=(0,o.getParamValue)("sortedSequence",e,t,r),a=(0,o.getParamValue)("values",e,t,r);return[n.lowerBound(s,a)]}case"TopKV2":{let s=(0,o.getParamValue)("x",e,t,r),a=(0,o.getParamValue)("k",e,t,r),l=(0,o.getParamValue)("sorted",e,t,r),i=n.topk(s,a,l);return[i.values,i.indices]}case"UpperBound":{let s=(0,o.getParamValue)("sortedSequence",e,t,r),a=(0,o.getParamValue)("values",e,t,r);return[n.upperBound(s,a)]}case"Unique":{let s=(0,o.getParamValue)("x",e,t,r),a=n.unique(s);return[a.values,a.indices]}case"UniqueV2":{let s=(0,o.getParamValue)("x",e,t,r),a=(0,o.getParamValue)("axis",e,t,r),l=n.unique(s,a);return[l.values,l.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="evaluation"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aTTe4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let s=(0,o.getParamValue)("default",e,t,r);return[(0,o.getTensor)(e.name,t,r)||s];case"Placeholder":return[(0,o.getTensor)(e.name,t,r)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let n=(0,o.getParamValue)("x",e,t,r);return[(0,o.cloneTensor)(n)]}case"IdentityN":return(0,o.getParamValue)("x",e,t,r).map(e=>(0,o.cloneTensor)(e));case"Snapshot":let l=(0,o.getParamValue)("x",e,t,r);return[(0,o.cloneTensor)(l)];case"Shape":return[n.tensor1d((0,o.getParamValue)("x",e,t,r).shape,"int32")];case"ShapeN":return(0,o.getParamValue)("x",e,t,r).map(e=>n.tensor1d(e.shape));case"Size":return[n.scalar((0,o.getParamValue)("x",e,t,r).size,"int32")];case"Rank":return[n.scalar((0,o.getParamValue)("x",e,t,r).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=(0,o.getParamValue)("x",e,t,r),p=(0,o.getParamValue)("data",e,t,r),u=(0,o.getParamValue)("message",e,t,r),c=(0,o.getParamValue)("summarize",e,t,r);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let e=0;e<p.length;e++)console.log(Array.prototype.slice.call(p[e].dataSync()).slice(0,c));return[i];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="graph"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bgWBQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("../../executor/hash_table"),o=e("./utils");let l=async(e,t,r,n)=>{switch(e.op){case"HashTable":case"HashTableV2":{let s=n.getHashTableHandleByName(e.name);if(null!=s)return[s];{let s=(0,o.getParamValue)("keyDType",e,t,r),l=(0,o.getParamValue)("valueDType",e,t,r),i=new(0,a.HashTable)(s,l);return n.addHashTable(e.name,i),[i.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let s=(0,o.getParamValue)("tableHandle",e,t,r,n),a=(0,o.getParamValue)("keys",e,t,r),l=(0,o.getParamValue)("values",e,t,r),i=n.getHashTableById(s.id);return[await i.import(a,l)]}case"LookupTableFind":case"LookupTableFindV2":{let s=(0,o.getParamValue)("tableHandle",e,t,r,n),a=(0,o.getParamValue)("keys",e,t,r),l=(0,o.getParamValue)("defaultValue",e,t,r),i=n.getHashTableById(s.id);return[await i.find(a,l)]}case"LookupTableSize":case"LookupTableSizeV2":{let s=(0,o.getParamValue)("tableHandle",e,t,r,n);return[n.getHashTableById(s.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="hash_table"},{"../../executor/hash_table":"hqPv8","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hqPv8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"HashTable",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter");class l{get id(){return this.handle.id}constructor(e,t){this.keyDType=e,this.valueDType=t,this.handle=(0,a.scalar)(0),this.tensorMap=new Map,(0,a.keep)(this.handle)}clearAndClose(){this.tensorMap.forEach(e=>e.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return o.scalar(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let r=await e.data();return this.tensorMap.forEach(e=>e.dispose()),this.tensorMap.clear(),(0,a.tidy)(()=>{let e=(0,a.unstack)(t),n=r.length,s=e.length;a.util.assert(n===s,()=>`The number of elements doesn't match, keys has ${n} elements, the values has ${s} elements.`);for(let t=0;t<n;t++){let n=r[t],s=e[t];(0,a.keep)(s),this.tensorMap.set(n,s)}return this.handle})}async find(e,t){this.checkKeyAndValueTensor(e,t);let r=await e.data();return(0,a.tidy)(()=>{let e=[];for(let n=0;n<r.length;n++){let s=r[n],a=this.findWithDefault(s,t);e.push(a)}return(0,a.stack)(e)})}findWithDefault(e,t){let r=this.tensorMap.get(e);return null!=r?r:t}checkKeyAndValueTensor(e,t){if(e.dtype!==this.keyDType)throw Error(`Expect key dtype ${this.keyDType}, but got ${e.dtype}`);if(t.dtype!==this.valueDType)throw Error(`Expect value dtype ${this.valueDType}, but got ${t.dtype}`)}}},{"@tensorflow/tfjs-core":"2Gtps","@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4PO7O":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"ResizeBilinear":{let s=(0,o.getParamValue)("images",e,t,r),a=(0,o.getParamValue)("size",e,t,r),l=(0,o.getParamValue)("alignCorners",e,t,r),i=(0,o.getParamValue)("halfPixelCenters",e,t,r);return[n.image.resizeBilinear(s,[a[0],a[1]],l,i)]}case"ResizeNearestNeighbor":{let s=(0,o.getParamValue)("images",e,t,r),a=(0,o.getParamValue)("size",e,t,r),l=(0,o.getParamValue)("alignCorners",e,t,r),i=(0,o.getParamValue)("halfPixelCenters",e,t,r);return[n.image.resizeNearestNeighbor(s,[a[0],a[1]],l,i)]}case"CropAndResize":{let s=(0,o.getParamValue)("image",e,t,r),a=(0,o.getParamValue)("boxes",e,t,r),l=(0,o.getParamValue)("boxInd",e,t,r),i=(0,o.getParamValue)("cropSize",e,t,r),p=(0,o.getParamValue)("method",e,t,r),u=(0,o.getParamValue)("extrapolationValue",e,t,r);return[n.image.cropAndResize(s,a,l,i,p,u)]}case"ImageProjectiveTransformV3":{let s=(0,o.getParamValue)("images",e,t,r),a=(0,o.getParamValue)("transforms",e,t,r),l=(0,o.getParamValue)("outputShape",e,t,r),i=(0,o.getParamValue)("fillValue",e,t,r),p=(0,o.getParamValue)("interpolation",e,t,r),u=(0,o.getParamValue)("fillMode",e,t,r);return[n.image.transform(s,a,p.toLowerCase(),u.toLowerCase(),i,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="image"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1Av7N":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Equal":return[n.equal((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"NotEqual":return[n.notEqual((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Greater":return[n.greater((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"GreaterEqual":return[n.greaterEqual((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Less":return[n.less((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"LessEqual":return[n.lessEqual((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"LogicalAnd":return[n.logicalAnd((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"LogicalNot":return[n.logicalNot((0,o.getParamValue)("a",e,t,r))];case"LogicalOr":return[n.logicalOr((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"Select":case"SelectV2":return[n.where((0,o.getParamValue)("condition",e,t,r),(0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];case"BitwiseAnd":return[n.bitwiseAnd((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="logical"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iyJvB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("b",e,t,r),(0,o.getParamValue)("transposeA",e,t,r),(0,o.getParamValue)("transposeB",e,t,r))];case"Einsum":return[n.einsum((0,o.getParamValue)("equation",e,t,r),...(0,o.getParamValue)("tensors",e,t,r))];case"Transpose":return[n.transpose((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("perm",e,t,r))];case"_FusedMatMul":let[s,l]=(0,o.getParamValue)("fusedOps",e,t,r),i="prelu"===l,p=(0,o.getParamValue)("numArgs",e,t,r),u=(0,o.getParamValue)("leakyreluAlpha",e,t,r);if("biasadd"===s){if(i&&2!==p)throw Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!i&&1!==p)throw Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,d]=(0,o.getParamValue)("args",e,t,r);return[n.fused.matMul({a:(0,o.getParamValue)("a",e,t,r),b:(0,o.getParamValue)("b",e,t,r),transposeA:(0,o.getParamValue)("transposeA",e,t,r),transposeB:(0,o.getParamValue)("transposeB",e,t,r),bias:c,activation:l,preluActivationWeights:d,leakyreluAlpha:u})];case"MatrixBandPart":return[n.linalg.bandPart((0,o.getParamValue)("a",e,t,r),(0,o.getParamValue)("numLower",e,t,r),(0,o.getParamValue)("numUpper",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="matrices"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3LyHZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"EuclideanNorm":return[n.euclideanNorm((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("axis",e,t,r),(0,o.getParamValue)("keepDims",e,t,r))];case"FusedBatchNorm":case"FusedBatchNormV2":case"FusedBatchNormV3":return[n.batchNorm((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("mean",e,t,r),(0,o.getParamValue)("variance",e,t,r),(0,o.getParamValue)("offset",e,t,r),(0,o.getParamValue)("scale",e,t,r),(0,o.getParamValue)("epsilon",e,t,r))];case"LRN":return[n.localResponseNormalization((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("radius",e,t,r),(0,o.getParamValue)("bias",e,t,r),(0,o.getParamValue)("alpha",e,t,r),(0,o.getParamValue)("beta",e,t,r))];case"Softmax":return[n.softmax((0,o.getParamValue)("x",e,t,r))];case"LogSoftmax":return[n.logSoftmax((0,o.getParamValue)("x",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="normalization"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ig29V:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:s,outputDenseValues:a}=n.raggedGather((0,o.getParamValue)("paramsNestedSplits",e,t,r),(0,o.getParamValue)("paramsDenseValues",e,t,r),(0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("outputRaggedRank",e,t,r));return s.concat(a)}case"RaggedRange":{let{rtNestedSplits:s,rtDenseValues:a}=n.raggedRange((0,o.getParamValue)("starts",e,t,r),(0,o.getParamValue)("limits",e,t,r),(0,o.getParamValue)("splits",e,t,r));return[s,a]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor((0,o.getParamValue)("shape",e,t,r),(0,o.getParamValue)("values",e,t,r),(0,o.getParamValue)("defaultValue",e,t,r),(0,o.getParamValue)("rowPartitionTensors",e,t,r),(0,o.getParamValue)("rowPartitionTypes",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="ragged"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ayS3S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Max":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.max((0,o.getParamValue)("x",e,t,r),s,a)]}case"Mean":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.mean((0,o.getParamValue)("x",e,t,r),s,a)]}case"Min":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.min((0,o.getParamValue)("x",e,t,r),s,a)]}case"Sum":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.sum((0,o.getParamValue)("x",e,t,r),s,a)]}case"All":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.all((0,o.getParamValue)("x",e,t,r),s,a)]}case"Any":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.any((0,o.getParamValue)("x",e,t,r),s,a)]}case"ArgMax":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.argMax((0,o.getParamValue)("x",e,t,r),s)]}case"ArgMin":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.argMin((0,o.getParamValue)("x",e,t,r),s)]}case"Prod":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("keepDims",e,t,r);return[n.prod((0,o.getParamValue)("x",e,t,r),s,a)]}case"Cumprod":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("exclusive",e,t,r),l=(0,o.getParamValue)("reverse",e,t,r);return[n.cumprod((0,o.getParamValue)("x",e,t,r),s,a,l)]}case"Cumsum":{let s=(0,o.getParamValue)("axis",e,t,r),a=(0,o.getParamValue)("exclusive",e,t,r),l=(0,o.getParamValue)("reverse",e,t,r);return[n.cumsum((0,o.getParamValue)("x",e,t,r),s,a,l)]}case"Bincount":let s=(0,o.getParamValue)("x",e,t,r),l=(0,o.getParamValue)("weights",e,t,r),i=(0,o.getParamValue)("size",e,t,r);return[n.bincount(s,l,i)];case"DenseBincount":{let s=(0,o.getParamValue)("x",e,t,r),a=(0,o.getParamValue)("weights",e,t,r),l=(0,o.getParamValue)("size",e,t,r),i=(0,o.getParamValue)("binaryOutput",e,t,r);return[n.denseBincount(s,a,l,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="reduction"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],exLUI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>i),s.export(r,"CATEGORY",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),l=e("./utils");let i=(e,t,r,n=o)=>{switch(e.op){case"ConcatV2":case"Concat":{let s=(0,l.getParamValue)("n",e,t,r),a=(0,l.getParamValue)("axis",e,t,r),o=(0,l.getParamValue)("tensors",e,t,r);return o=o.slice(0,s),[n.concat(o,a)]}case"Gather":{let s=(0,l.getParamValue)("x",e,t,r),a=(0,l.getParamValue)("indices",e,t,r);return[n.gather(s,n.cast(a,"int32"),0)]}case"GatherV2":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("batchDims",e,t,r),o=(0,l.getParamValue)("x",e,t,r),i=(0,l.getParamValue)("indices",e,t,r);return[n.gather(o,n.cast(i,"int32"),s,a)]}case"Reverse":{let s=(0,l.getParamValue)("dims",e,t,r),a=[];for(let e=0;e<s.length;e++)s[e]&&a.push(e);let o=(0,l.getParamValue)("x",e,t,r);return[n.reverse(o,a)]}case"ReverseV2":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("x",e,t,r);return[n.reverse(a,s)]}case"Slice":{let s=(0,l.getParamValue)("begin",e,t,r),a=(0,l.getParamValue)("size",e,t,r);return[n.slice((0,l.getParamValue)("x",e,t,r),s,a)]}case"StridedSlice":{let s=(0,l.getParamValue)("begin",e,t,r),a=(0,l.getParamValue)("end",e,t,r),o=(0,l.getParamValue)("strides",e,t,r),i=(0,l.getParamValue)("beginMask",e,t,r),p=(0,l.getParamValue)("endMask",e,t,r),u=(0,l.getParamValue)("ellipsisMask",e,t,r),c=(0,l.getParamValue)("newAxisMask",e,t,r),d=(0,l.getParamValue)("shrinkAxisMask",e,t,r),f=(0,l.getParamValue)("x",e,t,r);return[n.stridedSlice(f,s,a,o,i,p,u,c,d)]}case"Pack":return(0,a.tidy)(()=>{let s=(0,l.getParamValue)("axis",e,t,r),o=(0,l.getParamValue)("tensors",e,t,r),i=o[0].shape,p=n.squeeze(o[0]).shape,u=o.map(e=>{let t=a.util.arraysEqual(e.shape,i);if(!t&&!a.util.arraysEqual(n.squeeze(e).shape,p))throw Error("the input tensors shape does not match");return t?e:n.reshape(e,i)});return[n.stack(u,s)]});case"Unpack":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("tensor",e,t,r);return n.unstack(a,s)}case"Tile":{let s=(0,l.getParamValue)("reps",e,t,r);return[n.tile((0,l.getParamValue)("x",e,t,r),s)]}case"Split":case"SplitV":{let s=(0,l.getParamValue)("axis",e,t,r),a=(0,l.getParamValue)("numOrSizeSplits",e,t,r),o=(0,l.getParamValue)("x",e,t,r);return n.split(o,a,s)}case"ScatterNd":{let s=(0,l.getParamValue)("indices",e,t,r),a=(0,l.getParamValue)("values",e,t,r),o=(0,l.getParamValue)("shape",e,t,r);return[n.scatterND(s,a,o)]}case"GatherNd":{let s=(0,l.getParamValue)("x",e,t,r),a=(0,l.getParamValue)("indices",e,t,r);return[n.gatherND(s,a)]}case"SparseToDense":{let s=(0,l.getParamValue)("sparseIndices",e,t,r),a=(0,l.getParamValue)("outputShape",e,t,r),o=(0,l.getParamValue)("sparseValues",e,t,r),i=(0,l.getParamValue)("defaultValue",e,t,r);return[n.sparseToDense(s,o,a,o.dtype===i.dtype?i:n.cast(i,o.dtype))]}case"TensorScatterUpdate":{let s=(0,l.getParamValue)("indices",e,t,r),a=(0,l.getParamValue)("values",e,t,r),o=(0,l.getParamValue)("tensor",e,t,r);return[n.tensorScatterUpdate(o,s,a)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p="slice_join"},{"@tensorflow/tfjs-core":"2Gtps","@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4cqnd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:s,outputValues:a,emptyRowIndicator:l,reverseIndexMap:i}=n.sparse.sparseFillEmptyRows((0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("values",e,t,r),(0,o.getParamValue)("denseShape",e,t,r),(0,o.getParamValue)("defaultValue",e,t,r));return[s,a,l,i]}case"SparseReshape":{let{outputIndices:s,outputShape:a}=n.sparse.sparseReshape((0,o.getParamValue)("inputIndices",e,t,r),(0,o.getParamValue)("inputShape",e,t,r),(0,o.getParamValue)("newShape",e,t,r));return[s,a]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean((0,o.getParamValue)("data",e,t,r),(0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("segmentIds",e,t,r))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum((0,o.getParamValue)("data",e,t,r),(0,o.getParamValue)("indices",e,t,r),(0,o.getParamValue)("segmentIds",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="sparse"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ldBfB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"FFT":return[n.fft((0,o.getParamValue)("x",e,t,r))];case"IFFT":return[n.ifft((0,o.getParamValue)("x",e,t,r))];case"RFFT":return[n.rfft((0,o.getParamValue)("x",e,t,r))];case"IRFFT":return[n.irfft((0,o.getParamValue)("x",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="spectral"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dinGK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"StaticRegexReplace":return[n.string.staticRegexReplace((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("pattern",e,t,r),(0,o.getParamValue)("rewrite",e,t,r),(0,o.getParamValue)("replaceGlobal",e,t,r))];case"StringNGrams":{let{nGrams:s,nGramsSplits:a}=n.string.stringNGrams((0,o.getParamValue)("data",e,t,r),(0,o.getParamValue)("dataSplits",e,t,r),(0,o.getParamValue)("separator",e,t,r),(0,o.getParamValue)("nGramWidths",e,t,r),(0,o.getParamValue)("leftPad",e,t,r),(0,o.getParamValue)("rightPad",e,t,r),(0,o.getParamValue)("padWidth",e,t,r),(0,o.getParamValue)("preserveShortSequences",e,t,r));return[s,a]}case"StringSplit":{let{indices:s,values:a,shape:l}=n.string.stringSplit((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("delimiter",e,t,r),(0,o.getParamValue)("skipEmpty",e,t,r));return[s,a,l]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast((0,o.getParamValue)("input",e,t,r),(0,o.getParamValue)("numBuckets",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="string"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7MPCS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"executeOp",()=>l),s.export(r,"CATEGORY",()=>i);var a=e("@tensorflow/tfjs-core/dist/ops/ops_for_converter"),o=e("./utils");let l=(e,t,r,n=a)=>{switch(e.op){case"Cast":return[n.cast((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("dtype",e,t,r))];case"ExpandDims":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.expandDims((0,o.getParamValue)("x",e,t,r),s)]}case"Squeeze":{let s=(0,o.getParamValue)("axis",e,t,r);return[n.squeeze((0,o.getParamValue)("x",e,t,r),s)]}case"Reshape":return[n.reshape((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("shape",e,t,r))];case"EnsureShape":return[n.ensureShape((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("shape",e,t,r))];case"MirrorPad":return[n.mirrorPad((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("padding",e,t,r),(0,o.getParamValue)("mode",e,t,r))];case"PadV2":case"Pad":return[n.pad((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("padding",e,t,r),(0,o.getParamValue)("constantValue",e,t,r))];case"SpaceToBatchND":{let s=(0,o.getParamValue)("blockShape",e,t,r),a=(0,o.getParamValue)("paddings",e,t,r);return[n.spaceToBatchND((0,o.getParamValue)("x",e,t,r),s,a)]}case"BatchToSpaceND":{let s=(0,o.getParamValue)("blockShape",e,t,r),a=(0,o.getParamValue)("crops",e,t,r);return[n.batchToSpaceND((0,o.getParamValue)("x",e,t,r),s,a)]}case"DepthToSpace":{let s=(0,o.getParamValue)("blockSize",e,t,r),a=(0,o.getParamValue)("dataFormat",e,t,r).toUpperCase();return[n.depthToSpace((0,o.getParamValue)("x",e,t,r),s,a)]}case"BroadcastTo":return[n.broadcastTo((0,o.getParamValue)("x",e,t,r),(0,o.getParamValue)("shape",e,t,r))];case"BroadcastArgs":return[n.broadcastArgs((0,o.getParamValue)("s0",e,t,r),(0,o.getParamValue)("s1",e,t,r))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i="transformation"},{"@tensorflow/tfjs-core/dist/ops/ops_for_converter":"dSdTy","./utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kjrPn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ExecutionContext",()=>a);class a{constructor(e={},t={},r={},n={},s){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=r,this.functionMap=n,this.parseNodeNameCache=s,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;t<this.contexts.length-1;t++){let r=this.contexts.slice(0,this.contexts.length-t);e.push(this.contextIdforContexts(r))}e.push(""),this._currentContextIds=e}contextIdforContexts(e){return e?e.map(e=>0===e.id&&0===e.iterationId?"":`${e.frameName}-${e.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 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 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)}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6RNWa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getExecutionSubgraph",()=>o),s.export(r,"getNodesInTopologicalOrder",()=>l),s.export(r,"getNodeLiveUntilMap",()=>p),s.export(r,"isControlFlow",()=>f),s.export(r,"isDynamicShape",()=>m),s.export(r,"isHashTable",()=>h);var a=e("../operations/executors/utils");function o(e,t,r,n){let s=new Set,o=[],l=null,i=null,p=new Set,u=new Set(Object.keys(e).map(e=>(0,a.parseNodeName)(e)[0])),c=new Set((n=n||[]).map(e=>(0,a.parseNodeName)(e.name)[0])),d=[...t];for(;d.length>0;){let e=d.pop();if((f(e)||m(e)||h(e))&&null==l&&(i=(l=e).children.map(e=>e.name).filter(e=>s.has(e))),s.add(e.name),!(null!=r[e.name]||u.has(e.name)||c.has(e.name))){if(0===e.inputs.length){o.push(e.name);continue}e.inputs.forEach(e=>{p.has(e.name)||(p.add(e.name),d.push(e))})}}return{inputs:e,outputs:t,usedNodes:s,missingInputs:o,dynamicNode:l,syncInputs:i}}function l(e,t){let{usedNodes:r,inputs:n}=t,s=Object.keys(n).map(e=>(0,a.parseNodeName)(e)[0]).map(t=>e.nodes[t]),o=e.initNodes||[],l=e=>r.has("string"==typeof e?e:e.name);function p(e){return[...new Map(e.map(e=>[e.name,e])).values()]}let u=p([...s,...e.weights,...o]).filter(l),c=p([...u,...Object.values(e.nodes)]).filter(l),d=new Map(c.map(e=>[e.name,e])),f={};for(let e of c)for(let t of(f[e.name]=f[e.name]||0,e.children))l(t)||(f[t.name]=1/0),f[t.name]=(f[t.name]||0)+1;let m=Object.entries(f).filter(([,e])=>0===e).map(([e])=>e),h=[...m];for(;m.length>0;){let e=m.pop();for(let t of d.get(e).children.filter(l))0==--f[t.name]&&(h.push(t.name),m.push(t.name))}let g=function(e,t){let r=new Map(e.map(e=>[e.name,e])),n=t.map(e=>e.name),s=new Set(n);for(;n.length>0;){let e=n.pop();for(let t of r.get(e).children)!r.has(t.name)||s.has(t.name)||(s.add(t.name),n.push(t.name))}return e.filter(e=>s.has(e.name))}(h.map(e=>d.get(e)),u);return function(e,t){let r=new Map(e.map((e,t)=>[e.name,t])),n=new Set(t.map(e=>e.name)),s=e=>n.has("string"==typeof e?e:e.name),a=new Set(e.map(e=>e.name)),o=e=>a.has("string"==typeof e?e:e.name);for(let t of e){for(let e of t.children.filter(o)){if(!r.has(e.name))throw new i(`Child ${e.name} of node ${t.name} is unreachable.`);if(r.get(t.name)>r.get(e.name))throw new i(`Node ${t.name} is scheduled to run after its child ${e.name}.`)}if(!s(t))for(let e of t.inputs){if(!r.has(e.name))throw new i(`Input ${e.name} of node ${t.name} is unreachable.`);if(r.get(e.name)>r.get(t.name))throw new i(`Node ${t.name} is scheduled to run before its input ${e.name}.`)}}}(g,u),g}class i extends Error{constructor(e){super(`NodesExecutionOrderError: ${e}`)}}function p(e){let t=new Map(e.map((e,t)=>[e.name,t])),r=Number.MAX_SAFE_INTEGER,n=e.map((e,t)=>f(e)?r:t),s=e=>{let r=n[t.get(e.name)];return null==r?-1:r},a=e.map((e,t)=>e.children.map(s).reduce((e,t)=>Math.max(e,t),n[t])),o=new Map;for(let t=0;t<e.length;++t){let n=a[t];if(n===r)continue;let s=e[t],l=e[n];o.has(l.name)||o.set(l.name,[]),o.get(l.name).push(s)}return o}let u=new Set(["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"]),c=new Set(["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"]),d=new Set(["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"]);function f(e){return u.has(e.op)}function m(e){return c.has(e.op)}function h(e){return d.has(e.op)}},{"../operations/executors/utils":"7JaBk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7LEqC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResourceManager",()=>a);class a{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]}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4MwHk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aHbh5:[function(e,t,r,n){(function(){"use strict";function e(e){var t=0;return function(){return t<e.length?{done:!1,value:e[t++]}:{done:!0}}}var t,r="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e==Array.prototype||e==Object.prototype||(e[t]=r.value),e},n=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")}(this);function s(e,t){if(t)e:{var s=n;e=e.split(".");for(var a=0;a<e.length-1;a++){var o=e[a];if(!(o in s))break e;s=s[o]}(t=t(a=s[e=e[e.length-1]]))!=a&&null!=t&&r(s,e,{configurable:!0,writable:!0,value:t})}}function a(t){var r="u">typeof Symbol&&Symbol.iterator&&t[Symbol.iterator];return r?r.call(t):{next:e(t)}}function o(e){if(!(e instanceof Array)){e=a(e);for(var t,r=[];!(t=e.next()).done;)r.push(t.value);e=r}return e}s("Symbol",function(e){function t(e,t){this.h=e,r(this,"description",{configurable:!0,writable:!0,value:t})}if(e)return e;t.prototype.toString=function(){return this.h};var n="jscomp_symbol_"+(1e9*Math.random()>>>0)+"_",s=0;return function e(r){if(this instanceof e)throw TypeError("Symbol is not a constructor");return new t(n+(r||"")+"_"+s++,r)}}),s("Symbol.iterator",function(t){if(t)return t;t=Symbol("Symbol.iterator");for(var s="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),a=0;a<s.length;a++){var o=n[s[a]];"function"==typeof o&&"function"!=typeof o.prototype[t]&&r(o.prototype,t,{configurable:!0,writable:!0,value:function(){var t;return(t={next:t=e(this)})[Symbol.iterator]=function(){return this},t}})}return t});var l="function"==typeof Object.assign?Object.assign:function(e,t){for(var r=1;r<arguments.length;r++){var n=arguments[r];if(n)for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e};s("Object.assign",function(e){return e||l});var i,p,u="function"==typeof Object.create?Object.create:function(e){function t(){}return t.prototype=e,new t};if("function"==typeof Object.setPrototypeOf)p=Object.setPrototypeOf;else{e:{var c={};try{c.__proto__={a:!0},Q=c.a;break e}catch(e){}Q=!1}p=Q?function(e,t){if(e.__proto__=t,e.__proto__!==t)throw TypeError(e+" is not extensible");return e}:null}var d=p;function f(e,t){if(e.prototype=u(t.prototype),e.prototype.constructor=e,d)d(e,t);else for(var r in t)if("prototype"!=r)if(Object.defineProperties){var n=Object.getOwnPropertyDescriptor(t,r);n&&Object.defineProperty(e,r,n)}else e[r]=t[r];e.za=t.prototype}function m(){this.m=!1,this.j=null,this.i=void 0,this.h=1,this.v=this.s=0,this.l=null}function h(e){if(e.m)throw TypeError("Generator is already running");e.m=!0}function g(e,t){e.l={ma:t,na:!0},e.h=e.s||e.v}function x(e,t,r){return e.h=r,{value:t}}function y(e){this.h=new m,this.i=e}function v(e,t,r,n){try{var s=t.call(e.h.j,r);if(!(s instanceof Object))throw TypeError("Iterator result "+s+" is not an object");if(!s.done)return e.h.m=!1,s;var a=s.value}catch(t){return e.h.j=null,g(e.h,t),b(e)}return e.h.j=null,n.call(e.h,a),b(e)}function b(e){for(;e.h.h;)try{var t=e.i(e.h);if(t)return e.h.m=!1,{value:t.value,done:!1}}catch(t){e.h.i=void 0,g(e.h,t)}if(e.h.m=!1,e.h.l){if(t=e.h.l,e.h.l=null,t.na)throw t.ma;return{value:t.return,done:!0}}return{value:void 0,done:!0}}function k(e){this.next=function(t){return h(e.h),e.h.j?t=v(e,e.h.j.next,t,e.h.u):(e.h.u(t),t=b(e)),t},this.throw=function(t){return h(e.h),e.h.j?t=v(e,e.h.j.throw,t,e.h.u):(g(e.h,t),t=b(e)),t},this.return=function(t){var r;return h(e.h),(r=e.h.j)?v(e,"return"in r?r.return:function(e){return{value:e,done:!0}},t,e.h.return):(e.h.return(t),b(e))},this[Symbol.iterator]=function(){return this}}function _(e){var t=new k(new y(e));function r(e){return t.next(e)}function n(e){return t.throw(e)}return new Promise(function(e,s){!function t(a){a.done?e(a.value):Promise.resolve(a.value).then(r,n).then(t,s)}(t.next())})}function I(e){return e||Array.prototype.fill}m.prototype.u=function(e){this.i=e},m.prototype.return=function(e){this.l={return:e},this.h=this.v},s("Promise",function(e){function t(e){this.i=0,this.j=void 0,this.h=[],this.u=!1;var t=this.l();try{e(t.resolve,t.reject)}catch(e){t.reject(e)}}function r(){this.h=null}function s(e){return e instanceof t?e:new t(function(t){t(e)})}if(e)return e;r.prototype.i=function(e){if(null==this.h){this.h=[];var t=this;this.j(function(){t.m()})}this.h.push(e)};var o=n.setTimeout;r.prototype.j=function(e){o(e,0)},r.prototype.m=function(){for(;this.h&&this.h.length;){var e=this.h;this.h=[];for(var t=0;t<e.length;++t){var r=e[t];e[t]=null;try{r()}catch(e){this.l(e)}}}this.h=null},r.prototype.l=function(e){this.j(function(){throw e})},t.prototype.l=function(){function e(e){return function(n){r||(r=!0,e.call(t,n))}}var t=this,r=!1;return{resolve:e(this.I),reject:e(this.m)}},t.prototype.I=function(e){if(e===this)this.m(TypeError("A Promise cannot resolve to itself"));else if(e instanceof t)this.L(e);else{switch(typeof e){case"object":var r=null!=e;break;case"function":r=!0;break;default:r=!1}r?this.F(e):this.s(e)}},t.prototype.F=function(e){var t=void 0;try{t=e.then}catch(e){this.m(e);return}"function"==typeof t?this.M(t,e):this.s(e)},t.prototype.m=function(e){this.v(2,e)},t.prototype.s=function(e){this.v(1,e)},t.prototype.v=function(e,t){if(0!=this.i)throw Error("Cannot settle("+e+", "+t+"): Promise already settled in state"+this.i);this.i=e,this.j=t,2===this.i&&this.K(),this.H()},t.prototype.K=function(){var e=this;o(function(){if(e.D()){var t=n.console;void 0!==t&&t.error(e.j)}},1)},t.prototype.D=function(){if(this.u)return!1;var e=n.CustomEvent,t=n.Event,r=n.dispatchEvent;return void 0===r||("function"==typeof e?e=new e("unhandledrejection",{cancelable:!0}):"function"==typeof t?e=new t("unhandledrejection",{cancelable:!0}):(e=n.document.createEvent("CustomEvent")).initCustomEvent("unhandledrejection",!1,!0,e),e.promise=this,e.reason=this.j,r(e))},t.prototype.H=function(){if(null!=this.h){for(var e=0;e<this.h.length;++e)l.i(this.h[e]);this.h=null}};var l=new r;return t.prototype.L=function(e){var t=this.l();e.T(t.resolve,t.reject)},t.prototype.M=function(e,t){var r=this.l();try{e.call(t,r.resolve,r.reject)}catch(e){r.reject(e)}},t.prototype.then=function(e,r){function n(e,t){return"function"==typeof e?function(t){try{s(e(t))}catch(e){a(e)}}:t}var s,a,o=new t(function(e,t){s=e,a=t});return this.T(n(e,s),n(r,a)),o},t.prototype.catch=function(e){return this.then(void 0,e)},t.prototype.T=function(e,t){function r(){switch(n.i){case 1:e(n.j);break;case 2:t(n.j);break;default:throw Error("Unexpected state: "+n.i)}}var n=this;null==this.h?l.i(r):this.h.push(r),this.u=!0},t.resolve=s,t.reject=function(e){return new t(function(t,r){r(e)})},t.race=function(e){return new t(function(t,r){for(var n=a(e),o=n.next();!o.done;o=n.next())s(o.value).T(t,r)})},t.all=function(e){var r=a(e),n=r.next();return n.done?s([]):new t(function(e,t){var a=[],o=0;do a.push(void 0),o++,s(n.value).T(function(t){return function(r){a[t]=r,0==--o&&e(a)}}(a.length-1),t),n=r.next();while(!n.done)})},t}),s("Array.prototype.keys",function(e){return e||function(){var e,t,r,n,s;return e=this,t=function(e){return e},e instanceof String&&(e+=""),r=0,n=!1,(s={next:function(){if(!n&&r<e.length){var s=r++;return{value:t(s,e[s]),done:!1}}return n=!0,{done:!0,value:void 0}}})[Symbol.iterator]=function(){return s},s}}),s("Array.prototype.fill",function(e){return e||function(e,t,r){var n=this.length||0;for(0>t&&(t=Math.max(0,n+t)),(null==r||r>n)&&(r=n),0>(r=Number(r))&&(r=Math.max(0,n+r)),t=Number(t||0);t<r;t++)this[t]=e;return this}}),s("Int8Array.prototype.fill",I),s("Uint8Array.prototype.fill",I),s("Uint8ClampedArray.prototype.fill",I),s("Int16Array.prototype.fill",I),s("Uint16Array.prototype.fill",I),s("Int32Array.prototype.fill",I),s("Uint32Array.prototype.fill",I),s("Float32Array.prototype.fill",I),s("Float64Array.prototype.fill",I),s("Object.is",function(e){return e||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}}),s("Array.prototype.includes",function(e){return e||function(e,t){var r=this;r instanceof String&&(r=String(r));var n=r.length;for(0>(t=t||0)&&(t=Math.max(t+n,0));t<n;t++){var s=r[t];if(s===e||Object.is(s,e))return!0}return!1}}),s("String.prototype.includes",function(e){return e||function(e,t){if(null==this)throw TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(e instanceof RegExp)throw TypeError("First argument to String.prototype.includes must not be a regular expression");return -1!==this.indexOf(e,t||0)}});var j=this||self;function w(e,t){e=e.split(".");var r,n=j;for((e[0]in n)||void 0===n.execScript||n.execScript("var "+e[0]);e.length&&(r=e.shift());)e.length||void 0===t?n=n[r]&&n[r]!==Object.prototype[r]?n[r]:n[r]={}:n[r]=t}function T(e){var t;return(t=j.navigator)&&(t=t.userAgent)||(t=""),-1!=t.indexOf(e)}var S=Array.prototype.map?function(e,t){return Array.prototype.map.call(e,t,void 0)}:function(e,t){for(var r=e.length,n=Array(r),s="string"==typeof e?e.split(""):e,a=0;a<r;a++)a in s&&(n[a]=t.call(void 0,s[a],a,e));return n},C={},N=null;function E(){if(!N){N={};for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),t=["+/=","+/","-_=","-_.","-_"],r=0;5>r;r++){var n=e.concat(t[r].split(""));C[r]=n;for(var s=0;s<n.length;s++){var a=n[s];void 0===N[a]&&(N[a]=s)}}}}var F="u">typeof Uint8Array,A=!(T("Trident")||T("MSIE"))&&"function"==typeof j.btoa;function R(e){if(!A){var t;void 0===t&&(t=0),E(),t=C[t];for(var r=Array(Math.floor(e.length/3)),n=t[64]||"",s=0,a=0;s<e.length-2;s+=3){var o=e[s],l=e[s+1],i=e[s+2],p=t[o>>2];o=t[(3&o)<<4|l>>4],l=t[(15&l)<<2|i>>6],i=t[63&i],r[a++]=p+o+l+i}switch(p=0,i=n,e.length-s){case 2:i=t[(15&(p=e[s+1]))<<2]||n;case 1:e=e[s],r[a]=t[e>>2]+t[(3&e)<<4|p>>4]+i+n}return r.join("")}for(t="";10240<e.length;)t+=String.fromCharCode.apply(null,e.subarray(0,10240)),e=e.subarray(10240);return btoa(t+=String.fromCharCode.apply(null,e))}var P=RegExp("[-_.]","g");function $(e){switch(e){case"-":return"+";case"_":return"/";case".":return"=";default:return""}}function O(e){if(!A){var t,r,n,s,a;return(n=3*(r=(t=e).length)/4)%3?n=Math.floor(n):-1!="=.".indexOf(t[r-1])&&(n=-1!="=.".indexOf(t[r-2])?n-2:n-1),s=new Uint8Array(n),a=0,function(e,t){function r(t){for(;n<e.length;){var r=e.charAt(n++),s=N[r];if(null!=s)return s;if(!/^[\s\xa0]*$/.test(r))throw Error("Unknown base64 encoding at char: "+r)}return t}E();for(var n=0;;){var s=r(-1),a=r(0),o=r(64),l=r(64);if(64===l&&-1===s)break;t(s<<2|a>>4),64!=o&&(t(a<<4&240|o>>2),64!=l&&t(o<<6&192|l))}}(t,function(e){s[a++]=e}),a!==n?s.subarray(0,a):s}P.test(e)&&(e=e.replace(P,$)),e=atob(e);for(var o=new Uint8Array(e.length),l=0;l<e.length;l++)o[l]=e.charCodeAt(l);return o}function D(){return J||(J=new Uint8Array(0))}var M={},B="function"==typeof Uint8Array.prototype.slice,G=0,V=0;function L(e){var t=0>e,r=(e=Math.abs(e))>>>0;e=Math.floor((e-r)/0x100000000),t&&(t=(r=a(U(r,e))).next().value,e=r.next().value,r=t),G=r>>>0,V=e>>>0}var z="function"==typeof BigInt;function U(e,t){return t=~t,e?e=~e+1:t+=1,[e,t]}function W(e,t){this.i=e>>>0,this.h=t>>>0}function q(e){if(!e)return ee||(ee=new W(0,0));if(!/^-?\d+$/.test(e))return null;if(16>e.length)L(Number(e));else if(z)G=Number((e=BigInt(e))&BigInt(0xffffffff))>>>0,V=Number(e>>BigInt(32)&BigInt(0xffffffff));else{var t=+("-"===e[0]);V=G=0;for(var r=e.length,n=t,s=(r-t)%6+t;s<=r;n=s,s+=6)n=Number(e.slice(n,s)),V*=1e6,0x100000000<=(G=1e6*G+n)&&(V+=G/0x100000000|0,G%=0x100000000);t&&(e=(t=a(U(G,V))).next().value,t=t.next().value,G=e,V=t)}return new W(G,V)}function H(e,t){return Error("Invalid wire type: "+e+" (at position "+t+")")}function K(){return Error("Failed to read varint, encoding is invalid.")}function X(e,t){return Error("Tried to read past the end of the data "+t+" >"+e)}function Z(){throw Error("Invalid UTF8")}function Y(e,t){return t=String.fromCharCode.apply(null,t),null==e?t:e+t}var Q,J,ee,et,er,en=void 0,es="u">typeof TextDecoder,ea="u">typeof TextEncoder;function eo(e){if(e!==M)throw Error("illegal external caller")}function el(e,t){if(eo(t),this.V=e,null!=e&&0===e.length)throw Error("ByteString should be constructed with non-empty values")}function ei(){return eR||(eR=new el(null,M))}function ep(e){eo(M);var t=e.V;return null==(t=null==t||F&&null!=t&&t instanceof Uint8Array?t:"string"==typeof t?O(t):null)?t:e.V=t}function eu(e,t){this.i=null,this.m=!1,this.h=this.j=this.l=0,ec(this,e,t)}function ec(e,t,r){e.S=void 0!==(r=void 0===r?{}:r).S&&r.S,t&&(e.i=(t=function(e){if("string"==typeof e)return{buffer:O(e),C:!1};if(Array.isArray(e))return{buffer:new Uint8Array(e),C:!1};if(e.constructor===Uint8Array)return{buffer:e,C:!1};if(e.constructor===ArrayBuffer)return{buffer:new Uint8Array(e),C:!1};if(e.constructor===el)return{buffer:ep(e)||D(),C:!0};if(e instanceof Uint8Array)return{buffer:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),C:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers")}(t)).buffer,e.m=t.C,e.l=0,e.j=e.i.length,e.h=e.l)}function ed(e,t){if(e.h=t,t>e.j)throw X(e.j,t)}function ef(e){var t=e.i,r=e.h,n=t[r++],s=127&n;if(128&n&&(s|=(127&(n=t[r++]))<<7,128&n&&(s|=(127&(n=t[r++]))<<14,128&n&&(s|=(127&(n=t[r++]))<<21,128&n&&(s|=(n=t[r++])<<28,128&n&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++]&&128&t[r++])))))throw K();return ed(e,r),s}function em(e,t){if(0>t)throw Error("Tried to read a negative byte length: "+t);var r=e.h,n=r+t;if(n>e.j)throw X(t,e.j-r);return e.h=n,r}eu.prototype.reset=function(){this.h=this.l};var eh=[];function eg(){this.h=[]}function ex(e,t,r){for(;0<r||127<t;)e.h.push(127&t|128),t=(t>>>7|r<<25)>>>0,r>>>=7;e.h.push(t)}function ey(e,t){for(;127<t;)e.h.push(127&t|128),t>>>=7;e.h.push(t)}function ev(e,t){if(eh.length){var r=eh.pop();ec(r,e,t),e=r}else e=new eu(e,t);this.h=e,this.j=this.h.h,this.i=this.l=-1,this.setOptions(t)}function eb(e){var t=e.h;if(t.h==t.j)return!1;e.j=e.h.h;var r=ef(e.h)>>>0;if(t=r>>>3,!(0<=(r&=7)&&5>=r))throw H(r,e.j);if(1>t)throw Error("Invalid field number: "+t+" (at position "+e.j+")");return e.l=t,e.i=r,!0}eg.prototype.length=function(){return this.h.length},eg.prototype.end=function(){var e=this.h;return this.h=[],e},ev.prototype.setOptions=function(e){e=void 0===e?{}:e,this.ca=void 0!==e.ca&&e.ca},ev.prototype.reset=function(){this.h.reset(),this.j=this.h.h,this.i=this.l=-1};var ek=[];function e_(){this.j=[],this.i=0,this.h=new eg}function eI(e,t){0!==t.length&&(e.j.push(t),e.i+=t.length)}var ej="function"==typeof Symbol&&"symbol"==typeof Symbol()?Symbol():void 0;function ew(e,t){return ej?e[ej]|=t:void 0!==e.A?e.A|=t:(Object.defineProperties(e,{A:{value:t,configurable:!0,writable:!0,enumerable:!1}}),t)}function eT(e,t){ej?e[ej]&&(e[ej]&=~t):void 0!==e.A&&(e.A&=~t)}function eS(e){var t;return null==(t=ej?e[ej]:e.A)?0:t}function eC(e,t){ej?e[ej]=t:void 0!==e.A?e.A=t:Object.defineProperties(e,{A:{value:t,configurable:!0,writable:!0,enumerable:!1}})}function eN(e,t){eC(t,-51&e)}function eE(e,t){eC(t,(18|e)&-41)}var eF={};function eA(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)&&e.constructor===Object}var eR,eP,e$=[];function eO(e){if(2&eS(e.o))throw Error("Cannot mutate an immutable Message")}function eD(e){var t=e.length;(t=t?e[t-1]:void 0)&&eA(t)?t.g=1:(t={},e.push((t.g=1,t)))}function eM(e){var t=e.i+e.G;return e.B||(e.B=e.o[t]={})}function eB(e,t){return -1===t?null:t>=e.i?e.B?e.B[t]:void 0:e.o[t+e.G]}function eG(e,t,r,n){eO(e),eV(e,t,r,n)}function eV(e,t,r,n){e.j&&(e.j=void 0),t>=e.i||n?eM(e)[t]=r:(e.o[t+e.G]=r,(e=e.B)&&t in e&&delete e[t])}function eL(e,t,r,n){var s=eB(e,t);Array.isArray(s)||(s=eP);var a=eS(s);if(1&a||ew(s,1),n)2&a||ew(s,2),1&r||Object.freeze(s);else{n=!(2&r);var o,l=2&a;1&r||!l?n&&16&a&&!l&&eT(s,16):(ew(o=Array.prototype.slice.call(s),1),eV(e,t,s=o))}return s}function ez(e,t){var r=eB(e,t),n=null==r?r:"number"==typeof r||"NaN"===r||"Infinity"===r||"-Infinity"===r?Number(r):void 0;return null!=n&&n!==r&&eV(e,t,n),n}function eU(e,t,r,n,s){e.h||(e.h={});var a=e.h[r],o=eL(e,r,3,s);if(!a){var l=o;a=[];var i=!!(16&eS(e.o));o=!!(2&eS(l));var p=l;!s&&o&&(l=Array.prototype.slice.call(l));for(var u=o,c=0;c<l.length;c++){var d=l[c],f=t,m=!1;if(void 0!==(d=Array.isArray(d)?new f(d):m?new f:void 0)){var h=m=eS(f=d.o);o&&(h|=2),i&&(h|=16),h!=m&&eC(f,h),f=h,u=u||!!(2&f),a.push(d)}}return e.h[r]=a,t=33|(i=eS(l)),i!=(t=u?-9&t:8|t)&&(Object.isFrozen(u=l)&&(u=Array.prototype.slice.call(u)),eC(u,t),l=u),p!==l&&eV(e,r,l),(s||n&&o)&&ew(a,2),n&&Object.freeze(a),a}return s||(s=Object.isFrozen(a),n&&!s?Object.freeze(a):!n&&s&&(a=Array.prototype.slice.call(a),e.h[r]=a)),a}function eW(e,t,r){var n=!!(2&eS(e.o));if(t=eU(e,t,r,n,n),e=eL(e,r,3,n),!(n||8&eS(e))){for(n=0;n<t.length;n++){if(2&eS((r=t[n]).o)){var s=e1(r,!1);s.j=r}else s=r;r!==s&&(t[n]=s,e[n]=s.o)}ew(e,8)}return t}function eq(e,t,r){if(null!=r&&"number"!=typeof r)throw Error("Value of float/double field must be a number|null|undefined, found "+typeof r+": "+r);eG(e,t,r)}function eH(e,t,r,n,s){eO(e);var a=eU(e,r,t,!1,!1);return r=null!=n?n:new r,e=eL(e,t,2,!1),void 0!=s?(a.splice(s,0,r),e.splice(s,0,r.o)):(a.push(r),e.push(r.o)),r.C()&&eT(e,8),r}function eK(e,t){return null==e?t:e}function eX(e,t,r){return r=void 0===r?0:r,eK(ez(e,t),r)}function eZ(e,t,r,n){var s=eS(e);n=n?!!(16&s):void 0,e=Array.prototype.slice.call(e);for(var a=0;a<e.length;a++)e[a]=function e(t,r,n,s){if(null!=t){if(Array.isArray(t))t=eZ(t,r,n,void 0!==s);else if(eA(t)){var a,o={};for(a in t)o[a]=e(t[a],r,n,s);t=o}else t=r(t,s);return t}}(e[a],t,r,n);return r(s,e),e}function eY(e){return e.ja===eF?e.toJSON():function(e){switch(typeof e){case"number":return isFinite(e)?e:String(e);case"object":if(e)if(Array.isArray(e)){if(0!=(128&eS(e)))return eD(e=Array.prototype.slice.call(e)),e}else{if(F&&null!=e&&e instanceof Uint8Array)return R(e);if(e instanceof el){var t=e.V;return null==t?"":"string"==typeof t?t:e.V=R(t)}}}return e}(e)}function eQ(e,t){128&e&&eD(t)}function eJ(e,t,r,n,s,a,o){if(e=e.h&&e.h[r]){var l;if(2&(n=eS(e))?n=e:(eE(n,a=S(e,e0)),Object.freeze(a),n=a),eO(t),o=null==n?eP:(ew(l=[],1),l),null!=n){for(e=0,a=!!n.length;e<n.length;e++){var i=n[e];a=a&&!(2&eS(i.o)),o[e]=i.o}a=8*!!a|1,((e=eS(o))&a)!==a&&(Object.isFrozen(o)&&(o=Array.prototype.slice.call(o)),eC(o,e|a)),t.h||(t.h={}),t.h[r]=n}else t.h&&(t.h[r]=void 0);eV(t,r,o,s)}else eG(t,r,function e(t,r,n){if(n=void 0===n?eE:n,null!=t){if(F&&t instanceof Uint8Array)return t.length?new el(new Uint8Array(t),M):ei();if(Array.isArray(t)){var s=eS(t);return 2&s||(r&&!(32&s)&&(16&s||0===s)?eC(t,2|s):4&(r=eS(t=eZ(t,e,4&s?eE:n,!0)))&&2&r&&Object.freeze(t)),t}return t.ja===eF?e0(t):t}}(n,a,o),s)}function e0(e){return 2&eS(e.o)||ew((e=e1(e,!0)).o,2),e}function e1(e,r){var n=e.o,s=[];ew(s,16);var a=e.constructor.h;if(a&&s.push(a),a=e.B){s.length=n.length,s.fill(void 0,s.length,n.length);var o={};s[s.length-1]=o}0!=(128&eS(n))&&eD(s),r=r||e.C()?eE:eN,o=e.constructor,t=s,s=new o(s),t=void 0,e.R&&(s.R=e.R.slice()),o=!!(16&eS(n));for(var l=a?n.length-1:n.length,i=0;i<l;i++)eJ(e,s,i-e.G,n[i],!1,o,r);if(a)for(var p in a)eJ(e,s,+p,a[p],!0,o,r);return s}function e2(e,r,n){null==e&&(e=t),t=void 0;var s,a=this.constructor.i||0,o=0<a,l=this.constructor.h,i=!1;if(null==e){var p=48,u=!0;o&&(a=0,p|=128),eC(e=l?[l]:[],p)}else{if(!Array.isArray(e)||l&&l!==e[0])throw Error();var c=p=ew(e,0);if((u=0!=(16&c))&&((i=0!=(32&c))||(c|=32)),o){if(128&c)a=0;else if(0<e.length){var d=e[e.length-1];if(eA(d)&&"g"in d){a=0,c|=128,delete d.g;var f,m=!0;for(f in d){m=!1;break}m&&e.pop()}}}else if(128&c)throw Error();p!==c&&eC(e,c)}this.G=(l?0:-1)-a,this.h=void 0,this.o=e;e:{if(a=(l=this.o.length)-1,l&&eA(l=this.o[a])){this.B=l,this.i=a-this.G;break e}void 0!==r&&-1<r?(this.i=Math.max(r,a+1-this.G),this.B=void 0):this.i=Number.MAX_VALUE}if(!o&&this.B&&"g"in this.B)throw Error('Unexpected "g" flag in sparse object of message that is not a group type.');if(n)for(r=u&&!i&&!0,o=this.i,u=0;u<n.length;u++)(i=n[u])<o?(i+=this.G,(a=e[i])?e3(a,r):e[i]=eP):(s||(s=eM(this)),(a=s[i])?e3(a,r):s[i]=eP)}function e3(e,t){if(Array.isArray(e)){var r=eS(e),n=1;!t||2&r||(n|=16),(r&n)!==n&&eC(e,r|n)}}function e6(e,t,r){if(r){var n,s={};for(n in r){var a=r[n],o=a.ra;o||(s.J=a.xa||a.oa.W,a.ia?(s.aa=tt(a.ia),o=function(e){return function(t,r,n){return e.J(t,r,n,e.aa)}}(s)):a.ka?(s.Z=tr(a.da.P,a.ka),o=function(e){return function(t,r,n){return e.J(t,r,n,e.Z)}}(s)):o=s.J,a.ra=o),o(t,e,a.da),s={J:s.J,aa:s.aa,Z:s.Z}}}var l=e;if(l=l.R){eI(t,t.h.end());for(var i=0;i<l.length;i++)eI(t,ep(l[i])||D())}}eC(e$,23),eP=Object.freeze(e$),e2.prototype.toJSON=function(){return eZ(this.o,eY,eQ)},e2.prototype.C=function(){return!!(2&eS(this.o))},e2.prototype.ja=eF,e2.prototype.toString=function(){return this.o.toString()};var e4=Symbol();function e5(e,t,r){return e[e4]||(e[e4]=function(e,n){return t(e,n,r)})}function e8(e){var t=e[e4];if(!t){var r=tm(e);t=function(e,t){return th(e,t,r)},e[e4]=t}return t}function e9(e,t){var r=e[t];return"function"==typeof r&&0===r.length&&(r=r(),e[t]=r),Array.isArray(r)&&(tp in r||tn in r||0<r.length&&"function"==typeof r[0])?r:void 0}function e7(e,t,r,n,s,a){t.P=e[0];var o=1;if(e.length>o&&"number"!=typeof e[o]){var l=e[o++];r(t,l)}for(;o<e.length;){r=e[o++];for(var i=o+1;i<e.length&&"number"!=typeof e[i];)i++;switch(l=e[o++],i-=o){case 0:n(t,r,l);break;case 1:(i=e9(e,o))?(o++,s(t,r,l,i)):n(t,r,l,e[o++]);break;case 2:s(t,r,l,i=e9(e,i=o++),e[o++]);break;case 3:a(t,r,l,e[o++],e[o++],e[o++]);break;case 4:a(t,r,l,e[o++],e[o++],e[o++],e[o++]);break;default:throw Error("unexpected number of binary field arguments: "+i)}}return t}var te=Symbol();function tt(e){var t=e[te];if(!t){var r=ti(e);t=function(e,t){return tg(e,t,r)},e[te]=t}return t}function tr(e,t){var r=e[te];return r||(r=function(e,r){return e6(e,r,t)},e[te]=r),r}var tn=Symbol();function ts(e,t){e.push(t)}function ta(e,t,r){e.push(t,r.W)}function to(e,t,r,n){var s=tt(n),a=ti(n).P,o=r.W;e.push(t,function(e,t,r){return o(e,t,r,a,s)})}function tl(e,t,r,n,s,a){var o=tr(n,a),l=r.W;e.push(t,function(e,t,r){return l(e,t,r,n,o)})}function ti(e){var t=e[tn];return t||(t=e7(e,e[tn]=[],ts,ta,to,tl),tp in e&&tn in e&&(e.length=0)),t}var tp=Symbol();function tu(e,t){e[0]=t}function tc(e,t,r,n){var s=r.U;e[t]=n?function(e,t,r){return s(e,t,r,n)}:s}function td(e,t,r,n,s){var a=r.U,o=e8(n),l=tm(n).P;e[t]=function(e,t,r){return a(e,t,r,l,o,s)}}function tf(e,t,r,n,s,a,o){var l=r.U,i=e5(n,s,a);e[t]=function(e,t,r){return l(e,t,r,n,i,o)}}function tm(e){var t=e[tp];return t||(t=e7(e,e[tp]={},tu,tc,td,tf),tp in e&&tn in e&&(e.length=0)),t}function th(e,t,r){for(;eb(t)&&4!=t.i;){var n=t.l,s=r[n];if(!s){var a=r[0];a&&(a=a[n])&&(s=r[n]=function(e){var t,r=(t=e.ia)?e8(t):(t=e.wa)?e5(e.da.P,t,e.ka):void 0,n=e.da,s=e.oa.U;return r?function(e,t){return s(e,t,n,r)}:function(e,t){return s(e,t,n)}}(a))}if(!s||!s(t,e,n)){s=t,n=e,a=s.j,function e(t){switch(t.i){case 0:if(0!=t.i)e(t);else e:{t=t.h;for(var r=t.h,n=r+10,s=t.i;r<n;)if(0==(128&s[r++])){ed(t,r);break e}throw K()}break;case 1:ed(t=t.h,t.h+8);break;case 2:2!=t.i?e(t):(r=ef(t.h)>>>0,ed(t=t.h,t.h+r));break;case 5:ed(t=t.h,t.h+4);break;case 3:for(r=t.l;;){if(!eb(t))throw Error("Unmatched start-group tag: stream EOF");if(4==t.i){if(t.l!=r)throw Error("Unmatched end-group tag");break}e(t)}break;default:throw H(t.i,t.j)}}(s);var o=s;if(!o.ca){if(s=o.h.h-a,o.h.h=a,o=o.h,0==s)s=ei();else{if(a=em(o,s),o.S&&o.m)s=o.i.subarray(a,a+s);else{o=o.i;var l=a;s=l===(s=a+s)?D():B?o.slice(l,s):new Uint8Array(o.subarray(l,s))}s=0==s.length?ei():new el(s,M)}(a=n.R)?a.push(s):n.R=[s]}}}return e}function tg(e,t,r){for(var n=r.length,s=1==n%2,a=+!!s;a<n;a+=2)(0,r[a+1])(t,e,r[a]);e6(e,t,s?r[0]:void 0)}function tx(e,t){return{U:e,W:t}}var ty=tx(function(e,t,r){if(5!==e.i)return!1;var n=(e=e.h).i,s=e.h,a=n[s],o=n[s+1],l=n[s+2];return n=n[s+3],ed(e,e.h+4),e=2*((o=(a|o<<8|l<<16|n<<24)>>>0)>>31)+1,a=o>>>23&255,o&=8388607,eG(t,r,255==a?o?NaN:1/0*e:0==a?1401298464324817e-60*e*o:e*Math.pow(2,a-150)*(o+8388608)),!0},function(e,t,r){if(null!=(t=ez(t,r))){ey(e.h,8*r+5),e=e.h;var n=+t;0===n?0<1/n?G=V=0:(V=0,G=0x80000000):isNaN(n)?(V=0,G=0x7fffffff):34028234663852886e22<(n=(r=0>n?-0x80000000:0)?-n:n)?(V=0,G=(0x7f800000|r)>>>0):11754943508222875e-54>n?(V=0,G=(r|(n=Math.round(n/1401298464324817e-60)))>>>0):(t=Math.floor(Math.log(n)/Math.LN2),n*=Math.pow(2,-t),0x1000000<=(n=Math.round(8388608*n))&&++t,V=0,G=(r|t+127<<23|8388607&n)>>>0),r=G,e.h.push(r>>>0&255),e.h.push(r>>>8&255),e.h.push(r>>>16&255),e.h.push(r>>>24&255)}}),tv=tx(function(e,t,r){if(0!==e.i)return!1;var n=e.h,s=0,a=e=0,o=n.i,l=n.h;do{var i=o[l++];s|=(127&i)<<a,a+=7}while(32>a&&128&i)for(32<a&&(e|=(127&i)>>4),a=3;32>a&&128&i;a+=7)e|=(127&(i=o[l++]))<<a;if(ed(n,l),128>i)n=s>>>0,(e=0x80000000&(i=e>>>0))&&(i=~i>>>0,0==(n=~n+1>>>0)&&(i=i+1>>>0)),n=0x100000000*i+(n>>>0);else throw K();return eG(t,r,e?-n:n),!0},function(e,t,r){null!=(t=eB(t,r))&&("string"==typeof t&&q(t),null!=t&&(ey(e.h,8*r),"number"==typeof t?(e=e.h,L(t),ex(e,G,V)):(r=q(t),ex(e.h,r.i,r.h))))}),tb=tx(function(e,t,r){return 0===e.i&&(eG(t,r,ef(e.h)),!0)},function(e,t,r){if(null!=(t=eB(t,r))&&null!=t)if(ey(e.h,8*r),e=e.h,0<=(r=t))ey(e,r);else{for(t=0;9>t;t++)e.h.push(127&r|128),r>>=7;e.h.push(1)}}),tk=tx(function(e,t,r){if(2!==e.i)return!1;var n=ef(e.h)>>>0,s=em(e=e.h,n);if(e=e.i,es){var a,o=e;(a=et)||(a=et=new TextDecoder("utf-8",{fatal:!0})),e=s+n,o=0===s&&e===o.length?o:o.subarray(s,e);try{var l=a.decode(o)}catch(e){if(void 0===en){try{a.decode(new Uint8Array([128]))}catch(e){}try{a.decode(new Uint8Array([97])),en=!0}catch(e){en=!1}}throw en||(et=void 0),e}}else{n=(l=s)+n,s=[];for(var i,p,u=null;l<n;)128>(i=e[l++])?s.push(i):224>i?l>=n?Z():(p=e[l++],194>i||128!=(192&p)?(l--,Z()):s.push((31&i)<<6|63&p)):240>i?l>=n-1?Z():128!=(192&(p=e[l++]))||224===i&&160>p||237===i&&160<=p||128!=(192&(o=e[l++]))?(l--,Z()):s.push((15&i)<<12|(63&p)<<6|63&o):244>=i?l>=n-2?Z():128!=(192&(p=e[l++]))||0!=(i<<28)+(p-144)>>30||128!=(192&(o=e[l++]))||128!=(192&(a=e[l++]))?(l--,Z()):(i=((7&i)<<18|(63&p)<<12|(63&o)<<6|63&a)-65536,s.push((i>>10&1023)+55296,(1023&i)+56320)):Z(),8192<=s.length&&(u=Y(u,s),s.length=0);l=Y(u,s)}return eG(t,r,l),!0},function(e,t,r){if(null!=(t=eB(t,r))){if(ea){0;t=(er||(er=new TextEncoder)).encode(t)}else{for(var n=0,s=new Uint8Array(3*t.length),a=0;a<t.length;a++){var o=t.charCodeAt(a);if(128>o)s[n++]=o;else{if(2048>o)s[n++]=o>>6|192;else{if(55296<=o&&57343>=o){if(56319>=o&&a<t.length){var l=t.charCodeAt(++a);if(56320<=l&&57343>=l){o=1024*(o-55296)+l-56320+65536,s[n++]=o>>18|240,s[n++]=o>>12&63|128,s[n++]=o>>6&63|128,s[n++]=63&o|128;continue}a--}0;o=65533}s[n++]=o>>12|224,s[n++]=o>>6&63|128}s[n++]=63&o|128}}t=n===s.length?s:s.subarray(0,n)}ey(e.h,8*r+2),ey(e.h,t.length),eI(e,e.h.end()),eI(e,t)}}),t_=tx(function(e,t,r,n,s){if(2!==e.i)return!1;t=eH(t,r,n),r=e.h.j,n=ef(e.h)>>>0;var a=e.h.h+n,o=a-r;if(0>=o&&(e.h.j=a,s(t,e,void 0,void 0,void 0),o=a-e.h.h),o)throw Error("Message parsing ended unexpectedly. Expected to read "+(n+" bytes, instead read ")+(n-o)+" bytes, either the data ended unexpectedly or the message misreported its own length");return e.h.h=a,e.h.j=r,!0},function(e,t,r,n,s){if(null!=(t=eW(t,n,r)))for(n=0;n<t.length;n++){var a=e;ey(a.h,8*r+2);var o=a.h.end();eI(a,o),o.push(a.i),a=o,s(t[n],e),o=e;var l=a.pop();for(l=o.i+o.h.length()-l;127<l;)a.push(127&l|128),l>>>=7,o.i++;a.push(l),o.i++}});function tI(e){return function(t,r){e:{if(ek.length){var n=ek.pop();n.setOptions(r),ec(n.h,t,r),t=n}else t=new ev(t,r);try{var s=tm(e),a=th(new s.P,t,s);break e}finally{(s=t.h).i=null,s.m=!1,s.l=0,s.j=0,s.h=0,s.S=!1,t.l=-1,t.i=-1,100>ek.length&&ek.push(t)}}return a}}function tj(e){return function(){var t=new e_;tg(this,t,ti(e)),eI(t,t.h.end());for(var r=new Uint8Array(t.i),n=t.j,s=n.length,a=0,o=0;o<s;o++){var l=n[o];r.set(l,a),a+=l.length}return t.j=[r],r}}function tw(e){e2.call(this,e)}f(tw,e2);var tT=[tw,1,tb,2,ty,3,tk,4,tk];function tS(e){e2.call(this,e,-1,tC)}tw.prototype.l=tj(tT),f(tS,e2),tS.prototype.addClassification=function(e,t){return eH(this,1,tw,e,t),this};var tC=[1],tN=tI([tS,1,t_,tT]);function tE(e){e2.call(this,e)}f(tE,e2);var tF=[tE,1,ty,2,ty,3,ty,4,ty,5,ty];function tA(e){e2.call(this,e,-1,tR)}tE.prototype.l=tj(tF),f(tA,e2);var tR=[1],tP=tI([tA,1,t_,tF]);function t$(e){e2.call(this,e)}f(t$,e2);var tO=[t$,1,ty,2,ty,3,ty,4,ty,5,ty,6,tv],tD=tI(tO);function tM(e,t,r){if(r=e.createShader(0===r?e.VERTEX_SHADER:e.FRAGMENT_SHADER),e.shaderSource(r,t),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))throw Error("Could not compile WebGL shader.\n\n"+e.getShaderInfoLog(r));return r}function tB(e){return{x:eX(e,1),y:eX(e,2),z:eX(e,3),visibility:null!=ez(e,4)?eX(e,4):void 0}}function tG(e,t){this.i=e,this.h=t,this.m=0}function tV(e,t,r){return(function(e,t){var r=e.h;if(void 0===e.s){var n=tM(r,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",0),s=tM(r,"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }",1),a=r.createProgram();if(r.attachShader(a,n),r.attachShader(a,s),r.linkProgram(a),!r.getProgramParameter(a,r.LINK_STATUS))throw Error("Could not compile WebGL program.\n\n"+r.getProgramInfoLog(a));n=e.s=a,r.useProgram(n),s=r.getUniformLocation(n,"sampler0"),e.l={O:r.getAttribLocation(n,"aVertex"),N:r.getAttribLocation(n,"aTex"),ya:s},e.v=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,e.v),r.enableVertexAttribArray(e.l.O),r.vertexAttribPointer(e.l.O,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),e.u=r.createBuffer(),r.bindBuffer(r.ARRAY_BUFFER,e.u),r.enableVertexAttribArray(e.l.N),r.vertexAttribPointer(e.l.N,2,r.FLOAT,!1,0,0),r.bufferData(r.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),r.STATIC_DRAW),r.bindBuffer(r.ARRAY_BUFFER,null),r.uniform1i(s,0)}n=e.l,r.useProgram(e.s),r.canvas.width=t.width,r.canvas.height=t.height,r.viewport(0,0,t.width,t.height),r.activeTexture(r.TEXTURE0),e.i.bindTexture2d(t.glName),r.enableVertexAttribArray(n.O),r.bindBuffer(r.ARRAY_BUFFER,e.v),r.vertexAttribPointer(n.O,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(n.N),r.bindBuffer(r.ARRAY_BUFFER,e.u),r.vertexAttribPointer(n.N,2,r.FLOAT,!1,0,0),r.bindFramebuffer(r.DRAW_FRAMEBUFFER?r.DRAW_FRAMEBUFFER:r.FRAMEBUFFER,null),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r.colorMask(!0,!0,!0,!0),r.drawArrays(r.TRIANGLE_FAN,0,4),r.disableVertexAttribArray(n.O),r.disableVertexAttribArray(n.N),r.bindBuffer(r.ARRAY_BUFFER,null),e.i.bindTexture2d(0)}(e,t),"function"==typeof e.h.canvas.transferToImageBitmap)?Promise.resolve(e.h.canvas.transferToImageBitmap()):r?Promise.resolve(e.h.canvas):"function"==typeof createImageBitmap?createImageBitmap(e.h.canvas):(void 0===e.j&&(e.j=document.createElement("canvas")),new Promise(function(t){e.j.height=e.h.canvas.height,e.j.width=e.h.canvas.width,e.j.getContext("2d",{}).drawImage(e.h.canvas,0,0,e.h.canvas.width,e.h.canvas.height),t(e.j)}))}function tL(e){this.h=e}t$.prototype.l=tj(tO);var tz=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]);function tU(e,t){return t+e}function tW(e){if(this.h=e,this.listeners={},this.l={},this.L={},this.s={},this.v={},this.M=this.u=this.ga=!0,this.I=Promise.resolve(),this.fa="",this.D={},this.locateFile=e&&e.locateFile||tU,"object"==typeof window)var t=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if("u">typeof location)t=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");if(this.ha=t,e.options){t=a(Object.keys(e.options));for(var r=t.next();!r.done;r=t.next()){r=r.value;var n=e.options[r].default;void 0!==n&&(this.l[r]="function"==typeof n?n():n)}}}function tq(e,t){var r;return _(function(n){return t in e.L?n.return(e.L[t]):(r=fetch(e.locateFile(t,"")).then(function(e){return e.arrayBuffer()}),e.L[t]=r,n.return(r))})}function tH(e){return(void 0===e&&(e=0),1===e)?"selfie_segmentation_landscape.tflite":"selfie_segmentation.tflite"}function tK(e){var t=this;e=e||{},this.h=new tW({locateFile:e.locateFile,files:function(e){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:tH(e.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"object"==typeof window&&void 0!==window.navigator&&("iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document)},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(e){var r,n,s;return _(function(a){return 1==a.h?(n="third_party/mediapipe/modules/selfie_segmentation/"+(r=tH(e)),x(a,tq(t.h,r),2)):(s=a.i,t.h.overrideFile(n,s),a.return(!0))})}}}})}(i=tW.prototype).close=function(){return this.j&&this.j.delete(),Promise.resolve()},i.reset=function(){var e=this;return _(function(t){e.j&&(e.j.reset(),e.s={},e.v={}),t.h=0})},i.setOptions=function(e,t){var r=this;if(t=t||this.h.options){for(var n=[],s=[],o={},l=a(Object.keys(e)),i=l.next();!i.done;o={X:o.X,Y:o.Y},i=l.next())if(!((i=i.value)in this.l&&this.l[i]===e[i])){this.l[i]=e[i];var p=t[i];void 0!==p&&(p.onChange&&(o.X=p.onChange,o.Y=e[i],n.push(function(e){return function(){return _(function(t){if(1==t.h)return x(t,e.X(e.Y),2);!0===t.i&&(r.u=!0),t.h=0})}}(o))),p.graphOptionXref&&(i=Object.assign({},{calculatorName:"",calculatorIndex:0},p.graphOptionXref,{valueNumber:1===p.type?e[i]:0,valueBoolean:0===p.type&&e[i],valueString:2===p.type?e[i]:""}),s.push(i)))}(0!==n.length||0!==s.length)&&(this.u=!0,this.H=(void 0===this.H?[]:this.H).concat(s),this.F=(void 0===this.F?[]:this.F).concat(n))}},i.initialize=function(){var e=this;return _(function(t){var r,n,s,l,i,p,u,c,d,f,m,h,g,y,v,b,k,I,j,w,T,S,C,N;return 1==t.h?x(t,_(function(t){switch(t.h){case 1:if(!e.ga)return t.return();return r=void 0===e.h.files?[]:"function"==typeof e.h.files?e.h.files(e.l):e.h.files,x(t,_(function(e){switch(e.h){case 1:return e.s=2,x(e,WebAssembly.instantiate(tz),4);case 4:e.h=3,e.s=0;break;case 2:return e.s=0,e.l=null,e.return(!1);case 3:return e.return(!0)}}),2);case 2:if(n=t.i,"object"==typeof window){var a,h;return a={locateFile:e.locateFile},window.createMediapipeSolutionsWasm=a,h={locateFile:e.locateFile},window.createMediapipeSolutionsPackedAssets=h,p=r.filter(function(e){return void 0!==e.data}),u=r.filter(function(e){return void 0===e.data}),c=Promise.all(p.map(function(t){var r=tq(e,t.url);if(void 0!==t.path){var n=t.path;r=r.then(function(t){return e.overrideFile(n,t),Promise.resolve(t)})}return r})),d=Promise.all(u.map(function(t){var r,s;return void 0===t.simd||t.simd&&n||!t.simd&&!n?(r=e.locateFile(t.url,e.ha),(s=document.createElement("script")).setAttribute("src",r),s.setAttribute("crossorigin","anonymous"),new Promise(function(e){s.addEventListener("load",function(){e()},!1),s.addEventListener("error",function(){e()},!1),document.body.appendChild(s)})):Promise.resolve()})).then(function(){var t,r,n;return _(function(s){if(1==s.h)return t=window.createMediapipeSolutionsWasm,r=window.createMediapipeSolutionsPackedAssets,n=e,x(s,t(r),2);n.i=s.i,s.h=0})}),f=_(function(t){return e.h.graph&&e.h.graph.url?t=x(t,tq(e,e.h.graph.url),0):(t.h=0,t=void 0),t}),x(t,Promise.all([d,c,f]),7)}if("function"!=typeof importScripts)throw Error("solutions can only be loaded on a web page or in a web worker");return s=r.filter(function(e){return void 0===e.simd||e.simd&&n||!e.simd&&!n}).map(function(t){return e.locateFile(t.url,e.ha)}),importScripts.apply(null,o(s)),l=e,x(t,createMediapipeSolutionsWasm(Module),6);case 6:l.i=t.i,e.m=new OffscreenCanvas(1,1),e.i.canvas=e.m,i=e.i.GL.createContext(e.m,{antialias:!1,alpha:!1,va:"u">typeof WebGL2RenderingContext?2:1}),e.i.GL.makeContextCurrent(i),t.h=4;break;case 7:if(e.m=document.createElement("canvas"),!(m=e.m.getContext("webgl2",{}))&&!(m=e.m.getContext("webgl",{})))return alert("Failed to create WebGL canvas context when passing video frame."),t.return();e.K=m,e.i.canvas=e.m,e.i.createContext(e.m,!0,!0,{});case 4:e.j=new e.i.SolutionWasm,e.ga=!1,t.h=0}}),2):3!=t.h?x(t,_(function(t){if(1==t.h){if(e.h.graph&&e.h.graph.url&&e.fa===e.h.graph.url)return t.return();if(e.u=!0,!e.h.graph||!e.h.graph.url){t.h=2;return}return e.fa=e.h.graph.url,x(t,tq(e,e.h.graph.url),3)}for(2!=t.h&&(h=t.i,e.j.loadGraph(h)),y=(g=a(Object.keys(e.D))).next();!y.done;y=g.next())v=y.value,e.j.overrideFile(v,e.D[v]);if(e.D={},e.h.listeners)for(k=(b=a(e.h.listeners)).next();!k.done;k=b.next())!function(e,t){for(var r=t.name||"$",n=[].concat(o(t.wants)),s=new e.i.StringList,l=a(t.wants),i=l.next();!i.done;i=l.next())s.push_back(i.value);l=e.i.PacketListener.implement({onResults:function(s){for(var o,l,i,p,u,c,d,f,m,h,g,y,v,b,k={},I=0;I<t.wants.length;++I)k[n[I]]=s.get(I);var j=e.listeners[r];j&&(e.I=(o=t.outs,_(function(t){switch(t.h){case 1:if(!o)return t.return(k);for(l={},i=0,u=(p=a(Object.keys(o))).next();!u.done;u=p.next())"string"!=typeof(c=o[u.value])&&"texture"===c.type&&void 0!==k[c.stream]&&++i;1<i&&(e.M=!1),u=(d=a(Object.keys(o))).next();case 2:if(u.done){t.h=4;break}if("string"==typeof(m=o[f=u.value]))return v=l,b=f,x(t,function(e,t,r){var n;return _(function(s){return"number"==typeof r||r instanceof Uint8Array||r instanceof e.i.Uint8BlobList?s.return(r):r instanceof e.i.Texture2dDataOut?((n=e.v[t])||(n=new tG(e.i,e.K),e.v[t]=n),s.return(tV(n,r,e.M))):s.return(void 0)})}(e,f,k[m]),14);if(h=k[m.stream],"detection_list"===m.type){if(h){for(var r=h.getRectList(),n=h.getLandmarksList(),s=h.getClassificationsList(),I=[],j=0;j<r.size();++j){var w=tD(r.get(j)),T=eX(w,1),S=eX(w,2),C=eX(w,3),N=eX(w,4),E=eX(w,5,0),F=void 0;F=void 0===F?0:F,w={la:{sa:T,ta:S,height:C,width:N,rotation:E,pa:eK(eB(w,6),F)},ea:eW(tP(n.get(j)),tE,1).map(tB),ba:eW(tN(s.get(j)),tw,1).map(function(e){var t=eB(e,1);return{index:null==t?0:t,qa:eX(e,2),label:null!=eB(e,3)?eK(eB(e,3),""):void 0,displayName:null!=eB(e,4)?eK(eB(e,4),""):void 0}})},I.push(w)}r=I}else r=[];l[f]=r,t.h=7;break}if("proto_list"===m.type){if(h){for(n=0,r=Array(h.size());n<h.size();n++)r[n]=h.get(n);h.delete()}else r=[];l[f]=r,t.h=7;break}if(void 0===h){t.h=3;break}if("float_list"===m.type||"proto"===m.type){l[f]=h,t.h=7;break}if("texture"!==m.type)throw Error("Unknown output config type: '"+m.type+"'");return(g=e.v[f])||(g=new tG(e.i,e.K),e.v[f]=g),x(t,tV(g,h,e.M),13);case 13:y=t.i,l[f]=y;case 7:m.transform&&l[f]&&(l[f]=m.transform(l[f])),t.h=3;break;case 14:v[b]=t.i;case 3:u=d.next(),t.h=2;break;case 4:return t.return(l)}})).then(function(r){r=j(r);for(var s=0;s<t.wants.length;++s){var a=k[n[s]];"object"==typeof a&&a.hasOwnProperty&&a.hasOwnProperty("delete")&&a.delete()}r&&(e.I=r)}))}}),e.j.attachMultiListener(s,l),s.delete()}(e,k.value);I=e.l,e.l={},e.setOptions(I),t.h=0}),3):x(t,_(function(t){switch(t.h){case 1:if(!e.u)return t.return();if(!e.F){t.h=2;break}w=(j=a(e.F)).next();case 3:if(w.done){t.h=5;break}return x(t,(0,w.value)(),4);case 4:w=j.next(),t.h=3;break;case 5:e.F=void 0;case 2:if(e.H){for(T=new e.i.GraphOptionChangeRequestList,C=(S=a(e.H)).next();!C.done;C=S.next())N=C.value,T.push_back(N);e.j.changeOptions(T),T.delete(),e.H=void 0}e.u=!1,t.h=0}}),0)})},i.overrideFile=function(e,t){this.j?this.j.overrideFile(e,t):this.D[e]=t},i.clearOverriddenFiles=function(){this.D={},this.j&&this.j.clearOverriddenFiles()},i.send=function(e,t){var r,n,s,o,l,i,p,u,c,d=this;return _(function(f){switch(f.h){case 1:if(!d.h.inputs)return f.return();return r=1e3*(null==t?performance.now():t),x(f,d.I,2);case 2:return x(f,d.initialize(),3);case 3:for(n=new d.i.PacketDataList,o=(s=a(Object.keys(e))).next();!o.done;o=s.next())if(l=o.value,i=d.h.inputs[l]){e:{var m=e[l];switch(i.type){case"video":var h=d.s[i.stream];if(h||(h=new tG(d.i,d.K),d.s[i.stream]=h),0===h.m&&(h.m=h.i.createTexture()),"u">typeof HTMLVideoElement&&m instanceof HTMLVideoElement)var g=m.videoWidth,y=m.videoHeight;else"u">typeof HTMLImageElement&&m instanceof HTMLImageElement?(g=m.naturalWidth,y=m.naturalHeight):(g=m.width,y=m.height);y={glName:h.m,width:g,height:y},(g=h.h).canvas.width=y.width,g.canvas.height=y.height,g.activeTexture(g.TEXTURE0),h.i.bindTexture2d(h.m),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,g.RGBA,g.UNSIGNED_BYTE,m),h.i.bindTexture2d(0),h=y;break e;case"detections":for((h=d.s[i.stream])||(h=new tL(d.i),d.s[i.stream]=h),h.data||(h.data=new h.h.DetectionListData),h.data.reset(m.length),y=0;y<m.length;++y){g=m[y];var v=h.data,b=v.setBoundingBox,k=y,_=g.la,I=new t$;if(eq(I,1,_.sa),eq(I,2,_.ta),eq(I,3,_.height),eq(I,4,_.width),eq(I,5,_.rotation),eG(I,6,_.pa),_=I.l(),b.call(v,k,_),g.ea)for(v=0;v<g.ea.length;++v){I=g.ea[v],k=(b=h.data).addNormalizedLandmark,_=y,I=Object.assign({},I,{visibility:I.visibility?I.visibility:0});var j=new tE;eq(j,1,I.x),eq(j,2,I.y),eq(j,3,I.z),I.visibility&&eq(j,4,I.visibility),I=j.l(),k.call(b,_,I)}if(g.ba)for(v=0;v<g.ba.length;++v)k=(b=h.data).addClassification,_=y,I=g.ba[v],eq(j=new tw,2,I.qa),I.index&&eG(j,1,I.index),I.label&&eG(j,3,I.label),I.displayName&&eG(j,4,I.displayName),I=j.l(),k.call(b,_,I)}h=h.data;break e;default:h={}}}switch(p=h,u=i.stream,i.type){case"video":n.pushTexture2d(Object.assign({},p,{stream:u,timestamp:r}));break;case"detections":(c=p).stream=u,c.timestamp=r,n.pushDetectionList(c);break;default:throw Error("Unknown input config type: '"+i.type+"'")}}return d.j.send(n),x(f,d.I,4);case 4:n.delete(),f.h=0}})},i.onResults=function(e,t){this.listeners[t||"$"]=e},w("Solution",tW),w("OptionType",{BOOL:0,NUMBER:1,ua:2,0:"BOOL",1:"NUMBER",2:"STRING"}),(i=tK.prototype).close=function(){return this.h.close(),Promise.resolve()},i.onResults=function(e){this.h.onResults(e)},i.initialize=function(){var e=this;return _(function(t){return x(t,e.h.initialize(),0)})},i.reset=function(){this.h.reset()},i.send=function(e){var t=this;return _(function(r){return x(r,t.h.send(e),0)})},i.setOptions=function(e){this.h.setOptions(e)},w("SelfieSegmentation",tK),w("VERSION","0.1.1675465747")}).call(this)},{}],"2ZcDF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"lUFRH","./register_all_kernels":"19emz","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lUFRH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version_webgl",()=>l.version),s.export(r,"webgl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./backend_webgl"),l=e("./version"),i=e("./webgl");s.exportAll(i,r),a.device_util.isBrowser()&&(0,a.registerBackend)("webgl",()=>new(0,o.MathBackendWebGL),2);let p={forceHalfFloat:i.forceHalfFloat}},{"@tensorflow/tfjs-core":"2Gtps","./backend_webgl":"hHrpm","./version":"7Mq8e","./webgl":"hZSdp","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hHrpm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EPSILON_FLOAT32",()=>w),s.export(r,"EPSILON_FLOAT16",()=>T),s.export(r,"getBinaryCache",()=>C),s.export(r,"MathBackendWebGL",()=>E),e("./flags_webgl");var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./decode_matrix_gpu"),i=e("./decode_matrix_packed_gpu"),p=e("./encode_float_gpu"),u=e("./encode_float_packed_gpu"),c=e("./encode_matrix_gpu"),d=e("./encode_matrix_packed_gpu"),f=e("./gpgpu_context"),m=e("./gpgpu_math"),h=e("./kernel_utils/shared"),g=e("./pack_gpu"),x=e("./reshape_packed_gpu"),y=e("./tex_util"),v=e("./texture_manager"),b=e("./unaryop_gpu"),k=e("./unaryop_packed_gpu"),_=e("./unpack_gpu"),I=e("./webgl_util");let j=a.kernel_impls.whereImpl,w=1e-7,T=1e-4,S={};function C(e){return e in S||(S[e]={}),S[e]}let N=(0,a.env)().getNumber("CPU_HANDOFF_SIZE_THRESHOLD");class E extends a.KernelBackend{nextDataId(){return E.nextDataId++}constructor(e){let t;if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!(0,a.env)().getBool("HAS_WEBGL"))throw Error("WebGL is not supported on this device");if(null!=e){if(e instanceof f.GPGPUContext)t=e;else{const r=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"),e);t=new(0,f.GPGPUContext)(r)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{const e=(0,o.getWebGLContext)((0,a.env)().getNumber("WEBGL_VERSION"));t=new(0,f.GPGPUContext)(e),this.binaryCache=C((0,a.env)().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new(0,v.TextureManager)(this.gpgpu),this.numMBBeforeWarning=null==(0,a.env)().global.screen?1024:(0,a.env)().global.screen.height*(0,a.env)().global.screen.width*window.devicePixelRatio*600/1024/1024,this.texData=new(0,a.DataStorage)(this,(0,a.engine)())}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,r,n,s,a){let o=this.makeTensorInfo(t,r),l=this.texData.get(o.dataId);l.isPacked=!1,l.texture={texture:e,texShape:[n,s]},l.texShape=[n,s];let i=I.getShapeAs3D(t),p=new(0,c.EncodeMatrixProgram)(i,!1,a),u=this.runWebGLProgram(p,[o],r,[[n,s]]);return u.shape=t,l.texture=null,this.disposeIntermediateTensorInfo(o),u.dataId}write(e,t,r){if(((0,a.env)().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||(0,a.env)().getBool("DEBUG"))&&this.checkNumericalProblems(e),"complex64"===r&&null!=e)throw 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:r,values:e,usage:y.TextureUsage.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,r,n,s){if((0,a.env)().getBool("DEBUG")&&this.checkNumericalProblems(t),"complex64"===n)throw Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:r,dtype:n,values:t,usage:y.TextureUsage.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t,r,{values:n,dtype:s,complexTensorInfos:o,slice:l,shape:i,isPacked:p}=this.texData.get(e);if(null!=l){let t;t=p?new(0,k.UnaryOpPackedProgram)(i,b.CLONE):new(0,b.UnaryOpProgram)(i,b.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:i,dtype:s}],s),n=this.readSync(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if("string"===s)return n;let u=null!=this.activeTimers;if(u&&(t=a.util.now()),"complex64"===s){let e=this.readSync(o.real.dataId),t=this.readSync(o.imag.dataId);r=a.backend_util.mergeRealAndImagArrays(e,t)}else r=this.getValuesFromTexture(e);return u&&(this.downloadWaitMs+=a.util.now()-t),this.convertAndCacheOnCPU(e,r)}async read(e){let t,r;if(this.pendingRead.has(e)){let t=this.pendingRead.get(e);return new Promise(e=>t.push(e))}let{values:n,shape:s,slice:o,dtype:l,complexTensorInfos:i,isPacked:p}=this.texData.get(e);if(null!=o){let t;t=p?new(0,k.UnaryOpPackedProgram)(s,b.CLONE):new(0,b.UnaryOpProgram)(s,b.CLONE);let r=this.runWebGLProgram(t,[{dataId:e,shape:s,dtype:l}],l),n=this.read(r.dataId);return this.disposeIntermediateTensorInfo(r),n}if(null!=n)return this.convertAndCacheOnCPU(e);if((0,a.env)().getBool("DEBUG")&&!(0,a.env)().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&2===(0,a.env)().getNumber("WEBGL_VERSION"))throw Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let u=null;if("complex64"!==l&&(0,a.env)().get("WEBGL_BUFFER_SUPPORTED")){t=this.decode(e);let r=this.texData.get(t.dataId);u=this.gpgpu.createBufferFromTexture(r.texture.texture,...y.getDenseTexShape(s))}if(this.pendingRead.set(e,[]),"complex64"!==l&&await this.gpgpu.createAndWaitForFence(),"complex64"===l){let e=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),t=e[0],n=e[1];r=a.backend_util.mergeRealAndImagArrays(t,n)}else if(null==u)r=this.getValuesFromTexture(e);else{let e=a.util.sizeFromShape(s);r=this.gpgpu.downloadFloat32MatrixFromBuffer(u,e)}if(null!=t&&this.disposeIntermediateTensorInfo(t),null!=u){let e=this.gpgpu.gl;I.callAndCheck(e,()=>e.deleteBuffer(u))}let c=this.convertAndCacheOnCPU(e,r),d=this.pendingRead.get(e);return this.pendingRead.delete(e),d.forEach(e=>e(c)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&(0,a.engine)().removeDataId(e,this),this.pendingDeletes--),c}readToGPU(e,t={}){let{values:r,shape:n,slice:s,dtype:o,isPacked:l,texture:i}=this.texData.get(e);if("complex64"===o)throw Error("Does not support reading texture for complex64 dtype.");if(null!=s){let r;r=l?new(0,k.UnaryOpPackedProgram)(n,b.CLONE):new(0,b.UnaryOpProgram)(n,b.CLONE);let s=this.runWebGLProgram(r,[{dataId:e,shape:n,dtype:o}],o),a=this.readToGPU(s,t);return this.disposeIntermediateTensorInfo(s),a}if(null==i)if(null!=r)throw Error("Data is not on GPU but on CPU.");else throw Error("There is no data on GPU or CPU.");let p=this.decode(e,t.customTexShape);return Object.assign({tensorRef:(0,a.engine)().makeTensorFromTensorInfo(p)},this.texData.get(p.dataId).texture)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}checkNumericalProblems(e){if(null!=e)for(let t=0;t<e.length;t++){let r=e[t];if(!I.canBeRepresented(r)){if((0,a.env)().getBool("WEBGL_RENDER_FLOAT32_CAPABLE"))throw Error(`The value ${r} cannot be represented with your current settings. Consider enabling float32 rendering: 'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'`);throw Error(`The value ${r} cannot be represented on this device.`)}}}getValuesFromTexture(e){let{shape:t,dtype:r,isPacked:n}=this.texData.get(e),s=a.util.sizeFromShape(t);if((0,a.env)().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")){let r=this.decode(e),n=this.texData.get(r.dataId),a=this.gpgpu.downloadMatrixFromPackedTexture(n.texture.texture,...y.getDenseTexShape(t)).subarray(0,s);return this.disposeIntermediateTensorInfo(r),a}let o=(0,a.env)().getBool("WEBGL_PACK")&&!0===n,l=o?I.getShapeAs3D(t):t,i=o?new(0,u.EncodeFloatPackedProgram)(l):new(0,p.EncodeFloatProgram)(l),c=this.runWebGLProgram(i,[{shape:l,dtype:r,dataId:e}],"float32"),d=this.texData.get(c.dataId),f=this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(d.texture.texture,d.texShape[0],d.texShape[1]).subarray(0,s);return this.disposeIntermediateTensorInfo(c),f}timerAvailable(){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0}time(e){let t=this.activeTimers,r=[],n=!1;null==this.programTimersStack?(this.programTimersStack=r,n=!0):this.activeTimers.push(r),this.activeTimers=r,e();let s=a.util.flatten(this.activeTimers.map(e=>e.query)).filter(e=>null!=e),o=a.util.flatten(this.activeTimers.map(e=>e.name)).filter(e=>null!=e);this.activeTimers=t,n&&(this.programTimersStack=null);let l={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if((0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let e=await Promise.all(s);l.kernelMs=a.util.sum(e),l.getExtraProfileInfo=()=>e.map((e,t)=>({name:o[t],ms:e})).map(e=>`${e.name}: ${e.ms}`).join(", ")}else l.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,l})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:a.util.now(),endMs:null}}endTimer(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.endQuery():e.endMs=a.util.now(),e}async getQueryTime(e){return(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.waitForQueryAndGetTime(e):e.endMs-e.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:r}=this.texData.get(e);return null!=r&&(this.disposeData(r.real.dataId,t),this.disposeData(r.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:r,texShape:n,usage:s,isPacked:a,slice:o}=this.texData.get(e),l=o&&o.origDataId||e,i=this.dataRefCount.get(l);i>1?this.dataRefCount.set(l,i-1):(this.dataRefCount.delete(l),null!=t&&(this.numBytesInGPU-=this.computeBytes(n,r),this.textureManager.releaseTexture(t,n,s,a)));let p=this.texData.get(e);p.texture=null,p.texShape=null,p.isPacked=!1,p.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=N){return(0,a.env)().getBool("WEBGL_CPU_FORWARD")&&e.every(e=>null==this.texData.get(e.dataId).texture&&a.util.sizeFromShape(e.shape)<t)}getGPGPUContext(){return this.gpgpu}where(e){a.backend_util.warn("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");let t=e.dataSync();return j(e.shape,t)}packedUnaryOp(e,t,r){let n=new(0,k.UnaryOpPackedProgram)(e.shape,t),s=this.compileAndRun(n,[e],r);return(0,a.engine)().makeTensorFromTensorInfo(s)}abs(e){if(this.shouldExecuteOnCPU([e])&&"complex64"!==e.dtype){let t=(0,h.simpleAbsImplCPU)(this.texData.get(e.dataId).values);return this.makeOutput(e.shape,e.dtype,t)}if((0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,b.ABS,e.dtype);let t=new(0,b.UnaryOpProgram)(e.shape,b.ABS),r=this.compileAndRun(t,[e]);return(0,a.engine)().makeTensorFromTensorInfo(r)}makeTensorInfo(e,t,r){let n;if("string"===t&&null!=r&&r.length>0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,r),this)}unpackTensor(e){let t=new(0,_.UnpackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new(0,g.PackProgram)(e.shape);return this.runWebGLProgram(t,[e],e.dtype,null,!0)}packedReshape(e,t){let r=[I.getBatchDim(e.shape),...I.getRowsCols(e.shape)],n={dtype:e.dtype,shape:r,dataId:e.dataId},s=[I.getBatchDim(t),...I.getRowsCols(t)],a=new(0,x.ReshapePackedProgram)(s,r),o=this.runWebGLProgram(a,[n],e.dtype,[r],!0);return{dataId:o.dataId,shape:t,dtype:o.dtype}}decode(e,t){let r,{isPacked:n,shape:s,dtype:o}=this.texData.get(e);if(null!=t){let e=a.util.sizeFromShape(s),r=t[0]*t[1]*4;a.util.assert(e<=r,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let p=I.getShapeAs3D(s);r=n?new(0,i.DecodeMatrixPackedProgram)(p):new(0,l.DecodeMatrixProgram)(p);let u=[null!=t?t:y.getDenseTexShape(p)],c=this.runWebGLProgram(r,[{shape:p,dtype:o,dataId:e}],o,u,!0,t);return{dtype:o,shape:s,dataId:c.dataId}}runWebGLProgram(e,t,r,n,s=!1,o){let l,i=this.makeTensorInfo(e.outputShape,r),p=this.texData.get(i.dataId);if(e.packedOutput&&(p.isPacked=!0),e.outPackingScheme===y.PackingScheme.DENSE&&(p.texShape=(null!=o?o:y.getDenseTexShape(e.outputShape)).map(e=>2*e)),null!=e.outTexUsage&&(p.usage=e.outTexUsage),0===a.util.sizeFromShape(i.shape))return p.values=a.util.getTypedArrayFromDType(i.dtype,0),i;let u=[],c=t.map(t=>{if("complex64"===t.dtype)throw Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let r=this.texData.get(t.dataId);if(null==r.texture){if(!e.packedInputs&&a.util.sizeFromShape(t.shape)<=(0,a.env)().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:r.values};e.packedInputs&&(r.isPacked=!0,r.shape=t.shape)}if(this.uploadToGPU(t.dataId),!!r.isPacked!=!!e.packedInputs)t=r.isPacked?this.unpackTensor(t):this.packTensor(t),u.push(t),r=this.texData.get(t.dataId);else if(r.isPacked&&!I.isReshapeFree(r.shape,t.shape)){let e=t,n=t.shape;t.shape=r.shape,t=this.packedReshape(t,n),u.push(t),r=this.texData.get(t.dataId),e.shape=n}return{shape:t.shape,texData:r,isUniform:!1}});this.uploadToGPU(i.dataId);let d={shape:i.shape,texData:p,isUniform:!1},f=m.makeShaderKey(e,c,d),h=this.getAndSaveBinary(f,()=>m.compileProgram(this.gpgpu,e,c,d)),g=null!=this.activeTimers;g&&(l=this.startTimer()),(0,a.env)().get("ENGINE_COMPILE_ONLY")||m.runProgram(this.gpgpu,h,c,d,n),u.forEach(e=>this.disposeIntermediateTensorInfo(e)),g&&(l=this.endTimer(l),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(l)}));let x=(0,a.env)().getNumber("WEBGL_FLUSH_THRESHOLD");if(x>0){let e=a.util.now();e-this.lastGlFlushTime>x&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=e)}if(!(0,a.env)().getBool("WEBGL_LAZILY_UNPACK")&&p.isPacked&&!1===s){let e=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),e}return i}compileAndRun(e,t,r,n,s=!1){return r=r||t[0].dtype,this.runWebGLProgram(e,t,r,n,s)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||((0,a.env)().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),null!=this.canvas&&"u">typeof HTMLCanvasElement&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return null==this.floatPrecisionValue&&(this.floatPrecisionValue=(0,a.tidy)(()=>{if(!(0,a.env)().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=(0,a.env)().getBool("DEBUG");(0,a.env)().set("DEBUG",!1);let t=this.abs((0,a.scalar)(1e-8)).dataSync()[0];if((0,a.env)().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return 32===this.floatPrecision()?w:T}uploadToGPU(e){let t,r=this.texData.get(e),{shape:n,dtype:s,values:o,texture:l,usage:i,isPacked:p}=r;if(null!=l)return;let u=null!=this.activeTimers;u&&(t=a.util.now());let f=r.texShape;if(null==f&&(r.texShape=f=I.getTextureShapeFromLogicalShape(n,p)),null!=o){let e,l=I.getShapeAs3D(n),i=f[1],m=f[0],h=o instanceof Uint8Array||o instanceof Uint8ClampedArray;(p||!h)&&([i,m]=y.getPackedMatrixTextureShapeWidthHeight(f[0],f[1])),e=p?new(0,d.EncodeMatrixPackedProgram)(l,h):new(0,c.EncodeMatrixProgram)(l,h);let g=h?[m,i]:f,x=this.makeTensorInfo(g,s),v=this.texData.get(x.dataId);h?v.usage=y.TextureUsage.PIXELS:v.usage=y.TextureUsage.UPLOAD,v.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(x.dataId),i,m,o);let b=[[m,i]],k=this.runWebGLProgram(e,[x],s,b,!0),_=this.texData.get(k.dataId);r.texShape=_.texShape,r.isPacked=_.isPacked,r.usage=_.usage,(0,a.env)().get("ENGINE_COMPILE_ONLY")?this.disposeData(k.dataId):(r.texture=_.texture,r.values=null,this.texData.delete(k.dataId)),this.disposeIntermediateTensorInfo(x),u&&(this.uploadWaitMs+=a.util.now()-t)}else r.texture=this.acquireTexture(f,i,s,p)}convertAndCacheOnCPU(e,t){let r=this.texData.get(e),{dtype:n}=r;return null!=t&&(r.values=function(e,t){if("float32"===t||"complex64"===t)return e;if("int32"===t||"bool"===t){let r="int32"===t?new Int32Array(e.length):new Uint8Array(e.length);for(let t=0;t<r.length;++t)r[t]=Math.round(e[t]);return r}throw Error(`Unknown dtype ${t}`)}(t,n)),r.values}acquireTexture(e,t,r,n){if(this.numBytesInGPU+=this.computeBytes(e,r),!this.warnedAboutMemory&&this.numBytesInGPU>1048576*this.numMBBeforeWarning){let e=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${e} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*a.util.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}for(let[,t]of Object.entries(this.binaryCache)){let r=new Promise(e=>{try{this.checkCompletion_(t),e(!0)}catch(e){throw e}});e.push(r)}return Promise.all(e)}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await (0,a.nextFrame)(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(!1===this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)){if(console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),!1===this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS))throw I.logShaderSourceAndInfoLog(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),Error("Failed to compile fragment shader.");throw Error("Failed to link vertex and fragment shaders.")}return!0}getUniformLocations(){for(let e of Object.values(this.binaryCache)){this.gpgpu.buildVao(e.webGLProgram);let{variablesLocations:t,customUniformLocations:r,infLoc:n,nanLoc:s,outShapeLocation:a,outShapeStridesLocation:o,outTexShapeLocation:l}=(0,m.getUniformLocations)(this.gpgpu,e.program,e.webGLProgram);e.variablesLocations=t,e.customUniformLocations=r,e.infLoc=n,e.nanLoc=s,e.outShapeLocation=a,e.outShapeStridesLocation=o,e.outTexShapeLocation=l}}createTensorFromGPUData(e,t,r){e.channels=e.channels||"RGBA";let{texture:n,height:s,width:o,channels:l}=e,i=(0,a.engine)().backend;if(!i.gpgpu.gl.isTexture(n))throw Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let p=i.writeTexture(n,t,r,s,o,l);return(0,a.engine)().makeTensorFromDataId(p,t,r,i)}}E.nextDataId=0},{"./flags_webgl":"fjjsx","@tensorflow/tfjs-core":"2Gtps","./canvas_util":"hTzxU","./decode_matrix_gpu":"aOVQe","./decode_matrix_packed_gpu":"hlqVO","./encode_float_gpu":"cxN1O","./encode_float_packed_gpu":"aLuep","./encode_matrix_gpu":"bKqj1","./encode_matrix_packed_gpu":"2Edkx","./gpgpu_context":"eJgSB","./gpgpu_math":"6rFox","./kernel_utils/shared":"6ruDg","./pack_gpu":"bT3dB","./reshape_packed_gpu":"6df3b","./tex_util":"etxDi","./texture_manager":"ioezz","./unaryop_gpu":"byMKQ","./unaryop_packed_gpu":"11H6D","./unpack_gpu":"3INpI","./webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fjjsx:[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./webgl_util");let o=(0,s.env)();o.registerFlag("HAS_WEBGL",()=>o.getNumber("WEBGL_VERSION")>0),o.registerFlag("WEBGL_VERSION",()=>(0,a.isWebGLVersionEnabled)(2)?2:+!!(0,a.isWebGLVersionEnabled)(1)),o.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1),o.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>2===o.get("WEBGL_VERSION")),o.registerFlag("WEBGL_CPU_FORWARD",()=>!0),o.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1),o.registerFlag("WEBGL_PACK",()=>o.getBool("HAS_WEBGL")),o.registerFlag("WEBGL_PACK_NORMALIZATION",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CLIP",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_REDUCE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_LAZILY_UNPACK",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_CONV_IM2COL",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_PACK_CONV2DTRANSPOSE",()=>o.getBool("WEBGL_PACK")),o.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>(0,a.getWebGLMaxTextureSize)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>(0,a.getMaxTexturesInShader)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=o.getNumber("WEBGL_VERSION");return 0===e?0:(0,a.getWebGLDisjointQueryTimerVersion)(e)}),o.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>o.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!s.device_util.isMobile()),o.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>(0,a.isCapableOfRenderingToFloatTexture)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>!o.getBool("WEBGL_FORCE_F16_TEXTURES")&&o.getBool("WEBGL_RENDER_FLOAT32_CAPABLE")),o.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>(0,a.isDownloadFloatTextureEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_FENCE_API_ENABLED",()=>(0,a.isWebGLFenceEnabled)(o.getNumber("WEBGL_VERSION"))),o.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>4*!!o.getBool("WEBGL_RENDER_FLOAT32_ENABLED")),o.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)}),o.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>s.device_util.isMobile()?1:-1,e=>{if("number"!=typeof e)throw Error(`WEBGL_FLUSH_THRESHOLD must be a number but got ${e}.`);if(e<0&&-1!==e)throw Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)}),o.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128),o.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1),o.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5),o.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128),o.registerFlag("WEBGL_EXP_CONV",()=>!1),o.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>o.getBool("IS_TEST")),o.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0),o.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1),o.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1),o.registerFlag("ENGINE_COMPILE_ONLY",()=>!1)},{"@tensorflow/tfjs-core":"2Gtps","./webgl_util":"kBGlX"}],kBGlX:[function(e,t,r,n){let s,a;var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"callAndCheck",()=>u),o.export(r,"canBeRepresented",()=>c),o.export(r,"getWebGLErrorMessage",()=>d),o.export(r,"getExtensionOrThrow",()=>f),o.export(r,"createVertexShader",()=>m),o.export(r,"createFragmentShader",()=>h),o.export(r,"logShaderSourceAndInfoLog",()=>x),o.export(r,"createProgram",()=>y),o.export(r,"linkProgram",()=>v),o.export(r,"validateProgram",()=>b),o.export(r,"createStaticVertexBuffer",()=>k),o.export(r,"createStaticIndexBuffer",()=>_),o.export(r,"getNumChannels",()=>I),o.export(r,"createTexture",()=>j),o.export(r,"validateTextureSize",()=>w),o.export(r,"createFramebuffer",()=>T),o.export(r,"bindVertexBufferToProgramAttribute",()=>S),o.export(r,"bindTextureUnit",()=>C),o.export(r,"unbindTextureUnit",()=>N),o.export(r,"getProgramUniformLocationOrThrow",()=>E),o.export(r,"getProgramUniformLocation",()=>F),o.export(r,"bindTextureToProgramUniformSampler",()=>A),o.export(r,"bindCanvasToFramebuffer",()=>R),o.export(r,"bindColorTextureToFramebuffer",()=>P),o.export(r,"unbindColorTextureFromFramebuffer",()=>$),o.export(r,"validateFramebuffer",()=>O),o.export(r,"getFramebufferErrorMessage",()=>D),o.export(r,"getBatchDim",()=>G),o.export(r,"getRowsCols",()=>V),o.export(r,"getShapeAs3D",()=>L),o.export(r,"getTextureShapeFromLogicalShape",()=>z),o.export(r,"isReshapeFree",()=>U),o.export(r,"getWebGLMaxTextureSize",()=>W),o.export(r,"resetMaxTextureSize",()=>q),o.export(r,"resetMaxTexturesInShader",()=>H),o.export(r,"getMaxTexturesInShader",()=>K),o.export(r,"getWebGLDisjointQueryTimerVersion",()=>X),o.export(r,"hasExtension",()=>Z),o.export(r,"isWebGLVersionEnabled",()=>Y),o.export(r,"isCapableOfRenderingToFloatTexture",()=>Q),o.export(r,"isDownloadFloatTextureEnabled",()=>J),o.export(r,"isWebGLFenceEnabled",()=>et),o.export(r,"assertNotComplex",()=>er);var l=e("@tensorflow/tfjs-core"),i=e("./canvas_util"),p=e("./tex_util");function u(e,t){let r=t();return(0,l.env)().getBool("DEBUG")&&function(e){let t=e.getError();if(t!==e.NO_ERROR)throw Error("WebGL Error: "+d(e,t))}(e),r}function c(e){return!!((0,l.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||0===e||596e-10<Math.abs(e)&&65504>Math.abs(e))}function d(e,t){switch(t){case e.NO_ERROR:return"NO_ERROR";case e.INVALID_ENUM:return"INVALID_ENUM";case e.INVALID_VALUE:return"INVALID_VALUE";case e.INVALID_OPERATION:return"INVALID_OPERATION";case e.INVALID_FRAMEBUFFER_OPERATION:return"INVALID_FRAMEBUFFER_OPERATION";case e.OUT_OF_MEMORY:return"OUT_OF_MEMORY";case e.CONTEXT_LOST_WEBGL:return"CONTEXT_LOST_WEBGL";default:return`Unknown error code ${t}`}}function f(e,t){return M(e,()=>e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function m(e,t){let r=M(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(u(e,()=>e.shaderSource(r,t)),u(e,()=>e.compileShader(r)),!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw console.log(e.getShaderInfoLog(r)),Error("Failed to compile vertex shader.");return r}function h(e,t){let r=M(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(u(e,()=>e.shaderSource(r,t)),u(e,()=>e.compileShader(r)),(0,l.env)().get("ENGINE_COMPILE_ONLY"))return r;if(!1===e.getShaderParameter(r,e.COMPILE_STATUS))throw x(t,e.getShaderInfoLog(r)),Error("Failed to compile fragment shader.");return r}let g=/ERROR: [0-9]+:([0-9]+):/g;function x(e,t){let r=g.exec(t);if(null==r){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let n=+r[1],s=e.split("\n"),a=s.length.toString().length+2,o=s.map((e,t)=>l.util.rightPad((t+1).toString(),a)+e),i=0;for(let e=0;e<o.length;e++)i=Math.max(o[e].length,i);let p=o.slice(0,n-1),u=o.slice(n-1,n),c=o.slice(n);console.log(p.join("\n")),console.log(t.split("\n")[0]),console.log(`%c ${l.util.rightPad(u[0],i)}`,"border:1px solid red; background-color:#e3d2d2; color:#a61717"),console.log(c.join("\n"))}function y(e){return M(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function v(e,t){if(u(e,()=>e.linkProgram(t)),!(0,l.env)().get("ENGINE_COMPILE_ONLY")&&!1===e.getProgramParameter(t,e.LINK_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Failed to link vertex and fragment shaders.")}function b(e,t){if(u(e,()=>e.validateProgram(t)),!1===e.getProgramParameter(t,e.VALIDATE_STATUS))throw console.log(e.getProgramInfoLog(t)),Error("Shader program validation failed.")}function k(e,t){let r=M(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return u(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),u(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function _(e,t){let r=M(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return u(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r)),u(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),r}function I(){return 2===(0,l.env)().getNumber("WEBGL_VERSION")?1:4}function j(e){return M(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function w(e,t){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0)throw Error(`Requested texture size [${e}x${t}] is invalid.`);if(e>r||t>r)throw Error(`Requested texture size [${e}x${t}] greater than WebGL maximum on this browser / GPU [${r}x${r}].`)}function T(e){return M(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function S(e,t,r,n,s,a,o){let l=e.getAttribLocation(t,r);return -1!==l&&(u(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),u(e,()=>e.vertexAttribPointer(l,s,e.FLOAT,!1,a,o)),u(e,()=>e.enableVertexAttribArray(l)),!0)}function C(e,t,r){B(e,r),u(e,()=>e.activeTexture(e.TEXTURE0+r)),u(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function N(e,t){B(e,t),u(e,()=>e.activeTexture(e.TEXTURE0+t)),u(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function E(e,t,r){return M(e,()=>e.getUniformLocation(t,r),'uniform "'+r+'" not present in program.')}function F(e,t,r){return e.getUniformLocation(t,r)}function A(e,t,r,n){u(e,()=>C(e,t,n)),u(e,()=>e.uniform1i(r,n))}function R(e){u(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),u(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),u(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function P(e,t,r){u(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,r)),u(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function $(e,t){u(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),u(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function O(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw Error("Error binding framebuffer: "+D(e,t))}function D(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 M(e,t,r){let n=u(e,()=>t());if(null==n)throw Error(r);return n}function B(e,t){let r=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(n<e.TEXTURE0||n>r){let e=`[gl.TEXTURE0, gl.TEXTURE${r}]`;throw Error(`textureUnit must be in ${e}.`)}}function G(e,t=2){return l.util.sizeFromShape(e.slice(0,e.length-t))}function V(e){if(0===e.length)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 L(e){let t=[1,1,1];return 0!==e.length&&(1!==e.length||1!==e[0])&&(t=[G(e),...V(e)]),t}function z(e,t=!1){let r=(0,l.env)().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=(0,l.env)().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&(0,l.env)().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=r/2),t&&(r*=2,n*=2,1===(e=e.map((t,r)=>r>=e.length-2?l.util.nearestLargerEven(e[r]):e[r])).length&&(e=[2,e[0]])),2!==e.length&&(e=l.util.squeezeShape(e).newShape);let s=l.util.sizeFromShape(e),a=null;e.length<=1&&s<=r?a=[1,s]:2===e.length&&e[0]<=r&&e[1]<=r?a=e:3===e.length&&e[0]*e[1]<=r&&e[2]<=r?a=[e[0]*e[1],e[2]]:3===e.length&&e[0]<=r&&e[1]*e[2]<=r?a=[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=r&&e[3]<=r?a=[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=r&&e[1]*e[2]*e[3]<=r&&(a=[e[0],e[1]*e[2]*e[3]]);let o=null!=a&&Math.max(...a)>n&&Math.min(...a)<=(t?2:1)&&Math.min(...a)>0;if(null==a||o)if(t){let t=G(e),r=2,n=2;e.length&&([r,n]=V(e)),s=r/2*t*(n/2),a=l.util.sizeToSquarishShape(s).map(e=>2*e)}else a=l.util.sizeToSquarishShape(s);return a}function U(e,t){if(e=e.slice(-2),t=t.slice(-2),l.util.arraysEqual(e,t)||!e.length||!t.length||0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){let r=e[e.length-1],n=t[t.length-1];if(r===n||r%2==0&&n%2==0&&(1===e[0]||1===t[0]))return!0}return e[1]===t[1]&&e[0]%2==0&&t[0]%2==0}function W(e){if(null==s){let t=(0,i.getWebGLContext)(e);s=t.getParameter(t.MAX_TEXTURE_SIZE)}return s}function q(){s=null}function H(){a=null}function K(e){if(null==a){let t=(0,i.getWebGLContext)(e);a=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,a)}function X(e){if(0===e)return 0;let t=(0,i.getWebGLContext)(e);return Z(t,"EXT_disjoint_timer_query_webgl2")&&2===e?2:+!!Z(t,"EXT_disjoint_timer_query")}function Z(e,t){return null!=e.getExtension(t)}function Y(e){try{let t=(0,i.getWebGLContext)(e);if(null!=t)return!0}catch(e){console.log("Error when getting WebGL context: ",e)}return!1}function Q(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!Z(t,"OES_texture_float"))return!1}else if(!Z(t,"EXT_color_buffer_float"))return!1;return ee(t)}function J(e){if(0===e)return!1;let t=(0,i.getWebGLContext)(e);if(1===e){if(!Z(t,"OES_texture_float")||!Z(t,"WEBGL_color_buffer_float"))return!1}else{if(Z(t,"EXT_color_buffer_float"))return ee(t);let e="EXT_color_buffer_half_float";if(Z(t,e)){var r,n;let s,a,o,l,i=t.getExtension(e);return r=t,n=i,s=(0,p.getTextureConfig)(r,n),a=r.createTexture(),r.bindTexture(r.TEXTURE_2D,a),r.texImage2D(r.TEXTURE_2D,0,s.internalFormatHalfFloat,1,1,0,s.textureFormatFloat,s.textureTypeHalfFloat,null),o=r.createFramebuffer(),r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,a,0),l=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE,r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(a),r.deleteFramebuffer(o),l}return!1}return ee(t)}function ee(e){let t=(0,p.getTextureConfig)(e),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,1,1,0,t.textureFormatFloat,t.textureTypeFloat,null);let n=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let s=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),s}function et(e){return 2===e&&null!=(0,i.getWebGLContext)(e).fenceSync}function er(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&l.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}},{"@tensorflow/tfjs-core":"2Gtps","./canvas_util":"hTzxU","./tex_util":"etxDi","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hTzxU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clearWebGLContext",()=>i),s.export(r,"setWebGLContext",()=>p),s.export(r,"getWebGLContext",()=>function e(t,r){if(!(t in o)||null!=r){let e=function(e,t){if(1!==e&&2!==e)throw Error("Cannot get WebGL rendering context, WebGL is disabled.");let r=null==t?function(e){if(!(0,a.env)().getBool("IS_SAFARI")&&"u">typeof OffscreenCanvas&&2===e)return new OffscreenCanvas(300,150);if("u">typeof document)return document.createElement("canvas");throw Error("Cannot create a canvas in this context")}(e):t;return(r.addEventListener("webglcontextlost",t=>{t.preventDefault(),delete o[e]},!1),(0,a.env)().getBool("SOFTWARE_WEBGL_ENABLED")&&(l.failIfMajorPerformanceCaveat=!1),1===e)?r.getContext("webgl",l)||r.getContext("experimental-webgl",l):r.getContext("webgl2",l)}(t,r);if(null===e)return console.log("Could not get context for WebGL version",t),null;o[t]=e}let n=o[t];return null==n||n.isContextLost()?(delete o[t],e(t)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),o[t])});var a=e("@tensorflow/tfjs-core");let o={},l={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function i(e){delete o[e]}function p(e,t){o[e]=t}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],etxDi:[function(e,t,r,n){var s,a,o,l,i,p,u=e("@parcel/transformer-js/src/esmodule-helpers.js");u.defineInteropFlag(r),u.export(r,"PackingScheme",()=>l),u.export(r,"TextureUsage",()=>i),u.export(r,"PhysicalTextureType",()=>p),u.export(r,"getUnpackedMatrixTextureShapeWidthHeight",()=>d),u.export(r,"getUnpackedArraySizeFromMatrixSize",()=>f),u.export(r,"getColorMatrixTextureShapeWidthHeight",()=>m),u.export(r,"getDenseTexShape",()=>h),u.export(r,"getMatrixSizeFromUnpackedArraySize",()=>g),u.export(r,"decodeMatrixFromUnpackedColorRGBAArray",()=>x),u.export(r,"getPackedMatrixTextureShapeWidthHeight",()=>y),u.export(r,"getPackedRGBAArraySizeFromMatrixShape",()=>v),u.export(r,"getTextureConfig",()=>b);var c=e("@tensorflow/tfjs-core");function d(e,t){return[t,e]}function f(e,t){return e*t}function m(e,t){return[4*t,e]}function h(e){let t=Math.ceil(c.util.sizeFromShape(e)/4);return c.util.sizeToSquarishShape(t)}function g(e,t){if(e%t!=0)throw Error(`unpackedSize (${e}) must be a multiple of ${t}`);return e/t}function x(e,t,r){let n=e.length*r/4;if(t.length<n)throw Error(`matrix length (${t.length}) must be >= ${n}`);let s=0;for(let n=0;n<e.length;n+=4)for(let a=0;a<r;a++)t[s++]=e[n+a]}function y(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function v(e,t){let[r,n]=y(e,t);return r*n*4}function b(e,t){let r,n,s,a,o,l,i,p,u,d;return 2===(0,c.env)().getNumber("WEBGL_VERSION")?(r=e.R32F,n=e.R16F,s=e.RGBA16F,a=e.RGBA32F,o=e.RED,i=4,p=1,u=e.HALF_FLOAT,d=e.FLOAT,l=e.RGBA8):(r=e.RGBA,n=e.RGBA,s=e.RGBA,a=e.RGBA,o=e.RGBA,i=4,p=4,u=null!=t?t.HALF_FLOAT_OES:null,d=e.FLOAT,l=e.RGBA),{internalFormatFloat:r,internalFormatHalfFloat:n,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:a,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:i,defaultNumChannels:p,textureTypeHalfFloat:u,textureTypeFloat:d}}(s=l||(l={}))[s.DENSE=0]="DENSE",s[s.SHARED_BATCH=1]="SHARED_BATCH",(a=i||(i={}))[a.RENDER=0]="RENDER",a[a.UPLOAD=1]="UPLOAD",a[a.PIXELS=2]="PIXELS",a[a.DOWNLOAD=3]="DOWNLOAD",(o=p||(p={}))[o.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",o[o.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",o[o.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",o[o.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",o[o.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aOVQe:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DecodeMatrixProgram",()=>p);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class p{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} return ivec3(r, c, d); } void main() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); vec4 result = vec4(0.); for (int i=0; i<4; i++) { int flatIndex = index + i; ivec3 rc = outCoordsFromFlatIndex(flatIndex); result[i] = getA(rc.x, rc.y, rc.z); } ${t.output} = result; } `}}},{"./glsl_version":"dyQn5","./gpgpu_math":"6rFox","./shader_compiler_util":"7L8PC","./tex_util":"etxDi","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dyQn5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getGlslDifferences",()=>o);var a=e("@tensorflow/tfjs-core");function o(){let e,t,r,n,s,o,l,i,p,u;return 2===(0,a.env)().getNumber("WEBGL_VERSION")?(e="#version 300 es",t="in",r="out",n="in",s="texture",o="outputColor",l="out vec4 outputColor;",i=(0,a.env)().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; } bvec4 isnan_custom(vec4 val) { return bvec4(isnan_custom(val.x), isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); } #define isnan(value) isnan_custom(value) `:"",p="",u=` #define round(value) newRound(value) int newRound(float value) { return int(floor(value + 0.5)); } ivec4 newRound(vec4 value) { return ivec4(floor(value + vec4(0.5))); } `):(e="",t="attribute",r="varying",n="varying",s="texture2D",o="gl_FragColor",l="",i=` #define isnan(value) isnan_custom(value) bool isnan_custom(float val) { return (val > 0. || val< 1. || val == 0.) ? false : true; } bvec4 isnan_custom(vec4 val) { return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); } `,p=` uniform float INFINITY; bool isinf(float val) { return abs(val) == INFINITY; } bvec4 isinf(vec4 val) { return equal(abs(val), vec4(INFINITY)); } `,u=` int round(float value) { return int(floor(value + 0.5)); } ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } `),{version:e,attribute:t,varyingVs:r,varyingFs:n,texture2D:s,output:o,defineOutput:l,defineSpecialNaN:i,defineSpecialInf:p,defineRound:u}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6rFox":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"compileProgram",()=>i),s.export(r,"getUniformLocations",()=>p),s.export(r,"runProgram",()=>c),s.export(r,"makeShaderKey",()=>d),s.export(r,"useShapeUniforms",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./shader_compiler"),l=e("./webgl_util");function i(e,t,r,n){let s=r.map((e,r)=>{let n={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked,flatOffset:null};return null!=e.texData&&null!=e.texData.slice&&e.texData.slice.flatOffset>0&&(n.flatOffset=e.texData.slice.flatOffset),{name:t.variableNames[r],shapeInfo:n}}),i=s.map(e=>e.shapeInfo),u={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},c=o.makeShader(s,u,t),d=(0,l.createFragmentShader)(e.gl,c),f=e.createProgram(d);return(0,a.env)().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:u,variablesLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:(e.buildVao(f),Object.assign({program:t,fragmentShader:d,source:c,webGLProgram:f,inShapeInfos:i,outShapeInfo:u},p(e,t,f)))}function p(e,t,r){let n,s,o,l=[],i=[],p=null,u=null;for(let n of(u=e.getUniformLocation(r,"NAN",!1),1===(0,a.env)().getNumber("WEBGL_VERSION")&&(p=e.getUniformLocation(r,"INFINITY",!1)),t.variableNames)){let s={name:n,uniform:e.getUniformLocation(r,n,!1),offset:e.getUniformLocation(r,`offset${n}`,!1)};t.enableShapeUniforms&&(s.shape=e.getUniformLocation(r,`${n}Shape`,!1),s.texShape=e.getUniformLocation(r,`${n}TexShape`,!1)),l.push(s)}if(t.enableShapeUniforms&&(n=e.getUniformLocation(r,"outShape",!1),o=e.getUniformLocation(r,"outShapeStrides",!1),s=e.getUniformLocation(r,"outTexShape",!1)),t.customUniforms)for(let n of t.customUniforms)i.push(e.getUniformLocation(r,n.name,!1));return{variablesLocations:l,customUniformLocations:i,infLoc:p,nanLoc:u,outShapeLocation:n,outShapeStridesLocation:o,outTexShapeLocation:s}}function u(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((e,r)=>{let n=e.logicalShape,s=t[r],o=s.shape;if(!a.util.arraysEqual(n,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${n} and ${o} must match`);if(e.isUniform&&s.isUniform)return;let l=e.texShape,i=s.isUniform?null:s.texData.texShape;if(!a.util.arraysEqual(l,i))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${l} and ${i} must match`)})}function c(e,t,r,n,s){t.program.enableShapeUniforms||(u(t.inShapeInfos,r),u([t.outShapeInfo],[n]));let l=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(l.texture,i[0],i[1]):e.setOutputMatrixTexture(l.texture,i[0],i[1]),e.setProgram(t.webGLProgram),e.bindVertexArray(t.webGLProgram.vao),1===(0,a.env)().getNumber("WEBGL_VERSION")&&null!==t.infLoc&&e.gl.uniform1f(t.infLoc,1/0),null!==t.nanLoc&&e.gl.uniform1f(t.nanLoc,NaN);for(let n=0;n<r.length;++n){let s=r[n],{uniform:l,offset:i,shape:p,texShape:u}=t.variablesLocations[n];if(p){let{uniformShape:r}=o.getUniformInfoFromShape(t.program.packedInputs,s.shape,s.texData.texShape);switch(r.length){case 1:e.gl.uniform1iv(p,new Int32Array(r));break;case 2:e.gl.uniform2iv(p,new Int32Array(r));break;case 3:e.gl.uniform3iv(p,new Int32Array(r));break;case 4:e.gl.uniform4iv(p,new Int32Array(r))}}if(u&&e.gl.uniform2i(u,s.texData.texShape[0],s.texData.texShape[1]),null!=l){if(s.isUniform){if(2>a.util.sizeFromShape(s.shape))e.gl.uniform1f(l,s.uniformValues[0]);else{let t=s.uniformValues;t instanceof Float32Array||(t=new Float32Array(t)),e.gl.uniform1fv(l,t)}continue}null!=s.texData.slice&&null!=i&&e.gl.uniform1i(i,s.texData.slice.flatOffset),e.setInputMatrixTexture(s.texData.texture.texture,l,n)}}let p=t.outShapeLocation;if(p)switch(n.shape.length){case 1:e.gl.uniform1iv(p,new Int32Array(n.shape));break;case 2:e.gl.uniform2iv(p,new Int32Array(n.shape));break;case 3:e.gl.uniform3iv(p,new Int32Array(n.shape));break;case 4:e.gl.uniform4iv(p,new Int32Array(n.shape))}if(t.outShapeStridesLocation){let r=a.util.computeStrides(n.shape);switch(n.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(r));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(r));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(r))}}if(t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&s)for(let r=0;r<t.program.customUniforms.length;++r){let n=t.program.customUniforms[r],a=t.customUniformLocations[r],o=s[r];if("float"===n.type)e.gl.uniform1fv(a,o);else if("vec2"===n.type)e.gl.uniform2fv(a,o);else if("vec3"===n.type)e.gl.uniform3fv(a,o);else if("vec4"===n.type)e.gl.uniform4fv(a,o);else if("int"===n.type)e.gl.uniform1iv(a,o);else if("ivec2"===n.type)e.gl.uniform2iv(a,o);else if("ivec3"===n.type)e.gl.uniform3iv(a,o);else if("ivec4"===n.type)e.gl.uniform4iv(a,o);else throw Error(`uniform type ${n.type} is not supported yet.`)}e.executeProgram()}function d(e,t,r){let n="";t.concat(r).forEach(t=>{let s=null!=t.texData&&null!=t.texData.slice&&t.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!t.isUniform){let l=t.texData.texShape,{useSqueezeShape:i,uniformShape:p,keptDims:u}=o.getUniformInfoFromShape(e.packedInputs,t.shape,l),c="",d="",f="";if(1===p.length&&e.packedInputs){let e=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${e[0]>1}_${e[1]>1}`}else if(2!==p.length||e.packedInputs){if(p.length>2&&!e.packedInputs){let e=a.util.computeStrides(p);f=`${e[0]===l[1]}_${e[e.length-1]===l[1]}`}}else d=`${p[0]>1}_${p[1]>1}`;let m=t.shape.length,h=2===p.length&&a.util.arraysEqual(t.shape,l),g=1===a.util.sizeFromShape(t.shape),x=a.backend_util.getBroadcastDims(t.shape,r.shape),y=!e.packedInputs&&m===r.shape.length&&a.util.arraysEqual(l,r.texData.texShape),v=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;n+=`${m}_${y}_${i?u:""}_${p.length}_${g}_${x}_${h}_${c}_${d}_${f}_${v}_${s}`}else{let e=t.isUniform?"uniform":t.texData.texShape;n+=`${t.shape}_${e}_${s}`}});let s=e.userCode,l=e.constructor.name;return l+("_"+n+"_"+s+`${(0,a.env)().getNumber("WEBGL_VERSION")}`)}function f(e){return(0,a.env)().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}},{"@tensorflow/tfjs-core":"2Gtps","./shader_compiler":"gZjZZ","./webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gZjZZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"makeShader",()=>p),s.export(r,"getCoordsDataType",()=>x),s.export(r,"getUniformInfoFromShape",()=>y),s.export(r,"squeezeInputInfo",()=>v);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./shader_compiler_util");let{getBroadcastDims:i}=a.backend_util;function p(e,t,r){var n,s,p,k;let _,I,j=[];if(e.forEach(e=>{let t=a.util.sizeFromShape(e.shapeInfo.logicalShape);if(e.shapeInfo.isUniform?j.push(`uniform float ${e.name}${t>1?`[${t}]`:""};`):(j.push(`uniform sampler2D ${e.name};`),j.push(`uniform int offset${e.name};`)),r.enableShapeUniforms){let{uniformShape:t}=y(r.packedInputs,e.shapeInfo.logicalShape,e.shapeInfo.texShape);switch(t.length){case 1:j.push(`uniform int ${e.name}Shape;`);break;case 2:j.push(`uniform ivec2 ${e.name}Shape;`);break;case 3:j.push(`uniform ivec3 ${e.name}Shape;`);break;case 4:j.push(`uniform ivec4 ${e.name}Shape;`)}j.push(`uniform ivec2 ${e.name}TexShape;`)}}),r.enableShapeUniforms){switch(t.logicalShape.length){case 1:j.push("uniform int outShape;");break;case 2:j.push("uniform ivec2 outShape;"),j.push("uniform int outShapeStrides;");break;case 3:j.push("uniform ivec3 outShape;"),j.push("uniform ivec2 outShapeStrides;");break;case 4:j.push("uniform ivec4 outShape;"),j.push("uniform ivec3 outShapeStrides;")}j.push("uniform ivec2 outTexShape;")}r.customUniforms&&r.customUniforms.forEach(e=>{j.push(`uniform ${e.type} ${e.name}${e.arrayIndex?`[${e.arrayIndex}]`:""};`)});let w=j.join("\n"),T=e.map(e=>(function(e,t,r=!1,n){let s="";r?s+=function e(t,r){switch(t.shapeInfo.logicalShape.length){case 0:let n,s,l;return s="get"+(n=t.name).charAt(0).toUpperCase()+n.slice(1),l=(0,o.getGlslDifferences)(),` vec4 ${s}() { return ${l.texture2D}(${n}, halfCR); } `;case 1:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=e.shapeInfo.texShape,a=(0,o.getGlslDifferences)();if(t)return` vec4 ${n}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( packedTexShape[0], packedTexShape[1], index); return ${a.texture2D}(${r}, uv); } `;let l=[Math.ceil(s[0]/2),Math.ceil(s[1]/2)];return` vec4 ${n}(int index) { vec2 uv = packedUVfrom1D( ${l[0]}, ${l[1]}, index); return ${a.texture2D}(${r}, uv); } `}(t,r);case 2:return function(e,t){let r=e.shapeInfo.logicalShape,n=e.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),l=e.shapeInfo.texShape,i=l[0],p=l[1],u=(0,o.getGlslDifferences)();if(null!=l&&a.util.arraysEqual(r,l))return t?` vec4 ${s}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); return ${u.texture2D}(${n}, uv); } `:` vec4 ${s}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${p}.0, ${i}.0); return ${u.texture2D}(${n}, uv); } `;if(t)return` vec4 ${s}(int row, int col) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); int valuesPerRow = int(ceil(float(${n}Shape[1]) / 2.0)); vec2 uv = packedUVfrom2D(valuesPerRow, packedTexShape[0], packedTexShape[1], row, col); return ${u.texture2D}(${n}, uv); } `;let c=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)],d=Math.ceil(r[1]/2);return` vec4 ${s}(int row, int col) { vec2 uv = packedUVfrom2D(${d}, ${c[0]}, ${c[1]}, row, col); return ${u.texture2D}(${n}, uv); } `}(t,r);case 3:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,a="get"+s.charAt(0).toUpperCase()+s.slice(1),l=t.shapeInfo.texShape,i=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];if(1===n[0]){let s=v(t,n.slice(1));return` ${e(s,r)} vec4 ${a}(int b, int row, int col) { return ${a}(${b(["b","row","col"],[1,2])}); } `}let p=(0,o.getGlslDifferences)();if(r)return` vec4 ${a}(int b, int row, int col) { ivec2 packedTexShape = ivec2(ceil(float(${s}TexShape[0]) / 2.0), ceil(float(${s}TexShape[1]) / 2.0)); int valuesPerRow = int(ceil(float(${s}Shape[2]) / 2.0)); int texelsInBatch = valuesPerRow * int(ceil(float(${s}Shape[1]) / 2.0)); vec2 uv = packedUVfrom3D( packedTexShape[0], packedTexShape[1], texelsInBatch, valuesPerRow, b, row, col); return ${p.texture2D}(${s}, uv); } `;let u=i[0],c=i[1],d=Math.ceil(n[2]/2),f=d*Math.ceil(n[1]/2);return` vec4 ${a}(int b, int row, int col) { vec2 uv = packedUVfrom3D( ${u}, ${c}, ${f}, ${d}, b, row, col); return ${p.texture2D}(${s}, uv); } `}(t,r);default:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1),s=(0,o.getGlslDifferences)();if(t)return` vec4 ${n}(int b2, int b, int row, int col) { int valuesPerRow = int(ceil(float(${r}Shape[3]) / 2.0)); int texelsInBatch = valuesPerRow * int(ceil(float(${r}Shape[2]) / 2.0)); int index = b * texelsInBatch + (row / 2) * valuesPerRow + (col / 2); texelsInBatch *= ${r}Shape[1]; index = b2 * texelsInBatch + index; ivec2 packedTexShape = ivec2(ceil(float(${r}TexShape[0]) / 2.0), ceil(float(${r}TexShape[1]) / 2.0)); int texR = index / packedTexShape[1]; int texC = index - texR * packedTexShape[1]; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(packedTexShape[1], packedTexShape[0]); return ${s.texture2D}(${r}, uv); } `;let a=e.shapeInfo.logicalShape,l=a.length,i=e.shapeInfo.texShape,p=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)],u=p[0],c=p[1],d=Math.ceil(a[l-1]/2),f=d*Math.ceil(a[l-2]/2),m="int b, int row, int col",h=`b * ${f} + (row / 2) * ${d} + (col / 2)`;for(let e=2;e<l-1;e++)m=`int b${e}, `+m,f*=a[l-e-1],h=`b${e} * ${f} + `+h;return` vec4 ${n}(${m}) { int index = ${h}; int texR = index / ${c}; int texC = index - texR * ${c}; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${c}, ${u}); return ${s.texture2D}(${r}, uv); } `}(t,r)}}(e,n):s+=function e(t,r=!1){let n=t.shapeInfo.logicalShape;switch(n.length){case 0:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1);if(e.shapeInfo.isUniform)return`float ${n}() {return ${r};}`;let[s,a]=e.shapeInfo.texShape;if(1===s&&1===a)return` float ${n}() { return sampleTexture(${r}, halfCR); } `;let o=h(r);if(t)return` float ${n}() { vec2 uv = uvFromFlat(${r}TexShape[0], ${r}TexShape[1], ${o}); return sampleTexture(${r}, uv); } `;let[l,i]=e.shapeInfo.texShape;return` float ${n}() { vec2 uv = uvFromFlat(${l}, ${i}, ${o}); return sampleTexture(${r}, uv); } `}(t,r);case 1:return function(e,t){let r=e.name,n="get"+r.charAt(0).toUpperCase()+r.slice(1);if(e.shapeInfo.isUniform)return` float ${n}(int index) { ${g(e)} } `;let s=e.shapeInfo.texShape,a=s[0],o=s[1];if(1===o&&1===a)return` float ${n}(int index) { return sampleTexture(${r}, halfCR); } `;let l=h(r);return 1===o?t?` float ${n}(int index) { vec2 uv = vec2(0.5, (float(index + ${l}) + 0.5) / float(${r}TexShape[0])); return sampleTexture(${r}, uv); } `:` float ${n}(int index) { vec2 uv = vec2(0.5, (float(index + ${l}) + 0.5) / ${a}.0); return sampleTexture(${r}, uv); } `:1===a?t?` float ${n}(int index) { vec2 uv = vec2((float(index + ${l}) + 0.5) / float(${r}TexShape[1]), 0.5); return sampleTexture(${r}, uv); } `:` float ${n}(int index) { vec2 uv = vec2((float(index + ${l}) + 0.5) / ${o}.0, 0.5); return sampleTexture(${r}, uv); } `:t?` float ${n}(int index) { vec2 uv = uvFromFlat(${r}TexShape[0], ${r}TexShape[1], index + ${l}); return sampleTexture(${r}, uv); } `:` float ${n}(int index) { vec2 uv = uvFromFlat(${a}, ${o}, index + ${l}); return sampleTexture(${r}, uv); } `}(t,r);case 2:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,o="get"+s.charAt(0).toUpperCase()+s.slice(1),l=t.shapeInfo.texShape;if(null!=l&&a.util.arraysEqual(n,l)){if(r)return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `;let e=l[0],t=l[1];return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${t}.0, ${e}.0); return sampleTexture(${s}, uv); } `}let{newShape:i,keptDims:p}=a.util.squeezeShape(n);if(i.length<n.length){let n=v(t,i);return` ${e(n,r)} float ${o}(int row, int col) { return ${o}(${b(["row","col"],p)}); } `}if(t.shapeInfo.isUniform)return` float ${o}(int row, int col) { int index = round(dot(vec2(row, col), vec2(${n[1]}, 1))); ${g(t)} } `;let u=l[0],c=l[1],d=h(s);return 1===c?r?` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${s}Shape[1], 1, 1)); vec2 uv = vec2(0.5, (index + 0.5) / float(${s}TexShape[0])); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${n[1]}, 1, 1)); vec2 uv = vec2(0.5, (index + 0.5) / ${u}.0); return sampleTexture(${s}, uv); } `:1===u?r?` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${s}Shape[1], 1, 1)); vec2 uv = vec2((index + 0.5) / float(${s}TexShape[1]), 0.5); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col) { float index = dot(vec3(row, col, ${d}), vec3(${n[1]}, 1, 1)); vec2 uv = vec2((index + 0.5) / ${c}.0, 0.5); return sampleTexture(${s}, uv); } `:r?` float ${o}(int row, int col) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${s}Shape[1] + col + ${d}; vec2 uv = uvFromFlat(${s}TexShape[0], ${s}TexShape[1], index); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${n[1]} + col + ${d}; vec2 uv = uvFromFlat(${u}, ${c}, index); return sampleTexture(${s}, uv); } `}(t,r);case 3:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,o="get"+s.charAt(0).toUpperCase()+s.slice(1),l=n[1]*n[2],i=n[2],{newShape:p,keptDims:u}=a.util.squeezeShape(n);if(p.length<n.length){let n=v(t,p);return` ${e(n,r)} float ${o}(int row, int col, int depth) { return ${o}(${b(["row","col","depth"],u)}); } `}if(t.shapeInfo.isUniform)return` float ${o}(int row, int col, int depth) { int index = round(dot(vec3(row, col, depth), vec3(${l}, ${i}, 1))); ${g(t)} } `;let c=t.shapeInfo.texShape,d=c[0],f=c[1],m=t.shapeInfo.flatOffset;if(f===l&&null==m)return r?` float ${o}(int row, int col, int depth) { int stride1 = ${s}Shape[2]; float texR = float(row); float texC = dot(vec2(col, depth), vec2(stride1, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth) { float texR = float(row); float texC = dot(vec2(col, depth), vec2(${i}, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${f}.0, ${d}.0); return sampleTexture(${s}, uv); } `;if(f===i&&null==m)return r?` float ${o}(int row, int col, int depth) { float texR = dot(vec2(row, col), vec2(${s}Shape[1], 1)); float texC = float(depth); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth) { float texR = dot(vec2(row, col), vec2(${n[1]}, 1)); float texC = float(depth); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${f}.0, ${d}.0); return sampleTexture(${s}, uv); } `;let x=h(s);return r?` float ${o}(int row, int col, int depth) { // Explicitly use integer operations as dot() only works on floats. int stride0 = ${s}Shape[1] * ${s}Shape[2]; int stride1 = ${s}Shape[2]; int index = row * stride0 + col * stride1 + depth + ${x}; vec2 uv = uvFromFlat(${s}TexShape[0], ${s}TexShape[1], index); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${l} + col * ${i} + depth + ${x}; vec2 uv = uvFromFlat(${d}, ${f}, index); return sampleTexture(${s}, uv); } `}(t,r);case 4:return function(t,r){let n=t.shapeInfo.logicalShape,s=t.name,o="get"+s.charAt(0).toUpperCase()+s.slice(1),l=n[3],i=n[2]*l,p=n[1]*i,{newShape:u,keptDims:c}=a.util.squeezeShape(n);if(u.length<n.length){let n=v(t,u);return` ${e(n,r)} float ${o}(int row, int col, int depth, int depth2) { return ${o}(${b(["row","col","depth","depth2"],c)}); } `}if(t.shapeInfo.isUniform)return` float ${o}(int row, int col, int depth, int depth2) { int index = round(dot(vec4(row, col, depth, depth2), vec4(${p}, ${i}, ${l}, 1))); ${g(t)} } `;let d=t.shapeInfo.flatOffset,f=t.shapeInfo.texShape,m=f[0],x=f[1],y=`int stride2 = ${s}Shape[3];`,k=`int stride1 = ${s}Shape[2] * stride2;`,_=`int stride0 = ${s}Shape[1] * stride1;`;if(x===p&&null==d)return r?` float ${o}(int row, int col, int depth, int depth2) { ${y} ${k} float texR = float(row); float texC = dot(vec3(col, depth, depth2), vec3(stride1, stride2, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth, int depth2) { float texR = float(row); float texC = dot(vec3(col, depth, depth2), vec3(${i}, ${l}, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${m}.0); return sampleTexture(${s}, uv); } `;if(x===l&&null==d)return r?` float ${o}(int row, int col, int depth, int depth2) { float texR = dot(vec3(row, col, depth), vec3(${s}Shape[1] * ${s}Shape[2], ${s}Shape[2], 1)); float texC = float(depth2); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${s}TexShape[1], ${s}TexShape[0]); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth, int depth2) { float texR = dot(vec3(row, col, depth), vec3(${n[1]*n[2]}, ${n[2]}, 1)); float texC = float(depth2); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${m}.0); return sampleTexture(${s}, uv); } `;let I=h(s);return r?` float ${o}(int row, int col, int depth, int depth2) { // Explicitly use integer operations as dot() only works on floats. ${y} ${k} ${_} int index = row * stride0 + col * stride1 + depth * stride2 + depth2; vec2 uv = uvFromFlat(${s}TexShape[0], ${s}TexShape[1], index + ${I}); return sampleTexture(${s}, uv); } `:` float ${o}(int row, int col, int depth, int depth2) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${p} + col * ${i} + depth * ${l} + depth2; vec2 uv = uvFromFlat(${m}, ${x}, index + ${I}); return sampleTexture(${s}, uv); } `}(t,r);case 5:return function(t){let r=t.shapeInfo.logicalShape,n=t.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),o=r[4],l=r[3]*o,i=r[2]*l,p=r[1]*i,{newShape:u,keptDims:c}=a.util.squeezeShape(r);if(u.length<r.length){let r=v(t,u);return` ${e(r)} float ${s}(int row, int col, int depth, int depth2, int depth3) { return ${s}(${b(["row","col","depth","depth2","depth3"],c)}); } `}if(t.shapeInfo.isUniform)return` float ${s}(int row, int col, int depth, int depth2, int depth3) { float index = dot( vec4(row, col, depth, depth2), vec4(${p}, ${i}, ${l}, ${o})) + depth3; ${g(t)} } `;let d=t.shapeInfo.flatOffset,f=t.shapeInfo.texShape,m=f[0],x=f[1];if(x===p&&null==d)return` float ${s}(int row, int col, int depth, int depth2, int depth3) { int texR = row; float texC = dot(vec4(col, depth, depth2, depth3), vec4(${i}, ${l}, ${o}, 1)); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${m}.0); return sampleTexture(${n}, uv); } `;if(x===o&&null==d)return` float ${s}(int row, int col, int depth, int depth2, int depth3) { float texR = dot( vec4(row, col, depth, depth2), vec4(${r[1]*r[2]*r[3]}, ${r[2]*r[3]}, ${r[3]}, 1)); int texC = depth3; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${x}.0, ${m}.0); return sampleTexture(${n}, uv); } `;let y=h(n);return` float ${s}(int row, int col, int depth, int depth2, int depth3) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${p} + col * ${i} + depth * ${l} + depth2 * ${o} + depth3 + ${y}; vec2 uv = uvFromFlat(${m}, ${x}, index); return sampleTexture(${n}, uv); } `}(t);case 6:return function(t){let r=t.shapeInfo.logicalShape,n=t.name,s="get"+n.charAt(0).toUpperCase()+n.slice(1),{newShape:o,keptDims:l}=a.util.squeezeShape(r);if(o.length<r.length){let r=v(t,o);return` ${e(r)} float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { return ${s}(${b(["row","col","depth","depth2","depth3","depth4"],l)}); } `}let i=r[5],p=r[4]*i,u=r[3]*p,c=r[2]*u,d=r[1]*c;if(t.shapeInfo.isUniform)return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { int index = round(dot( vec4(row, col, depth, depth2), vec4(${d}, ${c}, ${u}, ${p})) + dot( vec2(depth3, depth4), vec2(${i}, 1))); ${g(t)} } `;let f=t.shapeInfo.flatOffset,m=t.shapeInfo.texShape,x=m[0],y=m[1];if(y===d&&null==f)return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { int texR = row; float texC = dot(vec4(col, depth, depth2, depth3), vec4(${c}, ${u}, ${p}, ${i})) + float(depth4); vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${y}.0, ${x}.0); return sampleTexture(${n}, uv); } `;if(y===i&&null==f)return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { float texR = dot(vec4(row, col, depth, depth2), vec4(${r[1]*r[2]*r[3]*r[4]}, ${r[2]*r[3]*r[4]}, ${r[3]*r[4]}, ${r[4]})) + float(depth3); int texC = depth4; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${y}.0, ${x}.0); return sampleTexture(${n}, uv); } `;let k=h(n);return` float ${s}(int row, int col, int depth, int depth2, int depth3, int depth4) { // Explicitly use integer operations as dot() only works on floats. int index = row * ${d} + col * ${c} + depth * ${u} + depth2 * ${p} + depth3 * ${i} + depth4 + ${k}; vec2 uv = uvFromFlat(${x}, ${y}, index); return sampleTexture(${n}, uv); } `}(t);default:throw Error(`${n.length}-D input sampling is not yet supported`)}}(e,n);let l=e.shapeInfo.logicalShape,p=t.logicalShape;return l.length<=p.length&&(r?s+=function(e,t){let r,n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length,p=i(e.shapeInfo.logicalShape,t.logicalShape),u=x(l),c=l-o,d=["x","y","z","w","u","v"];r=0===o?"":l<2&&p.length>=1?"coords = 0;":p.map(e=>`coords.${d[e+c]} = 0;`).join("\n");let f="";f=l<2&&o>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${d[t+c]}`).join(", ");let m="return outputValue;",h=1===a.util.sizeFromShape(e.shapeInfo.logicalShape),g=1===a.util.sizeFromShape(t.logicalShape);if(1!==o||h||g){if(h&&!g)m=1===l?` return vec4(outputValue.x, outputValue.x, 0., 0.); `:` return vec4(outputValue.x); `;else if(p.length){let e=o-2,t=o-1;p.indexOf(e)>-1&&p.indexOf(t)>-1?m="return vec4(outputValue.x);":p.indexOf(e)>-1?m="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":p.indexOf(t)>-1&&(m="return vec4(outputValue.xx, outputValue.zz);")}}else m=` return vec4(outputValue.xy, outputValue.xy); `;return` vec4 ${"get"+s+"AtOutCoords"}() { ${u} coords = getOutputCoords(); ${r} vec4 outputValue = get${s}(${f}); ${m} } `}(e,t):s+=function(e,t){let r,n=e.name,s=n.charAt(0).toUpperCase()+n.slice(1),o="get"+s+"AtOutCoords",l=t.texShape,p=e.shapeInfo.texShape,u=e.shapeInfo.logicalShape.length,c=t.logicalShape.length;if(!e.shapeInfo.isUniform&&u===c&&null==e.shapeInfo.flatOffset&&a.util.arraysEqual(p,l))return` float ${o}() { return sampleTexture(${n}, resultUV); } `;let d=x(c),f=i(e.shapeInfo.logicalShape,t.logicalShape),m=c-u,h=["x","y","z","w","u","v"];r=0===u?"":c<2&&f.length>=1?"coords = 0;":f.map(e=>`coords.${h[e+m]} = 0;`).join("\n");let g="";return g=c<2&&u>0?"coords":e.shapeInfo.logicalShape.map((e,t)=>`coords.${h[t+m]}`).join(", "),` float ${o}() { ${d} coords = getOutputCoords(); ${r} return get${s}(${g}); } `}(e,t)),s})(e,t,r.packedInputs,r.enableShapeUniforms)).join("\n"),S=t.texShape,C=(0,o.getGlslDifferences)(),N=(n=C,` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${n.texture2D}(textureSampler, uv).r; } `),E=(s=C,`${s.version} precision highp float; precision highp int; precision highp sampler2D; ${s.varyingFs} vec2 resultUV; ${s.defineOutput} const vec2 halfCR = vec2(0.5, 0.5); struct ivec5 { int x; int y; int z; int w; int u; }; struct ivec6 { int x; int y; int z; int w; int u; int v; }; uniform float NAN; ${s.defineSpecialNaN} ${s.defineSpecialInf} ${s.defineRound} int imod(int x, int y) { return x - y * (x / y); } int idiv(int a, int b, float sign) { int res = a / b; int mod = imod(a, b); if (sign< 0. && mod != 0) { res -= 1; } return res; } //Based on the work of Dave Hoskins //https://www.shadertoy.com/view/4djSRW #define HASHSCALE1 443.8975 float random(float seed){ vec2 p = resultUV * seed; vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); p3 += dot(p3, p3.yzx + 19.19); return fract((p3.x + p3.y) * p3.z); } ${u} ${c} ${d} `);return t.isPacked?(_=function(e,t,r){switch(e.length){case 0:return m();case 1:var n,s;let o;return n=t,s=r,1===(o=[Math.ceil(n[0]/2),Math.ceil(n[1]/2)])[0]?s?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } `:` int getOutputCoords() { return 2 * int(resultUV.x * ${o[1]}.0); } `:1===o[1]?s?` int getOutputCoords() { return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0)); } `:` int getOutputCoords() { return 2 * int(resultUV.y * ${o[0]}.0); } `:s?` int getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y); } `:` int getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${o[0]}, ${o[1]})); return 2 * (resTexRC.x * ${o[1]} + resTexRC.y); } `;case 2:var l=e,i=t,p=r;let u=[Math.ceil(i[0]/2),Math.ceil(i[1]/2)];if(a.util.arraysEqual(l,i))return p?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); } `:` ivec2 getOutputCoords() { return 2 * ivec2(resultUV.yx * vec2(${u[0]}, ${u[1]})); } `;let c=Math.ceil(l[1]/2);return p?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); int index = resTexRC.x * packedTexShape[1] + resTexRC.y; int r = 2 * (index / texelsInLogicalRow); int c = imod(index, texelsInLogicalRow) * 2; return ivec2(r, c); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${u[0]}, ${u[1]})); int index = resTexRC.x * ${u[1]} + resTexRC.y; int r = 2 * (index / ${c}); int c = imod(index, ${c}) * 2; return ivec2(r, c); } `;case 3:var d=e,f=t,h=r;if(h)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); int index = resTexRC.x * packedTexShape[1] + resTexRC.y; int b = index / texelsInBatch; index -= b * texelsInBatch; int r = 2 * (index / texelsInLogicalRow); int c = imod(index, texelsInLogicalRow) * 2; return ivec3(b, r, c); } `;let g=[Math.ceil(f[0]/2),Math.ceil(f[1]/2)],x=Math.ceil(d[2]/2),y=x*Math.ceil(d[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${g[0]}, ${g[1]})); int index = resTexRC.x * ${g[1]} + resTexRC.y; int b = index / ${y}; index -= b * ${y}; int r = 2 * (index / ${x}); int c = imod(index, ${x}) * 2; return ivec3(b, r, c); } `;default:return function(e,t,r){if(r)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); int index = resTexRC.x * packedTexShape[1] + resTexRC.y; int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0)); int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0)); int texelsInBatchN = texelsInBatch * outShape[1]; int b2 = index / texelsInBatchN; index -= b2 * texelsInBatchN; int b = index / texelsInBatch; index -= b * texelsInBatch; int r = 2 * (index / texelsInLogicalRow); int c = imod(index, texelsInLogicalRow) * 2; return ivec4(b2, b, r, c); } `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],s=Math.ceil(e[e.length-1]/2),a=s*Math.ceil(e[e.length-2]/2),o=a,l="",i="b, r, c";for(let t=2;t<e.length-1;t++)o*=e[e.length-t-1],l=` int b${t} = index / ${o}; index -= b${t} * ${o}; `+l,i=`b${t}, `+i;return` ivec${e.length} getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); int index = resTexRC.x * ${n[1]} + resTexRC.y; ${l} int b = index / ${a}; index -= b * ${a}; int r = 2 * (index / ${s}); int c = imod(index, ${s}) * 2; return ivec${e.length}(${i}); } `}(e,t,r)}}(t.logicalShape,S,r.enableShapeUniforms),p=C,I=` void setOutput(vec4 val) { ${p.output} = val; } `):(_=function(e,t,r){switch(e.length){case 0:return m();case 1:return n=t,s=r,1===n[0]?s?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } `:` int getOutputCoords() { return int(resultUV.x * ${n[1]}.0); } `:1===n[1]?s?` int getOutputCoords() { return int(resultUV.y * float(outTexShape[0])); } `:` int getOutputCoords() { return int(resultUV.y * ${n[0]}.0); } `:s?` int getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); return resTexRC.x * outTexShape[1] + resTexRC.y; } `:` int getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${n[0]}, ${n[1]})); return resTexRC.x * ${n[1]} + resTexRC.y; } `;case 2:return o=e,i=t,p=r,a.util.arraysEqual(o,i)?p?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } `:` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); } `:1===o[1]?p?` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; return ivec2(index, 0); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); int index = resTexRC.x * ${i[1]} + resTexRC.y; return ivec2(index, 0); } `:1===o[0]?p?` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; return ivec2(0, index); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); int index = resTexRC.x * ${i[1]} + resTexRC.y; return ivec2(0, index); } `:p?` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; int r = index / outShape[1]; int c = index - r * outShape[1]; return ivec2(r, c); } `:` ivec2 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${i[0]}, ${i[1]})); int index = resTexRC.x * ${i[1]} + resTexRC.y; int r = index / ${o[1]}; int c = index - r * ${o[1]}; return ivec2(r, c); } `;case 3:var n,s,o,i,p,u,c,d,f,h=e,g=t,x=r;if(x){let e=l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],h);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; ${e} return ivec3(r, c, d); } `}let y=l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],h);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${g[0]}, ${g[1]})); int index = resTexRC.x * ${g[1]} + resTexRC.y; ${y} return ivec3(r, c, d); } `;case 4:var v=e,b=t,k=r;if(k){let e=l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d","d2"],v);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; ${e} return ivec4(r, c, d, d2); } `}let _=l.getLogicalCoordinatesFromFlatIndex(["r","c","d","d2"],v);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${b[0]}, ${b[1]})); int index = resTexRC.x * ${b[1]} + resTexRC.y; ${_} return ivec4(r, c, d, d2); } `;case 5:let I;return u=e,c=t,I=l.getLogicalCoordinatesFromFlatIndex(["r","c","d","d2","d3"],u),` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${c[0]}, ${c[1]})); int index = resTexRC.x * ${c[1]} + resTexRC.y; ${I} ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } `;case 6:let j;return d=e,f=t,j=l.getLogicalCoordinatesFromFlatIndex(["r","c","d","d2","d3","d4"],d),` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${f[0]}, ${f[1]})); int index = resTexRC.x * ${f[1]} + resTexRC.y; ${j} ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } `;default:throw Error(`${e.length}-D output sampling is not yet supported`)}}(t.logicalShape,S,r.enableShapeUniforms),k=C,I=` void setOutput(float val) { ${k.output} = vec4(val, 0, 0, 0); } `),r.packedInputs&&(E+=f),[E,N,I,w,_,T,r.userCode].join("\n")}let u=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texelIndex = index / 2; int texR = texelIndex / texNumC; int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } `,c=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); int texR = texelIndex / texNumC; int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } `,d=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); int texR = index / texNumC; int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } `,f=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? (modCoord.y == 0. ? frag.r : frag.g) : (modCoord.y == 0. ? frag.b : frag.a); } float getChannel(vec4 frag, int dim) { float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } `;function m(){return` int getOutputCoords() { return 0; } `}function h(e){return`offset${e}`}function g(e){let t=e.name,r=a.util.sizeFromShape(e.shapeInfo.logicalShape);return r<2?`return ${t};`:` for (int i = 0; i < ${r}; i++) { if (i == index) { return ${t}[i]; } } `}function x(e){if(e<=1)return"int";if(2===e)return"ivec2";if(3===e)return"ivec3";if(4===e)return"ivec4";if(5===e)return"ivec5";else if(6===e)return"ivec6";else throw Error(`GPU for rank ${e} is not yet supported`)}function y(e,t,r){let{newShape:n,keptDims:s}=a.util.squeezeShape(t),o=t.length,l=e&&3===o&&1===t[0],i=l?t.slice(1):n,p=!e&&o>1&&!a.util.arraysEqual(t,r)&&n.length<o||l,u=p?i:t;return{useSqueezeShape:p,uniformShape:u,keptDims:s}}function v(e,t){let r=JSON.parse(JSON.stringify(e));return r.shapeInfo.logicalShape=t,r}function b(e,t){return t.map(t=>e[t]).join(", ")}},{"@tensorflow/tfjs-core":"2Gtps","./glsl_version":"dyQn5","./shader_compiler_util":"7L8PC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7L8PC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"getLogicalCoordinatesFromFlatIndex",()=>o),s.export(r,"getOutputLogicalCoordinatesFromFlatIndexByUniform",()=>l),s.export(r,"getLogicalCoordinatesFromFlatIndexByUniform",()=>i),s.export(r,"dotify",()=>u),s.export(r,"getFlatIndexFrom3D",()=>c),s.export(r,"getFlatIndexFrom3DOutput",()=>d),s.export(r,"ENCODE_FLOAT_SNIPPET",()=>f);var a=e("@tensorflow/tfjs-core");function o(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${t}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${t}`:`index -= ${e[s]} * ${t}`;return`${a}; ${o};`}).join("")}function l(e,t,r="index"){let n=a.util.computeStrides(t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / outShapeStrides[${s}]`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${a}; ${o};`}).join("")}function i(e,t,r="index"){let n=function(e,t){let r=e.length,n=e.map(e=>`${t}[${e}]`),s=Array(r-1);s[r-2]=n[r-1];for(let e=r-3;e>=0;--e)s[e]=`(${s[e+1]} * ${n[e+1]})`;return s}(e.map((e,t)=>t),t);return n.map((t,s)=>{let a=`int ${e[s]} = ${r} / ${n[s]}`,o=s===n.length-1?`int ${e[s+1]} = ${r} - ${e[s]} * ${n[s]}`:`index -= ${e[s]} * ${n[s]}`;return`${a}; ${o};`}).join("")}function p(e){return 1===e.length?`${e[0]}`:`vec${e.length}(${e.join(",")})`}function u(e,t){if(e.length!==t.length)throw Error(`Vectors to be dotted must be of the same length -got ${e.length} and ${t.length}`);let r=[],n=Math.floor(e.length/4),s=e.length%4;for(let s=0;s<n;s++){let n=e.slice(4*s,4*s+4),a=t.slice(4*s,4*s+4);r.push(`${p(n)}, ${p(a)}`)}if(0!==s){let s=e.slice(4*n),a=t.slice(4*n);1===s.length&&(s=s.map(e=>`float(${e})`),a=a.map(e=>`float(${e})`)),r.push(`${p(s)}, ${p(a)}`)}return r.map((e,t)=>`dot(${e})`).join("+")}function c(e){let t=a.util.computeStrides(e).map(e=>e.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } `}function d(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } `}let f=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; lowp vec4 encode_float(highp float v) { if (isnan(v)) { return vec4(255, 255, 255, 255); } highp float av = abs(v); if(av< FLOAT_MIN) { return vec4(0.0, 0.0, 0.0, 0.0); } else if(v >FLOAT_MAX) { return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; } else if(v< -FLOAT_MAX) { return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; } highp vec4 c = vec4(0,0,0,0); highp float e = floor(log2(av)); highp float m = exp2(fract(log2(av))) - 1.0; c[2] = floor(128.0 * m); m -= c[2] / 128.0; c[1] = floor(32768.0 * m); m -= c[1] / 32768.0; c[0] = floor(8388608.0 * m); highp float ebias = e + 127.0; c[3] = floor(ebias / 2.0); ebias -= c[3] * 2.0; c[2] += floor(ebias) * 128.0; c[3] += 128.0 * step(0.0, -v); return c / 255.0; } `},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hlqVO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DecodeMatrixPackedProgram",()=>p);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util"),i=e("./tex_util");class p{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=i.PackingScheme.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];const t=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${this.enableShapeUniforms?l.getOutputLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],e):l.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e)} return ivec3(r, c, d); } void main() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1])); int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y); vec4 result = vec4(0.); for (int i=0; i<4; i++) { int flatIndex = index + i; ivec3 rc = outCoordsFromFlatIndex(flatIndex); result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); } ${t.output} = result; } `}}},{"./glsl_version":"dyQn5","./gpgpu_math":"6rFox","./shader_compiler_util":"7L8PC","./tex_util":"etxDi","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cxN1O:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.outTexUsage=l.TextureUsage.DOWNLOAD;const t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` ${o.ENCODE_FLOAT_SNIPPET} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } `}}},{"./glsl_version":"dyQn5","./shader_compiler_util":"7L8PC","./tex_util":"etxDi","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aLuep:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeFloatPackedProgram",()=>i);var a=e("./glsl_version"),o=e("./shader_compiler_util"),l=e("./tex_util");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=l.TextureUsage.DOWNLOAD;const t=(0,a.getGlslDifferences)();this.outputShape=e,this.userCode=` ${o.ENCODE_FLOAT_SNIPPET} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } `}}},{"./glsl_version":"dyQn5","./shader_compiler_util":"7L8PC","./tex_util":"etxDi","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bKqj1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeMatrixProgram",()=>p);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");let i={R:0,G:1,B:2,A:3};class p{constructor(e,t=!1,r="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];const n=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let s="result";t&&(s="floor(result * 255. + 0.5)");let p="";for(let e=0;e<r.length;e++){const t=r[e];p+=` if(offset == ${e}) { result = values[${i[t]}]; }`}this.userCode=` ${this.enableShapeUniforms?l.getFlatIndexFrom3DOutput():l.getFlatIndexFrom3D(e)} void main() { ivec3 coords = getOutputCoords(); int flatIndex = getFlatIndex(coords); float result = 0.; int offset = imod(flatIndex, ${r.length}); flatIndex = idiv(flatIndex, ${r.length}, 1.); int r = flatIndex / texShape[1]; if (r < texShape[0]) { int c = imod(flatIndex, texShape[1]); vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]); vec4 values = ${n.texture2D}(A, uv); ${p} } ${n.output} = vec4(${s}, 0., 0., 0.); } `}}},{"./glsl_version":"dyQn5","./gpgpu_math":"6rFox","./shader_compiler_util":"7L8PC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2Edkx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EncodeMatrixPackedProgram",()=>i);var a=e("./glsl_version"),o=e("./gpgpu_math"),l=e("./shader_compiler_util");class i{constructor(e,t=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.customUniforms=[{name:"texShape",type:"ivec2"}];const r=(0,a.getGlslDifferences)();this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);let n="",s="result";t&&(s="floor(result * 255. + 0.5)");for(let t=0;t<=1;t++)for(let s=0;s<=1;s++){const a=2*t+s;n+=` localCoords = coords; if(localCoords[2] + ${s} < ${this.enableShapeUniforms?"outShape[2]":`${e[2]}`}) { localCoords[2] += ${s}; if (localCoords[1] + ${t} < ${this.enableShapeUniforms?"outShape[1]":`${e[1]}`}) { localCoords[1] += ${t}; flatIndex = getFlatIndex(localCoords); offset = imod(flatIndex, 4); flatIndex = idiv(flatIndex, 4, 1.); int r = flatIndex / texShape[1]; int c = imod(flatIndex, texShape[1]); vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]); values = ${r.texture2D}(A, uv); if (offset == 0) { result[${a}] = values[0]; } else if (offset == 1) { result[${a}] = values[1]; } else if (offset == 2) { result[${a}] = values[2]; } else { result[${a}] = values[3]; } } } `}this.userCode=` ${this.enableShapeUniforms?l.getFlatIndexFrom3DOutput():l.getFlatIndexFrom3D(e)} void main() { ivec3 coords = getOutputCoords(); vec4 result = vec4(0.); int flatIndex, r, c, offset; ivec3 localCoords; vec2 uv; vec4 values; ${n} ${r.output} = ${s}; } `}}},{"./glsl_version":"dyQn5","./gpgpu_math":"6rFox","./shader_compiler_util":"7L8PC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eJgSB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GPGPUContext",()=>u),s.export(r,"linearSearchLastTrue",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./canvas_util"),l=e("./gpgpu_util"),i=e("./tex_util"),p=e("./webgl_util");class u{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];const t=(0,a.env)().getNumber("WEBGL_VERSION");if(null!=e?(this.gl=e,(0,o.setWebGLContext)(t,e)):this.gl=(0,o.getWebGLContext)(t),e=this.gl,2===(0,a.env)().getNumber("WEBGL_VERSION")){const t=e;this.createVertexArray=()=>p.callAndCheck(t,()=>t.createVertexArray()),this.bindVertexArray=e=>p.callAndCheck(t,()=>t.bindVertexArray(e)),this.deleteVertexArray=e=>p.callAndCheck(t,()=>t.deleteVertexArray(e)),this.getVertexArray=()=>p.callAndCheck(t,()=>t.getParameter(t.VERTEX_ARRAY_BINDING))}else if(null!=e){const t=e.getExtension("OES_vertex_array_object");if(null==t)throw Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>p.callAndCheck(e,()=>t.createVertexArrayOES()),this.bindVertexArray=r=>p.callAndCheck(e,()=>t.bindVertexArrayOES(r)),this.deleteVertexArray=r=>p.callAndCheck(e,()=>t.deleteVertexArrayOES(r)),this.getVertexArray=()=>p.callAndCheck(e,()=>e.getParameter(t.VERTEX_ARRAY_BINDING_OES))}let r="WEBGL_color_buffer_float";const n="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),1===(0,a.env)().getNumber("WEBGL_VERSION")){const e="OES_texture_half_float";if(this.textureFloatExtension=p.getExtensionOrThrow(this.gl,"OES_texture_float"),p.hasExtension(this.gl,e))this.textureHalfFloatExtension=p.getExtensionOrThrow(this.gl,e);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw 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(r),p.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=p.getExtensionOrThrow(this.gl,n);else if((0,a.env)().get("WEBGL_FORCE_F16_TEXTURES"))throw Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(r="EXT_color_buffer_float",p.hasExtension(this.gl,r))this.colorBufferFloatExtension=this.gl.getExtension(r);else if(p.hasExtension(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw Error("GL context does not support color renderable floats");this.vertexBuffer=l.createVertexBuffer(this.gl),this.indexBuffer=l.createIndexBuffer(this.gl),this.framebuffer=p.createFramebuffer(this.gl),this.textureConfig=i.getTextureConfig(this.gl,this.textureHalfFloatExtension)}get debug(){return(0,a.env)().getBool("DEBUG")}dispose(){if(this.disposed)return;null!=this.program&&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."),null!=this.outputTexture&&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;p.callAndCheck(e,()=>e.finish()),p.callAndCheck(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),p.callAndCheck(e,()=>e.deleteFramebuffer(this.framebuffer)),p.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),p.callAndCheck(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),p.callAndCheck(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat32MatrixTexture(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16MatrixTexture(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),l.createUnsignedBytesMatrixTexture(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),l.uploadPixelDataToTexture(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,r,n){this.throwIfDisposed(),l.uploadDenseMatrixToTexture(this.gl,e,t,r,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createFloat16PackedMatrixTexture(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),l.createPackedMatrixTexture(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(p.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer),this.outputTexture=null),p.callAndCheck(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadByteEncodedFloatMatrixFromOutputTexture(this.gl,t,r,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,r,n,s,a){return l.downloadPackedMatrixFromBuffer(this.gl,e,t,r,n,s,a,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return l.downloadFloat32MatrixFromBuffer(this.gl,e,t)}createBufferFromTexture(e,t,r){this.bindTextureToFrameBuffer(e);let n=l.createBufferFromOutputTexture(this.gl,t,r,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,r;if((0,a.env)().getBool("WEBGL_FENCE_API_ENABLED")){let n=e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),r=()=>{let t=e.clientWaitSync(n,0,0);return t===e.ALREADY_SIGNALED||t===e.CONDITION_SATISFIED},t=n}else(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),r=()=>this.isQueryAvailable(t,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):r=()=>!0;return{query:t,isFencePassed:r}}downloadMatrixFromPackedTexture(e,t,r){return this.downloadMatrixDriver(e,()=>l.downloadMatrixFromPackedOutputTexture(this.gl,t,r))}createProgram(e){this.throwIfDisposed();let t=this.gl;null==this.vertexShader&&(this.vertexShader=l.createVertexShader(t));let r=p.createProgram(t);p.callAndCheck(t,()=>t.attachShader(r,this.vertexShader)),p.callAndCheck(t,()=>t.attachShader(r,e)),p.linkProgram(t,r);let n=Object.assign(r,{vao:this.createVertexArray()});return this.debug&&p.validateProgram(t,n),n}buildVao(e){this.setProgram(e),this.bindVertexArray(e.vao);let t=this.gl;p.callAndCheck(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),l.bindVertexProgramAttributeStreams(t,e,this.vertexBuffer)}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&(p.callAndCheck(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,null!=this.program&&this.debug&&p.validateProgram(this.gl,this.program),p.callAndCheck(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,r=!0){return(this.throwIfDisposed(),r)?p.getProgramUniformLocationOrThrow(this.gl,e,t):p.getProgramUniformLocation(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),p.callAndCheck(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,r){this.throwIfDisposed(),this.throwIfNoProgram(),p.bindTextureToProgramUniformSampler(this.gl,e,t,r)}setOutputMatrixTexture(e,t,r){this.setOutputMatrixTextureDriver(e,r,t)}setOutputPackedMatrixTexture(e,t,r){this.throwIfDisposed();let[n,s]=i.getPackedMatrixTextureShapeWidthHeight(t,r);this.setOutputMatrixTextureDriver(e,n,s)}setOutputMatrixWriteRegion(e,t,r,n){this.setOutputMatrixWriteRegionDriver(r,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,r,n){throw Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){null!=this.program&&p.validateProgram(this.gl,this.program),p.validateFramebuffer(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&(console.assert(this.getVertexArray()===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()),p.callAndCheck(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),p.callAndCheck(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=p.getExtensionOrThrow(this.gl,2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2(),r=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(2===(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")){let e=this.gl,t=this.getQueryTimerExtensionWebGL2();e.endQuery(t.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await a.util.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,(0,a.env)().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(0===t)return null;if(2===t){let t=this.gl;return t.getQueryParameter(e,t.QUERY_RESULT)/1e6}{let t=this.getQueryTimerExtensionWebGL1();return t.getQueryObjectEXT(e,t.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(0===t)return!0;if(2===t){let t=this.gl,r=this.getQueryTimerExtensionWebGL2(),n=t.getQueryParameter(e,t.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),n&&!this.disjoint}{let t=this.getQueryTimerExtensionWebGL1(),r=t.getQueryObjectEXT(e,t.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(t.GPU_DISJOINT_EXT)),r&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=c(this.itemsToPoll.map(e=>e.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:e}=this.itemsToPoll[t];e()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){let r;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||("setTimeoutCustom"in(0,a.env)().platform&&(r=(0,a.env)().platform.setTimeoutCustom.bind((0,a.env)().platform)),a.util.repeatedTry(()=>(this.pollItems(),0===this.itemsToPoll.length),()=>0,null,r))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),p.bindColorTextureToFramebuffer(this.gl,e,this.framebuffer),this.debug&&p.validateFramebuffer(this.gl)}unbindTextureToFrameBuffer(){null!=this.outputTexture?(p.bindColorTextureToFramebuffer(this.gl,this.outputTexture,this.framebuffer),this.debug&&p.validateFramebuffer(this.gl)):p.unbindColorTextureFromFramebuffer(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let r=t();return this.unbindTextureToFrameBuffer(),r}setOutputMatrixTextureDriver(e,t,r){this.throwIfDisposed();let n=this.gl;p.bindColorTextureToFramebuffer(n,e,this.framebuffer),this.debug&&p.validateFramebuffer(n),this.outputTexture=e,p.callAndCheck(n,()=>n.viewport(0,0,t,r)),p.callAndCheck(n,()=>n.scissor(0,0,t,r))}setOutputMatrixWriteRegionDriver(e,t,r,n){this.throwIfDisposed(),p.callAndCheck(this.gl,()=>this.gl.scissor(e,t,r,n))}throwIfDisposed(){if(this.disposed)throw Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(null==this.program)throw Error("No GPU program is currently set.")}}function c(e){let t=0;for(;t<e.length&&e[t]();++t);return t-1}},{"@tensorflow/tfjs-core":"2Gtps","./canvas_util":"hTzxU","./gpgpu_util":"lhqGJ","./tex_util":"etxDi","./webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lhqGJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createVertexShader",()=>p),s.export(r,"createVertexBuffer",()=>u),s.export(r,"createIndexBuffer",()=>c),s.export(r,"getInternalFormatForFloat32MatrixTexture",()=>f),s.export(r,"createFloat32MatrixTexture",()=>m),s.export(r,"getInternalFormatForFloat16MatrixTexture",()=>h),s.export(r,"createFloat16MatrixTexture",()=>g),s.export(r,"getInternalFormatForUnsignedBytesMatrixTexture",()=>x),s.export(r,"createUnsignedBytesMatrixTexture",()=>y),s.export(r,"getInternalFormatForPackedMatrixTexture",()=>v),s.export(r,"createPackedMatrixTexture",()=>b),s.export(r,"getInternalFormatForFloat16PackedMatrixTexture",()=>k),s.export(r,"createFloat16PackedMatrixTexture",()=>_),s.export(r,"bindVertexProgramAttributeStreams",()=>I),s.export(r,"uploadDenseMatrixToTexture",()=>j),s.export(r,"uploadPixelDataToTexture",()=>w),s.export(r,"createBufferFromOutputTexture",()=>T),s.export(r,"downloadFloat32MatrixFromBuffer",()=>S),s.export(r,"downloadByteEncodedFloatMatrixFromOutputTexture",()=>C),s.export(r,"downloadPackedMatrixFromBuffer",()=>N),s.export(r,"downloadMatrixFromPackedOutputTexture",()=>E);var a=e("@tensorflow/tfjs-core"),o=e("./glsl_version"),l=e("./tex_util"),i=e("./webgl_util");function p(e){let t=(0,o.getGlslDifferences)(),r=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; ${t.varyingVs} vec2 resultUV; void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; }`;return i.createVertexShader(e,r)}function u(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 i.createStaticVertexBuffer(e,t)}function c(e){let t=new Uint16Array([0,1,2,2,1,3]);return i.createStaticIndexBuffer(e,t)}function d(e,t,r,n,s,o){i.validateTextureSize(t,r);let l=i.createTexture(e),p=e.TEXTURE_2D;return i.callAndCheck(e,()=>e.bindTexture(p,l)),i.callAndCheck(e,()=>e.texParameteri(p,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(p,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),i.callAndCheck(e,()=>e.texParameteri(p,e.TEXTURE_MIN_FILTER,e.NEAREST)),i.callAndCheck(e,()=>e.texParameteri(p,e.TEXTURE_MAG_FILTER,e.NEAREST)),1===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texImage2D(p,0,n,t,r,0,s,o,null)):i.callAndCheck(e,()=>e.texStorage2D(p,1,n,t,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:l,texShape:[r,t]}}function f(e){return e.internalFormatFloat}function m(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,f(n),n.textureFormatFloat,e.FLOAT)}function h(e){return e.internalFormatHalfFloat}function g(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,h(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function x(e){return e.downloadTextureFormat}function y(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,x(n),e.RGBA,e.UNSIGNED_BYTE)}function v(e){return e.internalFormatPackedFloat}function b(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,v(n),e.RGBA,e.FLOAT)}function k(e){return e.internalFormatPackedHalfFloat}function _(e,t,r,n){let[s,a]=l.getPackedMatrixTextureShapeWidthHeight(t,r);return d(e,s,a,k(n),e.RGBA,n.textureTypeHalfFloat)}function I(e,t,r){return i.callAndCheck(e,()=>e.bindBuffer(e.ARRAY_BUFFER,r)),i.bindVertexBufferToProgramAttribute(e,t,"clipSpacePos",r,3,20,0)&&i.bindVertexBufferToProgramAttribute(e,t,"uv",r,2,20,12)}function j(e,t,r,n,s,o){let l,p,u;i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s instanceof Uint8Array?(l=new Uint8Array(r*n*4),p=e.UNSIGNED_BYTE,u=e.RGBA):(l=new Float32Array(r*n*4),p=e.FLOAT,u=o.internalFormatPackedFloat),l.set(s),2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r,n,e.RGBA,p,l)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,u,r,n,0,e.RGBA,p,l)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function w(e,t,r){i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,t)),r.data instanceof Uint8Array?2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,r.width,r.height,e.RGBA,e.UNSIGNED_BYTE,r.data)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,r.width,r.height,0,e.RGBA,e.UNSIGNED_BYTE,r.data)):2===(0,a.env)().getNumber("WEBGL_VERSION")?i.callAndCheck(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,r)):i.callAndCheck(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r)),i.callAndCheck(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function T(e,t,r,n){let s=e.createBuffer();i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,s));let a=16*t*r;return i.callAndCheck(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,0)),i.callAndCheck(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),s}function S(e,t,r){let n=new Float32Array(r);return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,n),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),n}function C(e,t,r,n){let[s,a]=l.getUnpackedMatrixTextureShapeWidthHeight(t,r),o=new Uint8Array(l.getUnpackedArraySizeFromMatrixSize(t*r,4));return i.callAndCheck(e,()=>e.readPixels(0,0,s,a,n.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function N(e,t,r,n,s,a,o,i){let p=new Float32Array(l.getPackedRGBAArraySizeFromMatrixShape(a,o));return e.bindBuffer(e.PIXEL_PACK_BUFFER,t),e.getBufferSubData(e.PIXEL_PACK_BUFFER,0,p),e.bindBuffer(e.PIXEL_PACK_BUFFER,null),p}function E(e,t,r){let n=new Float32Array(t*r*4);return i.callAndCheck(e,()=>e.readPixels(0,0,r,t,e.RGBA,e.FLOAT,n)),n}},{"@tensorflow/tfjs-core":"2Gtps","./glsl_version":"dyQn5","./tex_util":"etxDi","./webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ruDg":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImplCPU",()=>a),s.export(r,"bincountImplCPU",()=>o),s.export(r,"bincountReduceImplCPU",()=>l),s.export(r,"bitwiseAndImplCPU",()=>i),s.export(r,"castImplCPU",()=>p),s.export(r,"ceilImplCPU",()=>u),s.export(r,"concatImplCPU",()=>c),s.export(r,"equalImplCPU",()=>d),s.export(r,"expImplCPU",()=>f),s.export(r,"expm1ImplCPU",()=>m),s.export(r,"floorImplCPU",()=>h),s.export(r,"gatherNdImplCPU",()=>g),s.export(r,"gatherV2ImplCPU",()=>x),s.export(r,"greaterEqualImplCPU",()=>v),s.export(r,"greaterImplCPU",()=>y),s.export(r,"lessEqualImplCPU",()=>k),s.export(r,"lessImplCPU",()=>b),s.export(r,"linSpaceImplCPU",()=>_),s.export(r,"logImplCPU",()=>I),s.export(r,"maxImplCPU",()=>j),s.export(r,"maximumImplCPU",()=>w),s.export(r,"minimumImplCPU",()=>T),s.export(r,"multiplyImplCPU",()=>S),s.export(r,"negImplCPU",()=>C),s.export(r,"notEqualImplCPU",()=>N),s.export(r,"prodImplCPU",()=>E),s.export(r,"raggedGatherImplCPU",()=>F),s.export(r,"raggedRangeImplCPU",()=>A),s.export(r,"raggedTensorToTensorImplCPU",()=>R),s.export(r,"scatterImplCPU",()=>O),s.export(r,"sigmoidImplCPU",()=>D),s.export(r,"simpleAbsImplCPU",()=>M),s.export(r,"sliceImplCPU",()=>B),s.export(r,"sparseFillEmptyRowsImplCPU",()=>G),s.export(r,"sparseReshapeImplCPU",()=>V),s.export(r,"sparseSegmentReductionImplCPU",()=>L),s.export(r,"sqrtImplCPU",()=>z),s.export(r,"staticRegexReplaceImplCPU",()=>U),s.export(r,"stridedSliceImplCPU",()=>W),s.export(r,"stringNGramsImplCPU",()=>q),s.export(r,"stringSplitImplCPU",()=>H),s.export(r,"stringToHashBucketFastImplCPU",()=>K),s.export(r,"subImplCPU",()=>X),s.export(r,"rangeImplCPU",()=>P),s.export(r,"rsqrtImplCPU",()=>$),s.export(r,"tileImplCPU",()=>Z),s.export(r,"topKImplCPU",()=>Y),s.export(r,"transposeImplCPU",()=>Q),s.export(r,"uniqueImplCPU",()=>J);let{addImpl:a,bincountImpl:o,bincountReduceImpl:l,bitwiseAndImpl:i,castImpl:p,ceilImpl:u,concatImpl:c,equalImpl:d,expImpl:f,expm1Impl:m,floorImpl:h,gatherNdImpl:g,gatherV2Impl:x,greaterImpl:y,greaterEqualImpl:v,lessImpl:b,lessEqualImpl:k,linSpaceImpl:_,logImpl:I,maxImpl:j,maximumImpl:w,minimumImpl:T,multiplyImpl:S,negImpl:C,notEqualImpl:N,prodImpl:E,raggedGatherImpl:F,raggedRangeImpl:A,raggedTensorToTensorImpl:R,rangeImpl:P,rsqrtImpl:$,scatterImpl:O,sigmoidImpl:D,simpleAbsImpl:M,sliceImpl:B,sparseFillEmptyRowsImpl:G,sparseReshapeImpl:V,sparseSegmentReductionImpl:L,sqrtImpl:z,staticRegexReplaceImpl:U,stridedSliceImpl:W,stringNGramsImpl:q,stringSplitImpl:H,stringToHashBucketFastImpl:K,subImpl:X,tileImpl:Z,topKImpl:Y,transposeImpl:Q,uniqueImpl:J}=e("@tensorflow/tfjs-backend-cpu/dist/shared")},{"@tensorflow/tfjs-backend-cpu/dist/shared":"jEP2j","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jEP2j:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>a.simpleAbsImpl),s.export(r,"addImpl",()=>o.addImpl),s.export(r,"bincountImpl",()=>l.bincountImpl),s.export(r,"bincountReduceImpl",()=>l.bincountReduceImpl),s.export(r,"bitwiseAndImpl",()=>i.bitwiseAndImpl),s.export(r,"castImpl",()=>p.castImpl),s.export(r,"ceilImpl",()=>u.ceilImpl),s.export(r,"concatImpl",()=>c.concatImpl),s.export(r,"equalImpl",()=>d.equalImpl),s.export(r,"expImpl",()=>f.expImpl),s.export(r,"expm1Impl",()=>m.expm1Impl),s.export(r,"floorImpl",()=>h.floorImpl),s.export(r,"floorDivImpl",()=>g.floorDivImpl),s.export(r,"gatherNdImpl",()=>x.gatherNdImpl),s.export(r,"gatherV2Impl",()=>y.gatherV2Impl),s.export(r,"greaterImpl",()=>v.greaterImpl),s.export(r,"greaterEqualImpl",()=>b.greaterEqualImpl),s.export(r,"lessImpl",()=>k.lessImpl),s.export(r,"lessEqualImpl",()=>_.lessEqualImpl),s.export(r,"linSpaceImpl",()=>I.linSpaceImpl),s.export(r,"logImpl",()=>j.logImpl),s.export(r,"maxImpl",()=>w.maxImpl),s.export(r,"maximumImpl",()=>T.maximumImpl),s.export(r,"minimumImpl",()=>S.minimumImpl),s.export(r,"multiplyImpl",()=>C.multiplyImpl),s.export(r,"negImpl",()=>N.negImpl),s.export(r,"notEqualImpl",()=>E.notEqualImpl),s.export(r,"prodImpl",()=>F.prodImpl),s.export(r,"raggedGatherImpl",()=>A.raggedGatherImpl),s.export(r,"raggedRangeImpl",()=>R.raggedRangeImpl),s.export(r,"raggedTensorToTensorImpl",()=>P.raggedTensorToTensorImpl),s.export(r,"rangeImpl",()=>$.rangeImpl),s.export(r,"rsqrtImpl",()=>O.rsqrtImpl),s.export(r,"scatterImpl",()=>D.scatterImpl),s.export(r,"sigmoidImpl",()=>M.sigmoidImpl),s.export(r,"sliceImpl",()=>B.sliceImpl),s.export(r,"sparseFillEmptyRowsImpl",()=>G.sparseFillEmptyRowsImpl),s.export(r,"sparseReshapeImpl",()=>V.sparseReshapeImpl),s.export(r,"sparseSegmentReductionImpl",()=>L.sparseSegmentReductionImpl),s.export(r,"sqrtImpl",()=>z.sqrtImpl),s.export(r,"squaredDifferenceImpl",()=>U.squaredDifferenceImpl),s.export(r,"staticRegexReplaceImpl",()=>W.staticRegexReplaceImpl),s.export(r,"stridedSliceImpl",()=>q.stridedSliceImpl),s.export(r,"stringNGramsImpl",()=>H.stringNGramsImpl),s.export(r,"stringSplitImpl",()=>K.stringSplitImpl),s.export(r,"stringToHashBucketFastImpl",()=>X.stringToHashBucketFastImpl),s.export(r,"subImpl",()=>Z.subImpl),s.export(r,"tileImpl",()=>Y.tileImpl),s.export(r,"topKImpl",()=>Q.topKImpl),s.export(r,"transposeImpl",()=>J.transposeImpl),s.export(r,"uniqueImpl",()=>ee.uniqueImpl);var a=e("./kernels/Abs"),o=e("./kernels/Add"),l=e("./kernels/Bincount_impl"),i=e("./kernels/BitwiseAnd"),p=e("./kernels/Cast"),u=e("./kernels/Ceil"),c=e("./kernels/Concat_impl"),d=e("./kernels/Equal"),f=e("./kernels/Exp"),m=e("./kernels/Expm1"),h=e("./kernels/Floor"),g=e("./kernels/FloorDiv"),x=e("./kernels/GatherNd_Impl"),y=e("./kernels/GatherV2_impl"),v=e("./kernels/Greater"),b=e("./kernels/GreaterEqual"),k=e("./kernels/Less"),_=e("./kernels/LessEqual"),I=e("./kernels/LinSpace_impl"),j=e("./kernels/Log"),w=e("./kernels/Max_impl"),T=e("./kernels/Maximum"),S=e("./kernels/Minimum"),C=e("./kernels/Multiply"),N=e("./kernels/Neg"),E=e("./kernels/NotEqual"),F=e("./kernels/Prod"),A=e("./kernels/RaggedGather_impl"),R=e("./kernels/RaggedRange_impl"),P=e("./kernels/RaggedTensorToTensor_impl"),$=e("./kernels/Range_impl"),O=e("./kernels/Rsqrt"),D=e("./kernels/Scatter_impl"),M=e("./kernels/Sigmoid"),B=e("./kernels/Slice"),G=e("./kernels/SparseFillEmptyRows_impl"),V=e("./kernels/SparseReshape_impl"),L=e("./kernels/SparseSegmentReduction_impl"),z=e("./kernels/Sqrt"),U=e("./kernels/SquaredDifference"),W=e("./kernels/StaticRegexReplace"),q=e("./kernels/StridedSlice_impl"),H=e("./kernels/StringNGrams_impl"),K=e("./kernels/StringSplit_impl"),X=e("./kernels/StringToHashBucketFast_impl"),Z=e("./kernels/Sub"),Y=e("./kernels/Tile_impl"),Q=e("./kernels/TopK_impl"),J=e("./kernels/Transpose_impl"),ee=e("./kernels/Unique_impl")},{"./kernels/Abs":"aZebR","./kernels/Add":"bAFRc","./kernels/Bincount_impl":"4T9ua","./kernels/BitwiseAnd":"eAI0B","./kernels/Cast":"hKQIs","./kernels/Ceil":"jOMtn","./kernels/Concat_impl":"kSE6G","./kernels/Equal":"6vsbD","./kernels/Exp":"9ub2a","./kernels/Expm1":"la325","./kernels/Floor":"ggI8q","./kernels/FloorDiv":"4CGo3","./kernels/GatherNd_Impl":"bNWEc","./kernels/GatherV2_impl":"4jIrE","./kernels/Greater":"8VCX5","./kernels/GreaterEqual":"6dCtd","./kernels/Less":"amDj6","./kernels/LessEqual":"2l63t","./kernels/LinSpace_impl":"a8fqQ","./kernels/Log":"6pnuq","./kernels/Max_impl":"bmw5Z","./kernels/Maximum":"3mucZ","./kernels/Minimum":"h5VzA","./kernels/Multiply":"blR5P","./kernels/Neg":"8cO7T","./kernels/NotEqual":"bhFpO","./kernels/Prod":"1vdcs","./kernels/RaggedGather_impl":"k8otv","./kernels/RaggedRange_impl":"2XISl","./kernels/RaggedTensorToTensor_impl":"iB2Tp","./kernels/Range_impl":"ilo40","./kernels/Rsqrt":"anhkm","./kernels/Scatter_impl":"hS4t5","./kernels/Sigmoid":"dgIMK","./kernels/Slice":"aVrpO","./kernels/SparseFillEmptyRows_impl":"6qd5E","./kernels/SparseReshape_impl":"f0gEZ","./kernels/SparseSegmentReduction_impl":"6ZQJL","./kernels/Sqrt":"b2SF0","./kernels/SquaredDifference":"5czoa","./kernels/StaticRegexReplace":"hBYHB","./kernels/StridedSlice_impl":"9pkbb","./kernels/StringNGrams_impl":"cOE3F","./kernels/StringSplit_impl":"5K3Ct","./kernels/StringToHashBucketFast_impl":"cScoY","./kernels/Sub":"kDL1v","./kernels/Tile_impl":"9gEJf","./kernels/TopK_impl":"7iuur","./kernels/Transpose_impl":"1YEcI","./kernels/Unique_impl":"dNcr6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aZebR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"simpleAbsImpl",()=>l),s.export(r,"abs",()=>i),s.export(r,"absConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let t=new Float32Array(e.length);for(let r=0;r<e.length;++r)t[r]=Math.abs(e[r]);return t}let i=e=>{let{x:t}=e.inputs,r=e.backend;(0,o.assertNotComplex)(t,"abs");let n=new Float32Array(a.util.sizeFromShape(t.shape));return n=l(r.data.get(t.dataId).values),r.makeOutput(n,t.shape,t.dtype)},p={kernelName:a.Abs,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8IIbB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"assertNotComplex",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){Array.isArray(e)||(e=[e]),e.forEach(e=>{null!=e&&a.util.assert("complex64"!==e.dtype,()=>`${t} does not support complex64 tensors in the CPU backend.`)})}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bAFRc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addImpl",()=>i),s.export(r,"addComplexImpl",()=>p),s.export(r,"add",()=>u),s.export(r,"addConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e+t),p=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e+r,imag:t+n})),u=(0,l.binaryKernelFunc)(a.Add,i,p),c={kernelName:a.Add,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6IwzO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleBinaryKernelImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n,s,o)=>{let l=a.backend_util.assertAndGetBroadcastShape(t,r),i=l.length,p=a.util.computeStrides(l),u=a.util.sizeFromShape(l),c=a.util.getTypedArrayFromDType(o,u),d=t.length,f=r.length,m=a.util.computeStrides(t),h=a.util.computeStrides(r),g=a.backend_util.getBroadcastDims(t,l),x=a.backend_util.getBroadcastDims(r,l);if(g.length+x.length===0)for(let t=0;t<c.length;++t)c[t]=e(n[t%n.length],s[t%s.length]);else for(let t=0;t<c.length;++t){let r=a.util.indexToLoc(t,i,p),o=r.slice(-d);g.forEach(e=>o[e]=0);let l=a.util.locToIndex(o,d,m),u=r.slice(-f);x.forEach(e=>u[e]=0);let y=a.util.locToIndex(u,f,h);c[t]=e(n[l],s[y])}return[c,l]}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gy3Dx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"binaryKernelFunc",()=>p),s.export(r,"createComplexBinaryKernelImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../kernels/Cast"),i=e("../kernels/Complex");function p(e,t,r,n){return null==r?({inputs:r,backend:s})=>{let{a:l,b:i}=r;(0,o.assertNotComplex)([l,i],e);let p=s.data.get(l.dataId).values,u=s.data.get(i.dataId).values,c="string"===l.dtype?a.backend_util.fromUint8ToStringArray(p):p,d="string"===l.dtype?a.backend_util.fromUint8ToStringArray(u):u,f=n||l.dtype,[m,h]=t(l.shape,i.shape,c,d,f);return s.makeTensorInfo(h,f,m)}:({inputs:e,backend:s})=>{let{a,b:o}=e;if("complex64"===a.dtype||"complex64"===o.dtype){let e=(0,l.cast)({inputs:{x:a},backend:s,attrs:{dtype:"complex64"}}),t=s.data.get(e.dataId),n=t.complexTensorInfos.real,p=t.complexTensorInfos.imag,u=s.data.get(n.dataId).values,c=s.data.get(p.dataId).values,d=(0,l.cast)({inputs:{x:o},backend:s,attrs:{dtype:"complex64"}}),f=s.data.get(d.dataId),m=f.complexTensorInfos.real,h=f.complexTensorInfos.imag,g=s.data.get(m.dataId).values,x=s.data.get(h.dataId).values,[y,v,b]=r(a.shape,o.shape,u,c,g,x),k=s.makeTensorInfo(b,"float32",y),_=s.makeTensorInfo(b,"float32",v),I=(0,i.complex)({inputs:{real:k,imag:_},backend:s});return s.disposeIntermediateTensorInfo(e),s.disposeIntermediateTensorInfo(d),s.disposeIntermediateTensorInfo(k),s.disposeIntermediateTensorInfo(_),I}{let e=s.data.get(a.dataId).values,r=s.data.get(o.dataId).values,l=n||a.dtype,[i,p]=t(a.shape,o.shape,e,r,l);return s.makeTensorInfo(p,l,i)}}}function u(e){return(t,r,n,s,o,l)=>{let i=a.backend_util.assertAndGetBroadcastShape(t,r),p=a.util.sizeFromShape(i),u=i.length,c=a.util.computeStrides(i),d=a.util.getTypedArrayFromDType("float32",p),f=a.util.getTypedArrayFromDType("float32",p),m=a.backend_util.getBroadcastDims(t,i),h=a.backend_util.getBroadcastDims(r,i),g=a.backend_util.mergeRealAndImagArrays(n,s),x=a.backend_util.mergeRealAndImagArrays(o,l),y=t.length,v=a.util.computeStrides(t),b=r.length,k=a.util.computeStrides(r);if(m.length+h.length===0)for(let t=0;t<d.length;t++){let r=t%g.length,n=t%x.length,s=e(g[2*r],g[2*r+1],x[2*n],x[2*n+1]);d[t]=s.real,f[t]=s.imag}else for(let t=0;t<d.length;t++){let r=a.util.indexToLoc(t,u,c),n=r.slice(-y);m.forEach(e=>n[e]=0);let s=a.util.locToIndex(n,y,v),o=r.slice(-b);h.forEach(e=>o[e]=0);let l=a.util.locToIndex(o,b,k),i=e(g[2*s],g[2*s+1],x[2*l],x[2*l+1]);d[t]=i.real,f[t]=i.imag}return[d,f,i]}}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../kernels/Cast":"hKQIs","../kernels/Complex":"2fiFF","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hKQIs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"castImpl",()=>c),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/zeros_impl"),i=e("./Complex"),p=e("./Identity"),u=e("./Real");function c(e,t,r,n){if("int32"===n)return[t,"int32",Int32Array.from(e)];if("bool"===n){let n=a.util.toTypedArray([0],r),[s,l]=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t))(t,[],e,n,"bool");return[l,"bool",s]}throw Error(`Error in Cast: failed to cast ${r} to ${n}`)}function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:o}=n;if("complex64"===o){if("complex64"===s.dtype)return(0,p.identity)({inputs:{x:s},backend:r});let e=(0,l.zeros)(r,s.shape,s.dtype),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,i.complex)({inputs:{real:t,imag:e},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,u.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:o}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,o)){let e=(0,p.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:o}}let[f,m,h]=c(r.data.get(s.dataId).values,s.shape,s.dtype,o);return r.makeTensorInfo(f,m,h)}let f={kernelName:a.Cast,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/zeros_impl":"eJune","./Complex":"2fiFF","./Identity":"ew2a3","./Real":"fBBrK","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eJune:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zeros",()=>function e(t,r,n="float32"){if("complex64"===n){let n=e(t,r,"float32"),s=e(t,r,"float32");return(0,o.complex)({inputs:{real:n,imag:s},backend:t})}let s=a.util.makeZerosTypedArray(a.util.sizeFromShape(r),n);return t.makeTensorInfo(r,n,s)});var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Complex")},{"@tensorflow/tfjs-core":"2Gtps","../kernels/Complex":"2fiFF","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2fiFF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.data.get(n.dataId).values,o=r.data.get(s.dataId).values,l=r.makeTensorInfo(n.shape,"complex64");return r.data.get(l.dataId).complexTensorInfos={real:r.makeTensorInfo(n.shape,"float32",a),imag:r.makeTensorInfo(s.shape,"float32",o)},l}s.defineInteropFlag(r),s.export(r,"complex",()=>a),s.export(r,"complexConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Complex,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ew2a3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fBBrK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.real,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"real",()=>a),s.export(r,"realConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Real,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4T9ua":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincountImpl",()=>o),s.export(r,"bincountReduceImpl",()=>l);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=a.util.makeZerosTypedArray(s,r);for(let r=0;r<e.length;r++){let n=e[r];if(n<0)throw Error("Input x must be non-negative!");n>=s||(o>0?l[n]+=t[r]:l[n]+=1)}return l}function l(e,t,r,n=!1){let s=e.shape[0],o=e.shape[1],i=(0,a.buffer)([s,r],t.dtype);for(let a=0;a<s;a++)for(let s=0;s<o;s++){let o=e.get(a,s);if(o<0)throw Error("Input x must be non-negative!");o>=r||(n?i.set(1,a,o):t.size>0?i.set(i.get(a,o)+t.get(a,s),a,o):i.set(i.get(a,o)+1,a,o))}return i}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eAI0B:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bitwiseAndImpl",()=>i),s.export(r,"bitwiseAnd",()=>p),s.export(r,"bitwiseAndConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&t),p=(0,l.binaryKernelFunc)(a.BitwiseAnd,i),u={kernelName:a.BitwiseAnd,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jOMtn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceilImpl",()=>i),s.export(r,"ceil",()=>p),s.export(r,"ceilConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.ceil(e)),p=(0,l.unaryKernelFuncFromImpl)(a.Ceil,i),u={kernelName:a.Ceil,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eTB9q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"createSimpleUnaryImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e){return(t,r,n)=>{let s=a.util.getArrayFromDType(r,t.length);for(let r=0;r<t.length;++r)s[r]=e(t[r],n);return s}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8jJxC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unaryKernelFunc",()=>i),s.export(r,"unaryKernelFuncFromImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./unary_impl");function i(e,t,r){return p(e,(0,l.createSimpleUnaryImpl)(t),r)}function p(e,t,r){return({inputs:n,attrs:s,backend:l})=>{let i,{x:p}=n;(0,o.assertNotComplex)(p,e);let u=l.data.get(p.dataId).values;if("string"===p.dtype){if(!Array.isArray(u))throw Error("String tensor's value was not an instance of Array");i=a.backend_util.fromUint8ToStringArray(u)}else i=u;let c=r||p.dtype,d=t(i,c,s);return l.makeTensorInfo(p.shape,c,d)}}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./unary_impl":"eTB9q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kSE6G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getArrayFromDType(r,a.util.sizeFromShape(t));if(n&&"string"!==r){let t=0;e.forEach(e=>{let r=a.util.sizeFromShape(e.shape);s.set(e.vals,t),t+=r})}else{let n=0;e.forEach(e=>{let o="string"===r?a.backend_util.fromUint8ToStringArray(e.vals):e.vals,l=0;for(let r=0;r<e.shape[0];++r){let a=r*t[1]+n;for(let t=0;t<e.shape[1];++t)s[a+t]=o[l++]}n+=e.shape[1]})}return s}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6vsbD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equalImpl",()=>i),s.export(r,"equal",()=>p),s.export(r,"equalConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e===t)),p=(0,l.binaryKernelFunc)(a.Equal,i,null,"bool"),u={kernelName:a.Equal,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9ub2a":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expImpl",()=>i),s.export(r,"exp",()=>p),s.export(r,"expConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.exp(e)),p=(0,l.unaryKernelFuncFromImpl)(a.Exp,i,"float32"),u={kernelName:a.Exp,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],la325:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1Impl",()=>i),s.export(r,"expm1",()=>p),s.export(r,"expm1Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.expm1(e)),p=(0,l.unaryKernelFuncFromImpl)(a.Expm1,i),u={kernelName:a.Expm1,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ggI8q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorImpl",()=>i),s.export(r,"floor",()=>p),s.export(r,"floorConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.floor(e)),p=(0,l.unaryKernelFuncFromImpl)(a.Floor,i),u={kernelName:a.Floor,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4CGo3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDivImpl",()=>i),s.export(r,"floorDiv",()=>p),s.export(r,"floorDivConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.floor(e/t)),p=(0,l.binaryKernelFunc)(a.FloorDiv,i,null,"int32"),u={kernelName:a.FloorDiv,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bNWEc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNdImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,p){let u=(0,a.buffer)([n,o],r);for(let r=0;r<n;r++){let n=[],a=0;for(let t=0;t<s;t++){let o=e[r*s+t];a+=o*l[t],n.push(o)}if(a<0||a>=p/o)throw Error(`Invalid indices: ${n} does not index into ${i}`);for(let e=0;e<o;e++)u.values[r*o+e]=t.get(...t.indexToLoc(a*o+e))}return u}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4jIrE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2Impl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(0,a.buffer)(r,e.dtype);for(let r=0;r<n.size;++r){let s=n.indexToLoc(r).slice(),a=s[0],o=s[2],l=t.locToIndex([a,o]);s[2]=t.values[l];let i=e.locToIndex(s);0<=i&&i<e.values.length&&(n.values[r]=e.values[i])}return n}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8VCX5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterImpl",()=>i),s.export(r,"greater",()=>p),s.export(r,"greaterConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>t)),p=(0,l.binaryKernelFunc)(a.Greater,i,null,"bool"),u={kernelName:a.Greater,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6dCtd":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqualImpl",()=>i),s.export(r,"greaterEqual",()=>p),s.export(r,"greaterEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e>=t)),p=(0,l.binaryKernelFunc)(a.GreaterEqual,i,null,"bool"),u={kernelName:a.GreaterEqual,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],amDj6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessImpl",()=>i),s.export(r,"less",()=>p),s.export(r,"lessConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e<t)),p=(0,l.binaryKernelFunc)(a.Less,i,null,"bool"),u={kernelName:a.Less,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2l63t":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lessEqualImpl",()=>i),s.export(r,"lessEqual",()=>p),s.export(r,"lessEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e<=t)),p=(0,l.binaryKernelFunc)(a.LessEqual,i,null,"bool"),u={kernelName:a.LessEqual,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],a8fqQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpaceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=(t-e)/(r-1),s=a.util.makeZerosTypedArray(r,"float32");s[0]=e;for(let e=1;e<s.length;e++)s[e]=s[e-1]+n;return s}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6pnuq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logImpl",()=>i),s.export(r,"log",()=>p),s.export(r,"logConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.log(e)),p=(0,l.unaryKernelFuncFromImpl)(a.Log,i),u={kernelName:a.Log,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bmw5Z:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.getTypedArrayFromDType(n,a.util.sizeFromShape(r));for(let r=0;r<s.length;++r){let n=r*t,a=e[n];for(let r=0;r<t;++r){let t=e[n+r];(Number.isNaN(t)||t>a)&&(a=t)}s[r]=a}return s}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3mucZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximumImpl",()=>i),s.export(r,"maximum",()=>p),s.export(r,"maximumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.max(e,t)),p=(0,l.binaryKernelFunc)(a.Maximum,i),u={kernelName:a.Maximum,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h5VzA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimumImpl",()=>i),s.export(r,"minimum",()=>p),s.export(r,"minimumConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.min(e,t)),p=(0,l.binaryKernelFunc)(a.Minimum,i),u={kernelName:a.Minimum,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],blR5P:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiplyImpl",()=>i),s.export(r,"multiplyComplexImpl",()=>p),s.export(r,"multiply",()=>u),s.export(r,"multiplyConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e*t),p=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e*r-t*n,imag:e*n+t*r})),u=(0,l.binaryKernelFunc)(a.Multiply,i,p),c={kernelName:a.Multiply,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8cO7T":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"negImpl",()=>i),s.export(r,"neg",()=>p),s.export(r,"negConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Multiply");function i(e,t,r){let n=a.util.createScalarValue(-1,r);return(0,l.multiplyImpl)([],t,n,e,r)}function p(e){let{inputs:t,backend:r}=e,{x:n}=t;(0,o.assertNotComplex)(n,"neg");let[s,a]=i(r.data.get(n.dataId).values,n.shape,n.dtype);return r.makeTensorInfo(a,n.dtype,s)}let u={kernelName:a.Neg,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Multiply":"blR5P","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bhFpO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqualImpl",()=>i),s.export(r,"notEqual",()=>p),s.export(r,"notEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>+(e!==t)),p=(0,l.binaryKernelFunc)(a.NotEqual,i,null,"bool"),u={kernelName:a.NotEqual,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1vdcs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prodImpl",()=>i),s.export(r,"prod",()=>p),s.export(r,"prodConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e,t,r,n){let[s,o]=a.backend_util.computeOutAndReduceShapes(e,n),l=(0,a.upcastType)(t,"int32"),i=a.util.makeZerosTypedArray(a.util.sizeFromShape(s),l),p=a.util.sizeFromShape(o);for(let e=0;e<i.length;++e){let t=e*p,n=1;for(let e=0;e<p;++e)n*=r[t+e];i[e]=n}return{outVals:i,outShape:s,outDtype:l}}function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:p,keepDims:u}=n;(0,o.assertNotComplex)(s,"prod");let c=s.shape.length,d=a.util.parseAxisParam(p,s.shape),f=a.backend_util.getAxesPermutation(d,c),m=d,h=s,g=[];null!=f&&(g.push(h=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}})),m=a.backend_util.getInnerMostAxes(m.length,c));let x=r.data.get(h.dataId).values,{outVals:y,outShape:v,outDtype:b}=i(h.shape,h.dtype,x,m),k=v;return u&&(k=a.backend_util.expandShapeToKeepDim(v,d)),g.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(k,b,y)}let u={kernelName:a.Prod,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j4ys5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>i),s.export(r,"transposeConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{x:s}=t,{perm:a}=r;(0,o.assertNotComplex)(s,"transpose");let i=Array(s.shape.length);for(let e=0;e<i.length;e++)i[e]=s.shape[a[e]];let p=n.data.get(s.dataId).values,u=(0,l.transposeImpl)(p,s.shape,s.dtype,a,i);return{dataId:n.write(u,i,s.dtype),shape:i,dtype:s.dtype}}let p={kernelName:a.Transpose,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Transpose_impl":"1YEcI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1YEcI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transposeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=t.length,l=a.util.sizeFromShape(t),i=a.util.computeStrides(t),p=a.util.computeStrides(s),u=a.util.getTypedArrayFromDType(r,a.util.sizeFromShape(s));for(let t=0;t<l;++t){let r=a.util.indexToLoc(t,o,i),s=Array(r.length);for(let e=0;e<s.length;e++)s[e]=r[n[e]];u[a.util.locToIndex(s,o,p)]=e[t]}return u}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k8otv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGatherImpl",()=>l);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=e.slice(0,t);for(;r.length<t;)r.push(1);for(let n=t;n<e.length;n++)r[t-1]*=e[n];return r}function l(e,t,r,n,s,l,i,p){let u,c,d,f;if(0===e.length)throw Error("paramsNestedSplits must be non empty");if(0===t[0].length)throw Error("Split tensors must not be scalars");let m=t[0][0]-1;if(l.forEach((e,t)=>{if(e<0||e>=m){let r=a.util.indexToLoc(t,i.length,a.util.computeStrides(i)).join(",");throw Error(`indices[${r}] = ${e} is not in [0, ${m})`)}}),0===n.length)throw Error("params.rank must be nonzero");let{outSplits:h,valueSlices:g,numValues:x}=function(e,t,r,n){let s=[],a=0,o=Array(t.length-1+r.length).fill(null).map(()=>[0]);for(let e=0;e<r.length;++e){let t=r[e],s=e===r.length-1?n:r[e+1].length;if(0===t.length)throw Error("Ragged splits may not be empty");if(t[0]<0)throw Error("Ragged splits must be non-negative");if(t[t.length-1]>s)throw Error("Ragged splits must not point past values");for(let e=1;e<t.length;++e)if(t[e-1]>t[e])throw Error("Ragged splits must be sorted in ascending order")}let l=1;for(let e=0;e<t.length-1;++e){l*=t[e];let r=t[e+1];for(let t=1;t<l+1;++t)o[e].push(t*r)}for(let n=0;n<e.length;++n){let l=e[n],i=e[n]+1;for(let e=0;e<r.length;++e){let n=r[e],s=e+t.length-1;if(s>=0){let e=o[s],t=e[e.length-1]-n[l];for(let e=l;e<i;++e)o[s].push(n[e+1]+t)}l=n[l],i=n[i]}i!==l&&(s.push([l,i]),a+=i-l)}return{outSplits:o,valueSlices:s,numValues:a}}(l,i,e,n[0]),y=function(e){let t=[];for(let r=0;r<e.length;++r){let n=e[r].length,s=a.util.getArrayFromDType("int32",n);t.push(s),e[r].forEach((e,t)=>s[t]=e)}return t}(h),v=((u=n.slice())[0]=x,c=a.util.getArrayFromDType(s,a.util.sizeFromShape(u)),f=0===(d=r.length)?0:d/n[0],!function(e,t,r,n,s,a){let l=o(t,2)[1],i=o(a,2)[1],p=0;for(let t of r)for(let r=t[0];r<t[1];++r){for(let t=0;t<n;++t)s[p*i+t]=e[r*l+t];++p}}(r,n,g,f,c,u),[c,u]);return[y,v[0],v[1]]}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2XISl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRangeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){if(t.length>1)throw Error("starts must be a scalar or vector");if(s.length>1)throw Error("limits must be a scalar or vector");if(l.length>1)throw Error("deltas must be a scalar or vector");let i=0===t.length,p=0===s.length,u=0===l.length,c=[];i||c.push(t[0]),p||c.push(s[0]),u||c.push(l[0]);for(let e=1;e<c.length;++e)if(c[e]!==c[e-1])throw Error("starts, limits, and deltas must have the same shape");let d=0===c.length?1:c[0],f=a.util.getArrayFromDType("int32",d+1);f[0]=0;for(let t=0;t<d;++t){let r,s=i?e[0]:e[t],a=p?n[0]:n[t],l=u?o[0]:o[t];if(0===l)throw Error("Requires delta != 0");if(l>0&&a<s||l<0&&a>s)r=0;else if((r=Math.ceil(Math.abs((a-s)/l)))>0x7fffffff)throw Error("Requires ((limit - start) / delta)<= 2147483647");f[t+1]=f[t]+r}let m=f[d],h=a.util.getArrayFromDType(r,m),g=0;for(let t=0;t<d;++t){let r=f[t+1]-f[t],n=i?e[0]:e[t],s=u?o[0]:o[t];for(let e=0;e<r;++e)h[g++]=n,n+=s}return[f,h]}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iB2Tp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensorImpl",()=>u);var a=e("@tensorflow/tfjs-core"),o=a.backend_util.RowPartitionType;class l{constructor(e,t,r,n,s,o,l,i,p,u){this.shape=e,this.shapeShape=t,this.values=r,this.valuesShape=n,this.valuesDType=s,this.defaultValue=o,this.defaultValueShape=l,this.rowPartitionValues=i,this.rowPartitionValuesShapes=p,this.rowPartitionTypes=a.backend_util.getRowPartitionTypesHelper(u),this.raggedRank=a.backend_util.getRaggedRank(this.rowPartitionTypes)}getRowPartitionTypeByDimension(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionTypes[e+1]:this.rowPartitionTypes[e]}getRowPartitionTensor(e){return this.rowPartitionTypes[0]===o.FIRST_DIM_SIZE?this.rowPartitionValues[e+1]:this.rowPartitionValues[e]}getMaxWidth(e){let t=this.getRowPartitionTensor(e-1);switch(this.getRowPartitionTypeByDimension(e-1)){case o.VALUE_ROWIDS:return l.getMaxWidthValueRowID(t);case o.ROW_SPLITS:return l.getMaxWidthRowSplit(t);default:throw Error(`Cannot handle partition type ${o[this.getRowPartitionTypeByDimension(e-1)]}`)}}static getMaxWidthRowSplit(e){let t=e.length;if(0===t||1===t)return 0;let r=0;for(let n=0;n<t-1;++n){let t=e[n+1]-e[n];t>r&&(r=t)}return r}static getMaxWidthValueRowID(e){let t=e.length;if(0===t)return 0;let r=0,n=e[0],s=0;for(let a=1;a<t;++a){let t=e[a];t!==n&&(n=t,s=Math.max(a-r,s),r=a)}return Math.max(t-r,s)}tensorShapeFromTensor(e,t,r=!0){if(0===t.length){if(-1===e[0])return[];throw Error("The only valid scalar shape tensor is the fully unknown shape specified as -1.")}return p(e,r)}calculateOutputSize(e){let t=this.valuesShape,r=this.defaultValueShape;a.backend_util.validateDefaultValueShape(r,t);let n=this.tensorShapeFromTensor(this.shape,this.shapeShape),s=a.backend_util.combineRaggedTensorToTensorShapes(this.raggedRank,n,t);s[0]<0&&(s[0]=e);for(let e=1;e<=this.raggedRank;++e)s[e]<0&&(s[e]=this.getMaxWidth(e));return s}calculateFirstParentOutputIndex(e,t,r){let n=Math.min(e,r),s=[],o=0;for(let e=0;e<n;++e,o+=t)s.push(o);for(let t=n;t<e;++t)s.push(-1);return a.util.assert(s.length===e,()=>"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(e,t,r,n){let s=e.length,a=[];for(let o=0;o<s-1;++o){let s=e[o+1]-e[o],l=Math.min(n,s),i=t[o];-1===i&&(l=0);for(let e=0;e<l;++e)a.push(i),i+=r;for(let e=0;e<s-l;++e)a.push(-1)}if(s>0&&a.length!==e[s-1])throw Error("Invalid row split size.");return a}calculateOutputIndexValueRowID(e,t,r,n){let s=e.length,a=[];if(0===s)return[];let o=0,l=e[0];if(l>=t.length)throw Error(`Got currentValueRowId=${l}, which is not less than ${t.length}`);let i=t[l];a.push(i);for(let p=1;p<s;++p){let s=e[p];if(s===l)i>=0&&(++o<n?i+=r:i=-1);else{if(o=0,l=s,s>=t.length)throw Error(`Got nextValueRowId=${s} which is not less than ${t.length}`);i=t[s]}a.push(i)}if(a.length!==e.length)throw Error("Invalid row ids.");return a}calculateOutputIndex(e,t,r,n){let s=this.getRowPartitionTensor(e),a=this.getRowPartitionTypeByDimension(e);switch(a){case o.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,t,r,n);case o.ROW_SPLITS:if(s.length-1>t.length)throw Error(`Row partition size is greater than output size: ${s.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(s,t,r,n);default:throw Error(`Unsupported partition type: ${o[a]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(0===this.rowPartitionTypes.length)throw Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case o.FIRST_DIM_SIZE:return e[0];case o.VALUE_ROWIDS:throw Error("Cannot handle VALUE_ROWIDS in first dimension.");case o.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw Error(`Cannot handle type ${o[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),r=Array(this.raggedRank+1);r[r.length-1]=1;for(let e=r.length-2;e>=0;--e)r[e]=r[e+1]*t[e+1];let n=p(t,!1),s=a.util.getArrayFromDType(this.valuesDType,a.util.sizeFromShape(n));if(r[0]*t[0]>0){let a=this.calculateFirstParentOutputIndex(e,r[0],t[0]);for(let e=1;e<=this.raggedRank;++e)a=this.calculateOutputIndex(e-1,a,r[e],t[e]);this.setOutput(this.raggedRank,a,s,n)}return[n,s]}setOutput(e,t,r,n){if(0===r.length)return;let s=this.values,o=n.slice();o=o.slice(e+1);let l=a.util.sizeFromShape(o),p=t.length,u=this.defaultValue;if(u.length!==l&&1!==u.length){let e=this.defaultValueShape;(0,a.tidy)(()=>{let t=(0,a.reshape)(u,e);u=(0,a.broadcastTo)(t,o).dataSync()})}let c=0,d=0,f=0;for(let e=0;e<=p;++e){let n=e<p?t[e]:-1;if(n===f){++f;continue}if(d<f){let e=s.subarray(c*l);i(r.subarray(d*l),e,(f-d)*l)}if(e>=p&&(n=Math.floor(r.length/l)),n>f)if(1===this.defaultValue.length)r.subarray(f*l,n*l).fill(this.defaultValue[0]),f=n;else for(;n>f;)i(r.slice(f*l),u,l),++f;n<0?(c=e+1,d=f):(c=e,f=(d=f)+1)}}}function i(e,t,r){for(let n=0;n<r;n++)e[n]=t[n]}function p(e,t){let r=[];for(let n of e){if(n<0){if(!t)throw Error(`Dimension ${n} must be >= 0`);if(n<-1)throw Error(`Dimension ${n} must be >= -1`);n=-1}r.push(n)}return r}function u(e,t,r,n,s,a,o,i,p,u){return new l(e,t,r,n,s,a,o,i,p,u).compute()}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ilo40:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rangeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=e===t,o=e<t&&r<0,l=t<e&&r>1;if(s||o||l)return a.util.makeZerosTypedArray(0,n);let i=Math.abs(Math.ceil((t-e)/r)),p=a.util.makeZerosTypedArray(i,n);t<e&&1===r&&(r=-1),p[0]=e;for(let e=1;e<p.length;e++)p[e]=p[e-1]+r;return p}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],anhkm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrtImpl",()=>i),s.export(r,"rsqrt",()=>p),s.export(r,"rsqrtConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/Math.sqrt(e)),p=(0,l.unaryKernelFuncFromImpl)(a.Rsqrt,i),u={kernelName:a.Rsqrt,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hS4t5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l,i,p,u){let c=e.values,d=t.values;if(0===n)return(0,a.buffer)(r,t.dtype);let f=p instanceof a.TensorBuffer?p:(0,a.buffer)([n/s,s],t.dtype);"string"==typeof p||"number"==typeof p?f.values.fill(p):"boolean"==typeof p&&f.values.fill(+p);for(let e=0;e<o;e++){let a=[],o=0;for(let t=0;t<l;t++){let r=c[e*l+t];a.push(r),o+=r*i[t]}if(o<0||o>=n/s)throw Error(`Invalid indices: ${a} does not index into ${r}`);for(let r=0;r<s;r++)u?f.values[o*s+r]+=d[e*s+r]:f.values[o*s+r]=0===t.rank?d[0]:d[e*s+r]}return f}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dgIMK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoidImpl",()=>i),s.export(r,"sigmoid",()=>p),s.export(r,"sigmoidConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>1/(1+Math.exp(-e))),p=(0,l.unaryKernelFunc)(a.Sigmoid,e=>1/(1+Math.exp(-e))),u={kernelName:a.Sigmoid,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aVrpO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sliceImpl",()=>l),s.export(r,"slice",()=>i),s.export(r,"sliceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e,t,r,n,s){let o=a.slice_util.isSliceContinous(n,t,r),l=a.util.sizeFromShape(r),i=a.util.computeStrides(n);if(o){let r=a.slice_util.computeFlatOffset(t,i);return"string"===s?e.slice(r,r+l):e.subarray(r,r+l)}let p="string"===s?a.backend_util.fromUint8ToStringArray(e):e,u=(0,a.buffer)(n,s,p),c=(0,a.buffer)(r,s);for(let e=0;e<c.size;++e){let r=c.indexToLoc(e),n=r.map((e,r)=>e+t[r]);c.set(u.get(...n),...r)}return"string"===s?a.backend_util.fromStringArrayToUint8(c.values):c.values}function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{begin:i,size:p}=n;(0,o.assertNotComplex)(s,"slice");let[u,c]=a.slice_util.parseSliceParams(s,i,p);a.slice_util.assertParamsValid(s,u,c);let d=l(r.data.get(s.dataId).values,u,c,s.shape,s.dtype);return r.makeTensorInfo(c,s.dtype,d)}let p={kernelName:a.Slice,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6qd5E":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRowsImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o,l){let i=t[0],p=o[0],u=Array(p),c=Array(i),d=t[1];if(0===p){if(0!==i)throw Error(a.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(i));return[a.util.getArrayFromDType(r,0),[0,d],a.util.getArrayFromDType(s,0),u,c]}let f=!0,m=0,h=Array(p).fill(0);for(let t=0;t<i;++t){let r=e[t*d];if(r<0)throw Error(a.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(t,r));if(r>=p)throw Error(a.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(t,r,p));++h[r],f=f&&r>=m,m=r}let g=!0;for(let e=0;e<p;++e){let t=0===h[e];u[e]=t,g=g&&!t,h[e]=Math.max(h[e],1),e>0&&(h[e]+=h[e-1])}if(g&&f){for(let e=0;e<i;++e)c[e]=e;return[e,[i,d],n,u,c]}{let t=h[p-1],o=a.util.getArrayFromDType(r,t*d),f=a.util.getArrayFromDType(s,t),m=Array(p).fill(0);for(let t=0;t<i;++t){let r=e[t*d],s=m[r],a=(0===r?0:h[r-1])+s;m[r]++;for(let r=0;r<d;++r)o[a*d+r]=e[t*d+r];f[a]=n[t],c[t]=a}for(let e=0;e<p;++e)if(0===m[e]){let t=0===e?0:h[e-1];o[t*d+0]=e;for(let e=1;e<d;++e)o[t*d+e]=0;f[t]=l}return[o,[t,d],f,u,c]}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f0gEZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshapeImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s){let o=a.util.sizeFromShape(n),l=t[0],i=s.length,p=[],u=1,c=-1;for(let e=0;e<i;++e){let t=s[e];if(-1===t){if(-1!==c)throw Error(a.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(c,e));c=e,p.push(1)}else{if(t<0)throw Error(a.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(e,t));u*=t,p.push(t)}}if(-1!==c){if(u<=0)throw Error(a.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage());let e=Math.trunc(o/u);if(u*e!==o)throw Error(a.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(n,p));p[c]=e}if(a.util.sizeFromShape(p)!==o)throw Error(a.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(n,p));let d=n.length,f=[];if(d>0){f[d-1]=1;for(let e=d-2;e>=0;--e)f[e]=f[e+1]*n[e+1]}let m=[];if(i>0){m[i-1]=1;for(let e=i-2;e>=0;--e)m[e]=m[e+1]*p[e+1]}let h=a.util.getArrayFromDType(r,l*i);for(let t=0;t<l;++t){let r=0;for(let n=0;n<d;++n)r+=e[t*d+n]*f[n];for(let e=0;e<i;++e)h[t*i+e]=Math.trunc(r/m[e]),r%=m[e]}return[h,[l,i],p]}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ZQJL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentReductionImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,l=!1,i=0){let p=n.length,u=[t[0],e.length/t[0]],c=u[1],d=p>0?s[p-1]+1:0;if(d<0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let f=t.slice();f[0]=d;let m=f.reduce((e,t)=>e*t,1),h=a.util.getArrayFromDType(r,m);if(0===p)return d>0&&h.fill(i),[h,f];if(d<=0)throw Error(a.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let g=0,x=1,y=0,v=s[0];for(;;){let t=0;if(x<p){if(v===(t=s[x])){++x;continue}if(v>=t)throw Error(a.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(v<0||v>=d)throw Error(a.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(v,d));v>y&&h.fill(i,y*c,v*c);for(let t=g;t<x;++t){let r=n[t];if(r<0||r>=u[0])throw Error(a.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(t,n[t],u[0]));for(let t=0;t<c;t++)h[v*c+t]+=e[r*c+t]}if(l)for(let e=0;e<c;e++)h[v*c+e]/=x-g;if(g=x,++x,y=v+1,v=t,x>p)break}return y<d&&h.fill(i,y*c,d*c),[h,f]}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],b2SF0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrtImpl",()=>i),s.export(r,"sqrt",()=>p),s.export(r,"sqrtConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)(e=>Math.sqrt(e)),p=(0,l.unaryKernelFunc)(a.Sqrt,e=>Math.sqrt(e)),u={kernelName:a.Sqrt,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5czoa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifferenceImpl",()=>i),s.export(r,"squaredDifference",()=>p),s.export(r,"squaredDifferenceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e-t;return r*r}),p=(0,l.binaryKernelFunc)(a.SquaredDifference,i),u={kernelName:a.SquaredDifference,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hBYHB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplaceImpl",()=>i),s.export(r,"staticRegexReplaceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_impl"),l=e("../utils/unary_utils");let i=(0,o.createSimpleUnaryImpl)((e,t)=>{let{pattern:r,replaceGlobal:n,rewrite:s}=t;return e.replace(new RegExp(r,n?"g":""),s)}),p=(0,l.unaryKernelFuncFromImpl)(a.StaticRegexReplace,i),u={kernelName:a.StaticRegexReplace,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_impl":"eTB9q","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9pkbb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSliceImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=(0,a.buffer)(e,t.dtype);for(let e=0;e<s.size;e++){let a=s.indexToLoc(e),o=Array(a.length);for(let e=0;e<o.length;e++)o[e]=a[e]*r[e]+n[e];s.set(t.get(...o),...a)}return s}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cOE3F:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGramsImpl",()=>l);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.separator=a.util.encodeString(e),this.nGramWidths=t,this.leftPad=a.util.encodeString(r),this.rightPad=a.util.encodeString(n),this.padWidth=s,this.preserveShort=o}getPadWidth(e){return Math.min(this.padWidth<0?e-1:this.padWidth,e-1)}getNumNGrams(e,t){return Math.max(0,e+2*this.getPadWidth(t)-t+1)}createNGrams(e,t,r,n,s,a){for(let o=0;o<s;++o){let l,i=this.getPadWidth(a),p=Math.max(0,i-o),u=Math.max(0,i-(s-(o+1))),c=a-(p+u),d=t+(p>0?0:o-i);l=0+p*this.leftPad.length;for(let t=0;t<c;++t)l+=e[d+t].length;l+=u*this.rightPad.length,l+=(p+u+c-1)*this.separator.length,r[n+o]=new Uint8Array(l);let f=r[n+o],m=0,h=e=>e.forEach(e=>f[m++]=e);for(let e=0;e<p;++e)h(this.leftPad),h(this.separator);for(let t=0;t<c-1;++t)h(e[d+t]),h(this.separator);if(c>0){h(e[d+c-1]);for(let e=0;e<u;++e)h(this.separator),h(this.rightPad)}else{for(let e=0;e<u-1;++e)h(this.rightPad),h(this.separator);h(this.rightPad)}}}compute(e,t){let r=e.length,n=t.length;if(n>0){let e=t[0];if(0!==e)throw Error(`First split value must be 0, got ${e}`);for(let s=1;s<n;++s){let n=t[s]>=e;if(!(n=n&&t[s]<=r))throw Error(`Invalid split value ${t[s]}, must be in [${e}, ${r}]`);e=t[s]}if(e!==r)throw Error(`Last split value must be data size. Expected ${r}, got ${e}`)}let s=n-1,o=a.util.getArrayFromDType("int32",n);if(0===r||0===n){let e=Array(r);for(let e=0;e<=s;++e)o[e]=0;return[e,o]}o[0]=0;for(let e=1;e<=s;++e){let r=t[e]-t[e-1],n=0;this.nGramWidths.forEach(e=>{n+=this.getNumNGrams(r,e)}),this.preserveShort&&r>0&&0===n&&(n=1),o[e]=o[e-1]+n}let l=Array(o[s]);for(let r=0;r<s;++r){let n=t[r],s=o[r];if(this.nGramWidths.forEach(a=>{let o=t[r+1]-t[r],i=this.getNumNGrams(o,a);this.createNGrams(e,n,l,s,i,a),s+=i}),this.preserveShort&&s===o[r]){let a=t[r+1]-t[r];if(0===a)continue;let o=a+2*this.padWidth;this.createNGrams(e,n,l,s,1,o)}}return[l,o]}}function l(e,t,r,n,s,a,l,i){return new o(r,n,s,a,l,i).compute(e,t)}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5K3Ct":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplitImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r){let n=e.length,s=[],o=0,l=0,i=Array(n);for(let a=0;a<n;++a){let n=s.length;!function(e,t,r,n){if(!e.length)return;if(0===t.length){for(let t=0;t<e.length;++t)n.push(e.subarray(t,t+1));return}if(1===t.length){let s=t[0],a=e.indexOf(s);for(;-1!==a;){let t=e.subarray(0,a);r&&0===t.length||n.push(t),a=(e=e.subarray(a+1)).indexOf(s)}r&&0===e.length||n.push(e);return}let s=0;for(let a=0;a<e.length+1;a++)if(a===e.length||-1!==t.indexOf(e[a])){let t=e.subarray(s,a);r&&0===t.length||n.push(t),s=a+1}}(e[a],t,r,s);let p=s.length-n;i[a]=p,o+=p,l=Math.max(l,p)}let p=a.util.getArrayFromDType("int32",2*o),u=Array(o),c=[n,l],d=0;for(let e=0;e<n;++e)for(let t=0;t<i[e];++t)p[2*d]=e,p[2*d+1]=t,u[d]=s[d],++d;return[p,u,c]}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cScoY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFastImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=a.util.getArrayFromDType("int32",e.length);for(let n=0;n<e.length;++n)r[n]=a.util.fingerPrint64(e[n]).modulo(t).getLowBitsUnsigned();return r}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kDL1v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"subImpl",()=>i),s.export(r,"subComplexImpl",()=>p),s.export(r,"sub",()=>u),s.export(r,"subConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e-t),p=(0,l.createComplexBinaryKernelImpl)((e,t,r,n)=>({real:e-r,imag:t-n})),u=(0,l.binaryKernelFunc)(a.Sub,i,p),c={kernelName:a.Sub,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9gEJf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tileImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t){let r=Array(e.rank);for(let n=0;n<r.length;n++)r[n]=e.shape[n]*t[n];let n=(0,a.buffer)(r,e.dtype);for(let t=0;t<n.values.length;++t){let r=n.indexToLoc(t),s=Array(e.rank);for(let t=0;t<s.length;t++)s[t]=r[t]%e.shape[t];let a=e.locToIndex(s);n.values[t]=e.values[a]}return n}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7iuur":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topKImpl",()=>l);var a=e("@tensorflow/tfjs-core");let o=(e,t)=>{let r=t.value-e.value;return 0===r?e.index-t.index:r};function l(e,t,r,n,s){let l=t[t.length-1],[i,p]=[e.length/l,l],u=a.util.getTypedArrayFromDType(r,i*n),c=a.util.getTypedArrayFromDType("int32",i*n);for(let t=0;t<i;t++){let r=t*p,l=e.subarray(r,r+p),i=Array(l.length);l.forEach((e,t)=>i[t]={value:e,index:t}),n<i.length&&(!function e(t,r,n=0,s=t.length-1){for(;s>n;){if(s-n>600){let a=s-n+1,o=r-n+1,l=Math.log(a),i=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*i*(a-i)/a)*Math.sign(o-a/2),u=Math.max(n,Math.floor(r-o*i/a+p)),c=Math.min(s,Math.floor(r+(a-o)*i/a+p));e(t,r,u,c)}let l=t[r],i=n,p=s;for(a.util.swap(t,n,r),o(t[s],l)>0&&a.util.swap(t,n,s);i<p;){for(a.util.swap(t,i,p),i++,p--;0>o(t[i],l);)i+=1;for(;o(t[p],l)>0;)p-=1}0===o(t[n],l)?a.util.swap(t,n,p):(p+=1,a.util.swap(t,p,s)),p<=r&&(n=p+1),r<=p&&(s=p-1)}}(i,n),i=i.slice(0,n)),s&&i.sort(o);let d=t*n,f=u.subarray(d,d+n),m=c.subarray(d,d+n);for(let e=0;e<n;e++)f[e]=i[e].value,m[e]=i[e].index}let d=t.slice();return d[d.length-1]=n,[(0,a.buffer)(d,r,u),(0,a.buffer)(d,"int32",c)]}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dNcr6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"uniqueImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n){let s=a.util.parseAxisParam(t,r)[0],o=[1,r[0],1];for(let e=0;e<s;e++)o[0]*=r[e];o[1]=r[s];for(let e=s+1;e<r.length;e++)o[2]*=r[e];let l=new Map,i=new Int32Array(r[s]),p=new(0,a.TensorBuffer)(o,n,e),u=[],c=1===o[0]&&1===o[2];for(let t=0;t<r[s];t++){let r;if(c)r=e[t].toString();else{let e=[];for(let r=0;r<o[0];r++)for(let n=0;n<o[2];n++)e.push(p.get(r,t,n));r=e.join(",")}let n=l.get(r);if(null!=n)i[t]=n;else{let e=l.size;l.set(r,e),i[t]=e,u.push(t)}}let d=o.slice();d[1]=l.size;let f=new(0,a.TensorBuffer)(d,n);u.forEach((e,t)=>{for(let r=0;r<o[0];r++)for(let n=0;n<o[2];n++)f.set(p.get(r,e,n),r,t,n)});let m=r.slice();return m[s]=d[1],{outputValues:f.values,outputShape:m,indices:i}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bT3dB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PackProgram",()=>i);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){if(this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),0===this.rank)this.userCode=` void main() { setOutput(vec4(getA(), 0., 0., 0.)); } `;else{const e=(0,o.getChannels)("rc",this.rank),t=(0,l.getCoordsDataType)(this.rank),r=this.getOutOfBoundsCondition(e),n=this.getSetup(e),s=this.getOutput(e);this.userCode=` void main() { ${t} rc = getOutputCoords(); if(${r}) { setOutput(vec4(0)); } else { ${n} setOutput(vec4(${s})); } } `}}getSourceCoordsArr(e){let t=[];for(let r=0;r<=1;r++)for(let n=0;n<=1;n++){let s=`${0===r?"r":"rp1"}, ${0===n?"c":"cp1"}`;for(let t=2;t<this.rank;t++)s=`${e[e.length-1-t]},`+s;t.push(s)}return t}getOutOfBoundsCondition(e){if(1===this.rank)return`rc >${this.enableShapeUniforms?"outShape":this.outputShape[0]}`;let t="";for(let r=this.rank-2;r<this.rank;r++)t+=`${e[r]} >= ${this.enableShapeUniforms?`outShape[${r}]`:this.outputShape[r]}`,r<this.rank-1&&(t+="||");return t}getSetup(e){if(1===this.rank)return"";let t=e.slice(-2),r=this.enableShapeUniforms?`outShape[${this.rank} - 1]`:this.outputShape[this.rank-1],n=this.enableShapeUniforms?`outShape[${this.rank} - 2]`:this.outputShape[this.rank-2];return` int r = ${t[0]}; int c = ${t[1]}; int rp1 = r + 1; int cp1 = c + 1; bool cEdge = cp1 >= ${r}; bool rEdge = rp1 >= ${n}; `}getOutput(e){let t=this.getSourceCoordsArr(e);if(1===this.rank){let e=this.enableShapeUniforms?"outShape":this.outputShape[0];return`getA(rc), (rc + 1 >= ${e} ? 0. : getA(rc + 1)), 0, 0`}return`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), rEdge || cEdge ? 0. : getA(${t[3]})`}}},{"./gpgpu_math":"6rFox","./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],esmZC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){return["x","y","z","w","u","v"].slice(0,t).map(t=>`${e}.${t}`)}function o(e,t){return 1===t?[e]:a(e,t)}function l(e,t){if(1===e)return"rc";let r="";for(let n=0;n<e;n++)r+=t[n],n<e-1&&(r+=",");return r}s.defineInteropFlag(r),s.export(r,"getVecChannels",()=>a),s.export(r,"getChannels",()=>o),s.export(r,"getSourceCoords",()=>l)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6df3b":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReshapePackedProgram",()=>l);var a=e("./gpgpu_math"),o=e("./shader_compiler_util");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);let r="";for(let e=0;e<4;e++){let t="thisRC = rc;";e%2==1&&(t+="thisRC.z += 1;"),e>1&&(t+="thisRC.y += 1;"),r+=` ${t} ${e>0?"if(thisRC.y< rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); result[${e}] = getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${e>0?"}":""} `}this.userCode=` ${function(e,t){let r=t?o.getLogicalCoordinatesFromFlatIndexByUniform(["r","c","d"],"inputShape"):o.getLogicalCoordinatesFromFlatIndex(["r","c","d"],e);return` ivec3 inputCoordsFromReshapedOutCoords(int index) { ${r} return ivec3(r, c, d); } `}(t,this.enableShapeUniforms)} ${this.enableShapeUniforms?o.getFlatIndexFrom3DOutput():o.getFlatIndexFrom3D(e)} void main() { ivec3 rc = getOutputCoords(); vec4 result = vec4(0.); ivec3 thisRC; int rows = ${this.enableShapeUniforms?"outShape[1]":e[1]}; int cols = ${this.enableShapeUniforms?"outShape[2]":e[2]}; ${r} setOutput(result); } `}}},{"./gpgpu_math":"6rFox","./shader_compiler_util":"7L8PC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ioezz:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TextureManager",()=>i),s.export(r,"computeBytes",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./tex_util");class i{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.usedTextures={},this.logEnabled=!1}acquireTexture(e,t,r){let n,s=u(t,r),a=c(e,s,r);a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]);let o=p(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,r);if(this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=o,this.log();let e=this.freeTextures[a].pop();return this.usedTextures[a].push(e),e}return s===l.PhysicalTextureType.PACKED_2X2_FLOAT32?n=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_2X2_FLOAT16?n=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT32?n=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.UNPACKED_FLOAT16?n=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):s===l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE&&(n=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(n),this.numUsedTextures++,this._numBytesAllocated+=o,this.log(),n}releaseTexture(e,t,r,n){if(null==this.freeTextures)return;let s=u(r,n),o=c(t,s,n);o in this.freeTextures||(this.freeTextures[o]=[]);let l=p(t,s,this.gpgpu.gl,this.gpgpu.textureConfig,n),i=(0,a.env)().getNumber("WEBGL_DELETE_TEXTURE_THRESHOLD");-1!==i&&this._numBytesAllocated>i?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=l):(this.freeTextures[o].push(e),this.numFreeTextures++,this._numBytesFree+=l),this.numUsedTextures--;let d=this.usedTextures[o],f=d&&d.indexOf(e);if(null==f||f<0)throw Error("Cannot release a texture that was never provided by this texture manager");d[f]=d[d.length-1],d.pop(),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(null!=this.freeTextures){for(let e in this.freeTextures)this.freeTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}}function p(e,t,r,n,s){let a,i=function(e,t){switch(e){case l.PhysicalTextureType.PACKED_2X2_FLOAT32:return(0,o.getInternalFormatForPackedMatrixTexture)(t);case l.PhysicalTextureType.PACKED_2X2_FLOAT16:return(0,o.getInternalFormatForFloat16PackedMatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT32:return(0,o.getInternalFormatForFloat32MatrixTexture)(t);case l.PhysicalTextureType.UNPACKED_FLOAT16:return(0,o.getInternalFormatForFloat16MatrixTexture)(t);case l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE:return(0,o.getInternalFormatForUnsignedBytesMatrixTexture)(t);default:throw Error(`Unknown physical texture type ${e}`)}}(t,n);if(s){let[t,r]=(0,l.getPackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}else{let[t,r]=(0,l.getUnpackedMatrixTextureShapeWidthHeight)(e[0],e[1]);a=t*r}return a*function(e,t){if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===e.RGBA16F)return 8;else if(t===e.RGBA8)return 4;throw Error(`Unknown internal format ${t}`)}(r,i)}function u(e,t){if(e===l.TextureUsage.UPLOAD)return l.PhysicalTextureType.PACKED_2X2_FLOAT32;if(e===l.TextureUsage.RENDER||null==e)return(0,a.env)().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?t?l.PhysicalTextureType.PACKED_2X2_FLOAT32:l.PhysicalTextureType.UNPACKED_FLOAT32:t?l.PhysicalTextureType.PACKED_2X2_FLOAT16:l.PhysicalTextureType.UNPACKED_FLOAT16;if(e===l.TextureUsage.DOWNLOAD||e===l.TextureUsage.PIXELS)return l.PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;throw Error(`Unknown logical texture type ${e}`)}function c(e,t,r){return`${e[0]}_${e[1]}_${t}_${r}`}},{"@tensorflow/tfjs-core":"2Gtps","./gpgpu_util":"lhqGJ","./tex_util":"etxDi","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],byMKQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnaryOpProgram",()=>o),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"LINEAR",()=>i),s.export(r,"ABS",()=>p),s.export(r,"STEP",()=>u),s.export(r,"ELU",()=>c),s.export(r,"RELU",()=>d),s.export(r,"RELU6",()=>f),s.export(r,"CLONE",()=>m),s.export(r,"SIGMOID",()=>h);var a=e("./gpgpu_math");class o{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } void main() { float x = getAAtOutCoords(); float y = unaryOperation(x); setOutput(y); } `}}let l="if (isnan(x)) return x;",i="return x;",p="return abs(x);";function u(e=0){return l+` return x > 0.0 ? 1.0 : float(${e}); `}let c="return (x >= 0.0) ? x : (exp(x) - 1.0);",d=l+` return (x< 0.0) ? 0.0 : x; `,f=l+` return (x < 0.0) ? 0.0 : min(6.0, x); `,m="return x;",h="return 1.0 / (1.0 + exp(-1.0 * x));"},{"./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"11H6D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LINEAR",()=>o),s.export(r,"ELU",()=>l),s.export(r,"RELU",()=>i),s.export(r,"RELU6",()=>p),s.export(r,"SIGMOID",()=>u),s.export(r,"UnaryOpPackedProgram",()=>c);var a=e("./gpgpu_math");let o="return x;",l=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; `,i=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,p=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,u="return 1.0 / (1.0 + exp(-1.0 * x));";class c{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } void main() { vec4 x = getAAtOutCoords(); vec4 y = unaryOperation(x); setOutput(y); } `}}},{"./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3INpI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"UnpackProgram",()=>i);var a=e("./gpgpu_math"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);const t=e.length,r=(0,o.getChannels)("rc",t),n=(0,l.getCoordsDataType)(t),s=(0,o.getSourceCoords)(t,r),i=r.slice(-2),p=t<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${p})); } `}}},{"./gpgpu_math":"6rFox","./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7Mq8e":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hZSdp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendWebGL",()=>i.MathBackendWebGL),s.export(r,"setWebGLContext",()=>p.setWebGLContext),s.export(r,"GPGPUContext",()=>u.GPGPUContext),s.export(r,"gpgpu_util",()=>o),s.export(r,"webgl_util",()=>l),s.export(r,"forceHalfFloat",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_util"),l=e("./webgl_util"),i=e("./backend_webgl"),p=e("./canvas_util"),u=e("./gpgpu_context");function c(){(0,a.env)().set("WEBGL_FORCE_F16_TEXTURES",!0)}},{"@tensorflow/tfjs-core":"2Gtps","./gpgpu_util":"lhqGJ","./webgl_util":"kBGlX","./backend_webgl":"hHrpm","./canvas_util":"hTzxU","./gpgpu_context":"eJgSB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"19emz":[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),p=e("./kernels/Add"),u=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),m=e("./kernels/ArgMin"),h=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),y=e("./kernels/Atan2"),v=e("./kernels/Atanh"),b=e("./kernels/AvgPool"),k=e("./kernels/AvgPool3D"),_=e("./kernels/AvgPool3DGrad"),I=e("./kernels/AvgPoolGrad"),j=e("./kernels/BatchMatMul"),w=e("./kernels/BatchNorm"),T=e("./kernels/BatchToSpaceND"),S=e("./kernels/Bincount"),C=e("./kernels/BitwiseAnd"),N=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),F=e("./kernels/Ceil"),A=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),P=e("./kernels/ComplexAbs"),$=e("./kernels/Concat"),O=e("./kernels/Conv2D"),D=e("./kernels/Conv2DBackpropFilter"),M=e("./kernels/Conv2DBackpropInput"),B=e("./kernels/Conv3D"),G=e("./kernels/Conv3DBackpropFilterV2"),V=e("./kernels/Conv3DBackpropInputV2"),L=e("./kernels/Cos"),z=e("./kernels/Cosh"),U=e("./kernels/CropAndResize"),W=e("./kernels/Cumprod"),q=e("./kernels/Cumsum"),H=e("./kernels/DenseBincount"),K=e("./kernels/DepthToSpace"),X=e("./kernels/DepthwiseConv2dNative"),Z=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),Q=e("./kernels/Diag"),J=e("./kernels/Dilation2D"),ee=e("./kernels/Einsum"),et=e("./kernels/Elu"),er=e("./kernels/EluGrad"),en=e("./kernels/Equal"),es=e("./kernels/Erf"),ea=e("./kernels/Exp"),eo=e("./kernels/ExpandDims"),el=e("./kernels/Expm1"),ei=e("./kernels/FFT"),ep=e("./kernels/Fill"),eu=e("./kernels/FlipLeftRight"),ec=e("./kernels/Floor"),ed=e("./kernels/FloorDiv"),ef=e("./kernels/FromPixels"),em=e("./kernels/FusedConv2D"),eh=e("./kernels/FusedDepthwiseConv2D"),eg=e("./kernels/GatherNd"),ex=e("./kernels/GatherV2"),ey=e("./kernels/Greater"),ev=e("./kernels/GreaterEqual"),eb=e("./kernels/Identity"),ek=e("./kernels/IFFT"),e_=e("./kernels/Imag"),eI=e("./kernels/IsFinite"),ej=e("./kernels/IsInf"),ew=e("./kernels/IsNaN"),eT=e("./kernels/LeakyRelu"),eS=e("./kernels/Less"),eC=e("./kernels/LessEqual"),eN=e("./kernels/LinSpace"),eE=e("./kernels/Log"),eF=e("./kernels/Log1p"),eA=e("./kernels/LogicalAnd"),eR=e("./kernels/LogicalNot"),eP=e("./kernels/LogicalOr"),e$=e("./kernels/LRN"),eO=e("./kernels/LRNGrad"),eD=e("./kernels/Max"),eM=e("./kernels/Maximum"),eB=e("./kernels/MaxPool"),eG=e("./kernels/MaxPool3D"),eV=e("./kernels/MaxPool3DGrad"),eL=e("./kernels/MaxPoolGrad"),ez=e("./kernels/MaxPoolWithArgmax"),eU=e("./kernels/Mean"),eW=e("./kernels/Min"),eq=e("./kernels/Minimum"),eH=e("./kernels/MirrorPad"),eK=e("./kernels/Mod"),eX=e("./kernels/Multinomial"),eZ=e("./kernels/Multiply"),eY=e("./kernels/Neg"),eQ=e("./kernels/NonMaxSuppressionV3"),eJ=e("./kernels/NonMaxSuppressionV4"),e0=e("./kernels/NonMaxSuppressionV5"),e1=e("./kernels/NotEqual"),e2=e("./kernels/OneHot"),e3=e("./kernels/OnesLike"),e6=e("./kernels/Pack"),e4=e("./kernels/PadV2"),e5=e("./kernels/Pow"),e8=e("./kernels/Prelu"),e9=e("./kernels/Prod"),e7=e("./kernels/RaggedGather"),te=e("./kernels/RaggedRange"),tt=e("./kernels/RaggedTensorToTensor"),tr=e("./kernels/Range"),tn=e("./kernels/Real"),ts=e("./kernels/RealDiv"),ta=e("./kernels/Reciprocal"),to=e("./kernels/Relu"),tl=e("./kernels/Relu6"),ti=e("./kernels/Reshape"),tp=e("./kernels/ResizeBilinear"),tu=e("./kernels/ResizeBilinearGrad"),tc=e("./kernels/ResizeNearestNeighbor"),td=e("./kernels/ResizeNearestNeighborGrad"),tf=e("./kernels/Reverse"),tm=e("./kernels/RotateWithOffset"),th=e("./kernels/Round"),tg=e("./kernels/Rsqrt"),tx=e("./kernels/ScatterNd"),ty=e("./kernels/SearchSorted"),tv=e("./kernels/Select"),tb=e("./kernels/Selu"),tk=e("./kernels/Sigmoid"),t_=e("./kernels/Sign"),tI=e("./kernels/Sin"),tj=e("./kernels/Sinh"),tw=e("./kernels/Slice"),tT=e("./kernels/Softmax"),tS=e("./kernels/Softplus"),tC=e("./kernels/SpaceToBatchND"),tN=e("./kernels/SparseFillEmptyRows"),tE=e("./kernels/SparseReshape"),tF=e("./kernels/SparseSegmentMean"),tA=e("./kernels/SparseSegmentSum"),tR=e("./kernels/SparseToDense"),tP=e("./kernels/SplitV"),t$=e("./kernels/Sqrt"),tO=e("./kernels/Square"),tD=e("./kernels/SquaredDifference"),tM=e("./kernels/StaticRegexReplace"),tB=e("./kernels/Step"),tG=e("./kernels/StridedSlice"),tV=e("./kernels/StringNGrams"),tL=e("./kernels/StringSplit"),tz=e("./kernels/StringToHashBucketFast"),tU=e("./kernels/Sub"),tW=e("./kernels/Sum"),tq=e("./kernels/Tan"),tH=e("./kernels/Tanh"),tK=e("./kernels/TensorScatterUpdate"),tX=e("./kernels/Tile"),tZ=e("./kernels/TopK"),tY=e("./kernels/Transform"),tQ=e("./kernels/Transpose"),tJ=e("./kernels/Unique"),t0=e("./kernels/Unpack"),t1=e("./kernels/UnsortedSegmentSum"),t2=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,p.addConfig,u.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,m.argMinConfig,h.asinConfig,g.asinhConfig,x.atanConfig,y.atan2Config,v.atanhConfig,b.avgPoolConfig,k.avgPool3DConfig,_.avgPool3DGradConfig,I.avgPoolGradConfig,j.batchMatMulConfig,w.batchNormConfig,T.batchToSpaceNDConfig,S.bincountConfig,C.bitwiseAndConfig,N.broadcastArgsConfig,E.castConfig,F.ceilConfig,A.clipByValueConfig,R.complexConfig,P.complexAbsConfig,$.concatConfig,O.conv2DConfig,D.conv2DBackpropFilterConfig,M.conv2DBackpropInputConfig,B.conv3DConfig,G.conv3DBackpropFilterV2Config,V.conv3DBackpropInputConfig,L.cosConfig,z.coshConfig,U.cropAndResizeConfig,W.cumprodConfig,q.cumsumConfig,H.denseBincountConfig,K.depthToSpaceConfig,X.depthwiseConv2dNativeConfig,Z.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,Q.diagConfig,J.dilation2DConfig,ee.einsumConfig,et.eluConfig,er.eluGradConfig,en.equalConfig,es.erfConfig,ea.expConfig,eo.expandDimsConfig,el.expm1Config,ei.fftConfig,ep.fillConfig,eu.flipLeftRightConfig,ec.floorConfig,ed.floorDivConfig,ef.fromPixelsConfig,em.fusedConv2DConfig,eh.fusedDepthwiseConv2DConfig,eg.gatherNdConfig,ex.gatherV2Config,ey.greaterConfig,ev.greaterEqualConfig,eb.identityConfig,ek.ifftConfig,e_.imagConfig,eI.isFiniteConfig,ej.isInfConfig,ew.isNaNConfig,eT.leakyReluConfig,eS.lessConfig,eC.lessEqualConfig,eN.linSpaceConfig,eE.logConfig,eF.log1pConfig,eA.logicalAndConfig,eR.logicalNotConfig,eP.logicalOrConfig,e$.LRNConfig,eO.LRNGradConfig,eD.maxConfig,eM.maximumConfig,eB.maxPoolConfig,eG.maxPool3DConfig,eV.maxPool3DGradConfig,eL.maxPoolGradConfig,ez.maxPoolWithArgmaxConfig,eU.meanConfig,eW.minConfig,eq.minimumConfig,eH.mirrorPadConfig,eK.modConfig,eX.multinomialConfig,eZ.multiplyConfig,eY.negConfig,eQ.nonMaxSuppressionV3Config,eJ.nonMaxSuppressionV4Config,e0.nonMaxSuppressionV5Config,e1.notEqualConfig,e2.oneHotConfig,e3.onesLikeConfig,e6.packConfig,e4.padV2Config,e5.powConfig,e8.preluConfig,e9.prodConfig,e7.raggedGatherConfig,te.raggedRangeConfig,tt.raggedTensorToTensorConfig,tr.rangeConfig,tn.realConfig,ts.realDivConfig,ta.reciprocalConfig,to.reluConfig,tl.relu6Config,ti.reshapeConfig,tp.resizeBilinearConfig,tu.resizeBilinearGradConfig,tc.resizeNearestNeighborConfig,td.resizeNearestNeighborGradConfig,tf.reverseConfig,tm.rotateWithOffsetConfig,th.roundConfig,tg.rsqrtConfig,tx.scatterNdConfig,ty.searchSortedConfig,tv.selectConfig,tb.seluConfig,tk.sigmoidConfig,t_.signConfig,tI.sinConfig,tj.sinhConfig,tw.sliceConfig,tT.softmaxConfig,tS.softplusConfig,tC.spaceToBatchNDConfig,tN.sparseFillEmptyRowsConfig,tE.sparseReshapeConfig,tF.sparseSegmentMeanConfig,tA.sparseSegmentSumConfig,tR.sparseToDenseConfig,tP.splitVConfig,t$.sqrtConfig,tO.squareConfig,tD.squaredDifferenceConfig,tM.staticRegexReplaceConfig,tB.stepConfig,tG.stridedSliceConfig,tV.stringNGramsConfig,tL.stringSplitConfig,tz.stringToHashBucketFastConfig,tU.subConfig,tW.sumConfig,tq.tanConfig,tH.tanhConfig,tK.tensorScatterUpdateConfig,tX.tileConfig,tZ.topKConfig,tY.transformConfig,tQ.transposeConfig,tJ.uniqueConfig,t0.unpackConfig,t1.unsortedSegmentSumConfig,t2.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"2Gtps","./kernels/_FusedMatMul":"9ilMK","./kernels/Abs":"bsQbp","./kernels/Acos":"j1xMQ","./kernels/Acosh":"bO72D","./kernels/Add":"rp2aY","./kernels/AddN":"dQg9A","./kernels/All":"lSx0K","./kernels/Any":"jXj1j","./kernels/ArgMax":"foxx0","./kernels/ArgMin":"25IeA","./kernels/Asin":"gFt6t","./kernels/Asinh":"9i4m0","./kernels/Atan":"lwVdA","./kernels/Atan2":"jZL8H","./kernels/Atanh":"l31E2","./kernels/AvgPool":"9LL2q","./kernels/AvgPool3D":"6DbtT","./kernels/AvgPool3DGrad":"8K7Pz","./kernels/AvgPoolGrad":"7Cxxo","./kernels/BatchMatMul":"bj0b9","./kernels/BatchNorm":"cHAjg","./kernels/BatchToSpaceND":"l4Nfx","./kernels/Bincount":"5AnHw","./kernels/BitwiseAnd":"foJoC","./kernels/BroadcastArgs":"9cSgE","./kernels/Cast":"8hJGw","./kernels/Ceil":"4LFu4","./kernels/ClipByValue":"6BeBT","./kernels/Complex":"g1bJ7","./kernels/ComplexAbs":"dlNrQ","./kernels/Concat":"4XHgE","./kernels/Conv2D":"iKaWV","./kernels/Conv2DBackpropFilter":"8KDHf","./kernels/Conv2DBackpropInput":"dAZKp","./kernels/Conv3D":"dGTSt","./kernels/Conv3DBackpropFilterV2":"75fC9","./kernels/Conv3DBackpropInputV2":"yp1Ss","./kernels/Cos":"hGMlK","./kernels/Cosh":"htdvr","./kernels/CropAndResize":"9jYPu","./kernels/Cumprod":"dQ2ms","./kernels/Cumsum":"jJsSs","./kernels/DenseBincount":"5RBVO","./kernels/DepthToSpace":"9LXR4","./kernels/DepthwiseConv2dNative":"36o00","./kernels/DepthwiseConv2dNativeBackpropFilter":"12xnA","./kernels/DepthwiseConv2dNativeBackpropInput":"4B9iu","./kernels/Diag":"ci7kL","./kernels/Dilation2D":"6eRvh","./kernels/Einsum":"jphhx","./kernels/Elu":"4P0YX","./kernels/EluGrad":"4DtrS","./kernels/Equal":"3lFAQ","./kernels/Erf":"iwuZL","./kernels/Exp":"4c99Q","./kernels/ExpandDims":"4fHop","./kernels/Expm1":"8I1xu","./kernels/FFT":"fa4nh","./kernels/Fill":"9ryy3","./kernels/FlipLeftRight":"iloIr","./kernels/Floor":"68gWA","./kernels/FloorDiv":"dW3ZT","./kernels/FromPixels":"eouhM","./kernels/FusedConv2D":"4057Z","./kernels/FusedDepthwiseConv2D":"5c3VQ","./kernels/GatherNd":"9L1cm","./kernels/GatherV2":"l9Cv5","./kernels/Greater":"2onfy","./kernels/GreaterEqual":"j3rRR","./kernels/Identity":"97wVJ","./kernels/IFFT":"1XpIh","./kernels/Imag":"3QJSY","./kernels/IsFinite":"2G76h","./kernels/IsInf":"e9CB0","./kernels/IsNaN":"dGj2A","./kernels/LeakyRelu":"7xwOe","./kernels/Less":"aRr8q","./kernels/LessEqual":"khsCA","./kernels/LinSpace":"gzgJQ","./kernels/Log":"5Afxb","./kernels/Log1p":"ihKi1","./kernels/LogicalAnd":"g7wT3","./kernels/LogicalNot":"3Jb1X","./kernels/LogicalOr":"9pxKx","./kernels/LRN":"gm5j4","./kernels/LRNGrad":"lcb03","./kernels/Max":"afHh0","./kernels/Maximum":"94OQw","./kernels/MaxPool":"3XdiF","./kernels/MaxPool3D":"2yDQt","./kernels/MaxPool3DGrad":"5foYE","./kernels/MaxPoolGrad":"fOmt4","./kernels/MaxPoolWithArgmax":"1bzUD","./kernels/Mean":"76W3Z","./kernels/Min":"1XKVy","./kernels/Minimum":"jZlPa","./kernels/MirrorPad":"akMJ7","./kernels/Mod":"gnARU","./kernels/Multinomial":"bTfCp","./kernels/Multiply":"gGANs","./kernels/Neg":"7nm6C","./kernels/NonMaxSuppressionV3":"4Tndn","./kernels/NonMaxSuppressionV4":"h8she","./kernels/NonMaxSuppressionV5":"jjRNa","./kernels/NotEqual":"cIcHR","./kernels/OneHot":"3okp7","./kernels/OnesLike":"iSWOT","./kernels/Pack":"7VW16","./kernels/PadV2":"5SaGA","./kernels/Pow":"hTipi","./kernels/Prelu":"8Anjo","./kernels/Prod":"i8gle","./kernels/RaggedGather":"9WlaC","./kernels/RaggedRange":"6frqk","./kernels/RaggedTensorToTensor":"9QHo7","./kernels/Range":"h4DwD","./kernels/Real":"cAQO8","./kernels/RealDiv":"2I75W","./kernels/Reciprocal":"cW4of","./kernels/Relu":"fD5Nl","./kernels/Relu6":"fJ8FQ","./kernels/Reshape":"aOEE6","./kernels/ResizeBilinear":"50UZz","./kernels/ResizeBilinearGrad":"9CnrH","./kernels/ResizeNearestNeighbor":"g9ks1","./kernels/ResizeNearestNeighborGrad":"bi2fw","./kernels/Reverse":"ltUYd","./kernels/RotateWithOffset":"ct6xT","./kernels/Round":"guuD3","./kernels/Rsqrt":"cEMqB","./kernels/ScatterNd":"71HHv","./kernels/SearchSorted":"2HCMo","./kernels/Select":"bAD9b","./kernels/Selu":"lQKcR","./kernels/Sigmoid":"j9jdu","./kernels/Sign":"hXrTd","./kernels/Sin":"ik6fv","./kernels/Sinh":"icMAI","./kernels/Slice":"io5JZ","./kernels/Softmax":"gCAqF","./kernels/Softplus":"3vYWS","./kernels/SpaceToBatchND":"hahtJ","./kernels/SparseFillEmptyRows":"lzibC","./kernels/SparseReshape":"20NEG","./kernels/SparseSegmentMean":"hvZiZ","./kernels/SparseSegmentSum":"kvTUn","./kernels/SparseToDense":"8zzlj","./kernels/SplitV":"bpzye","./kernels/Sqrt":"8daDR","./kernels/Square":"2Dt4D","./kernels/SquaredDifference":"2n3Wa","./kernels/StaticRegexReplace":"dPF4m","./kernels/Step":"jXf2G","./kernels/StridedSlice":"8zt5O","./kernels/StringNGrams":"7gc6P","./kernels/StringSplit":"cqC5i","./kernels/StringToHashBucketFast":"dp2Po","./kernels/Sub":"bBcnF","./kernels/Sum":"M2cwD","./kernels/Tan":"jW0aV","./kernels/Tanh":"j5B1H","./kernels/TensorScatterUpdate":"lpK3g","./kernels/Tile":"2BktY","./kernels/TopK":"ctM3S","./kernels/Transform":"2YDLy","./kernels/Transpose":"lqCy7","./kernels/Unique":"hBsG3","./kernels/Unpack":"eP6TK","./kernels/UnsortedSegmentSum":"1Qhxo","./kernels/ZerosLike":"eoHmb"}],"9ilMK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>l),s.export(r,"_fusedMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a,bias:l,preluActivationWeights:i}=t,{transposeA:p,transposeB:u,activation:c,leakyreluAlpha:d}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:p,transposeB:u,backend:r,bias:l,preluActivationWeights:i,leakyreluAlpha:d,activation:c})}let i={kernelName:a._FusedMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./BatchMatMul_impl":"aJhdh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aJhdh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MATMUL_SHARED_DIM_THRESHOLD",()=>d),s.export(r,"batchMatMulImpl",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../mulmat_packed_gpu"),i=e("./Multiply"),p=e("./Reshape"),u=e("./Sum"),c=e("./Transpose");let d=1e3;function f({a:e,b:t,transposeA:r,transposeB:n,backend:s,bias:m=null,preluActivationWeights:h=null,leakyreluAlpha:g=0,activation:x=null}){let y,v=e.shape.length,b=t.shape.length,k=r?e.shape[v-2]:e.shape[v-1],_=n?t.shape[b-1]:t.shape[b-2],I=r?e.shape[v-1]:e.shape[v-2],j=n?t.shape[b-2]:t.shape[b-1],w=e.shape.slice(0,-2),T=t.shape.slice(0,-2),S=a.util.sizeFromShape(w),C=a.util.sizeFromShape(T),N=a.broadcast_util.assertAndGetBroadcastShape(e.shape.slice(0,-2),t.shape.slice(0,-2)).concat([I,j]);a.util.assert(k===_,()=>`Error in matMul: inner shapes (${k}) and (${_}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${r} and transposeB=${n} must match.`);let E=r?[S,k,I]:[S,I,k],F=n?[C,j,_]:[C,_,j],A=(0,p.reshape)({inputs:{x:e},backend:s,attrs:{shape:E}}),R=(0,p.reshape)({inputs:{x:t},backend:s,attrs:{shape:F}}),P=[A,R],$=Math.max(S,C),O=r?A.shape[1]:A.shape[2],D=null!=m,M=null!=h,B="leakyrelu"===x,G=null!=x?(0,o.mapActivationToShaderProgram)(x,!0):null,V=D||M||B||null!=G;if((1===I||1===j)&&O>d&&!1===V){let e=A,t=R;r&&(e=(0,c.transpose)({inputs:{x:A},backend:s,attrs:{perm:[0,2,1]}}),P.push(e)),n&&(t=(0,c.transpose)({inputs:{x:R},backend:s,attrs:{perm:[0,2,1]}}),P.push(t));let a=1!==j,o=1===j,l=e;a&&(l=(0,p.reshape)({inputs:{x:e},backend:s,attrs:{shape:[$,O,1]}}),P.push(l));let d=t;o&&(d=(0,p.reshape)({inputs:{x:t},backend:s,attrs:{shape:[$,1,O]}}),P.push(d));let f=(0,i.multiply)({inputs:{a:l,b:d},backend:s});y=(0,u.sum)({inputs:{x:f},backend:s,attrs:{axis:1===j?2:1,keepDims:!0}}),P.push(f)}else{let o=(0,a.upcastType)(e.dtype,t.dtype),i=new(0,l.MatMulPackedProgram)(E,F,[$,I,j],r,n,D,G,M,B),p=[A,R];if(null!=m&&p.push(m),M&&p.push(h),B){let e=s.makeTensorInfo([],"float32",a.util.createScalarValue(g,"float32"));p.push(e),P.push(e)}y=s.runWebGLProgram(i,p,o)}let L=(0,p.reshape)({inputs:{x:y},backend:s,attrs:{shape:N}});for(let e of(P.push(y),P))s.disposeIntermediateTensorInfo(e);return L}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../mulmat_packed_gpu":"eloy9","./Multiply":"gGANs","./Reshape":"aOEE6","./Sum":"M2cwD","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5oexO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_UNARY",()=>f),s.export(r,"unaryKernelFunc",()=>m),s.export(r,"binaryKernelFunc",()=>h),s.export(r,"mapActivationToShaderProgram",()=>g);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernels/Complex"),p=e("../kernels/LeakyRelu"),u=e("../kernels/Prelu"),c=e("../unaryop_gpu"),d=e("../unaryop_packed_gpu");let f="if (isnan(x)) return x;";function m({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:r,dtype:n}){return({inputs:s,backend:o})=>{let l,{x:i}=s,p=n||i.dtype;if(o.shouldExecuteOnCPU([i])&&null!=r){let e=r(o.texData.get(i.dataId).values,p);return o.makeTensorInfo(i.shape,p,e)}return l=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&null!=t?new(0,d.UnaryOpPackedProgram)(i.shape,t):new(0,c.UnaryOpProgram)(i.shape,e),o.runWebGLProgram(l,[i],p)}}function h({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:r=!1,supportsComplex:n=!1,cpuKernelImpl:s,dtype:p}){return({inputs:u,backend:c})=>{let d,{a:f,b:m}=u;if(n&&"complex64"===f.dtype){let t=c.texData.get(f.dataId),r=c.texData.get(m.dataId),[n,s]=[[t.complexTensorInfos.real,r.complexTensorInfos.real],[t.complexTensorInfos.imag,r.complexTensorInfos.imag]].map(t=>{let[r,n]=t,s={dataId:r.dataId,dtype:r.dtype,shape:f.shape},l={dataId:n.dataId,dtype:n.dtype,shape:m.shape},i=new(0,o.BinaryOpProgram)(e,f.shape,m.shape);return c.runWebGLProgram(i,[s,l],(0,a.upcastType)(r.dtype,n.dtype))}),l=(0,i.complex)({inputs:{real:n,imag:s},backend:c});return c.disposeIntermediateTensorInfo(n),c.disposeIntermediateTensorInfo(s),l}let h=p||(0,a.upcastType)(f.dtype,m.dtype);if(("string"===f.dtype||"string"===m.dtype||c.shouldExecuteOnCPU([f,m]))&&null!=s){let e=c.texData.get(f.dataId).values,t=c.texData.get(m.dataId).values,r="string"===f.dtype?a.backend_util.fromUint8ToStringArray(e):e,n="string"===f.dtype?a.backend_util.fromUint8ToStringArray(t):t,[o,l]=s(f.shape,m.shape,r,n,h),i=c.makeTensorInfo(l,h);return c.texData.get(i.dataId).values=o,i}return d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&null!=t?new(0,l.BinaryOpPackedProgram)(t,f.shape,m.shape,r):new(0,o.BinaryOpProgram)(e,f.shape,m.shape),c.runWebGLProgram(d,[f,m],h)}}function g(e,t=!1){if("linear"===e)return t?d.LINEAR:c.LINEAR;if("relu"===e)return t?d.RELU:c.RELU;if("elu"===e)return t?d.ELU:c.ELU;if("relu6"===e)return t?d.RELU6:c.RELU6;if("prelu"===e)return t?u.PRELU_PACKED:u.PRELU;else if("leakyrelu"===e)return t?p.LEAKYRELU_PACKED:p.LEAKYRELU;else if("sigmoid"===e)return t?d.SIGMOID:c.SIGMOID;throw Error(`Activation ${e} has not been implemented for the WebGL backend.`)}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","../kernels/Complex":"g1bJ7","../kernels/LeakyRelu":"7xwOe","../kernels/Prelu":"8Anjo","../unaryop_gpu":"byMKQ","../unaryop_packed_gpu":"11H6D","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],mK7ON:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET",()=>l),s.export(r,"SQUARED_DIFFERENCE",()=>i),s.export(r,"BinaryOpProgram",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");let l=` if (isnan(a)) return a; if (isnan(b)) return b; `,i="return (a - b) * (a - b);";class p{constructor(e,t,r){this.variableNames=["A","B"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } void main() { float a = getAAtOutCoords(); float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } `}}},{"@tensorflow/tfjs-core":"2Gtps","./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hyPKl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CHECK_NAN_SNIPPET_PACKED",()=>p),s.export(r,"ELU_DER",()=>u),s.export(r,"NOT_EQUAL",()=>c),s.export(r,"BinaryOpPackedProgram",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math"),l=e("./packing_util"),i=e("./shader_compiler");let p=` result.r = isNaN.r ? NAN : result.r; result.g = isNaN.g ? NAN : result.g; result.b = isNaN.b ? NAN : result.b; result.a = isNaN.a ? NAN : result.a; `,u=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); `,c=` return vec4(notEqual(a, b)); `;class d{constructor(e,t,r,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r);const s=this.outputShape.length;this.enableShapeUniforms=(0,o.useShapeUniforms)(s);let p="";if(n)if(0===s||1===a.util.sizeFromShape(this.outputShape))p=` result.y = 0.; result.z = 0.; result.w = 0.; `;else{const e=(0,i.getCoordsDataType)(s);if(p=` ${e} coords = getOutputCoords(); `,1===s)this.enableShapeUniforms?p+=` result.y = (coords + 1) >= outShape ? 0. : result.y; result.z = 0.; result.w = 0.; `:p+=` result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; `;else{const e=(0,l.getChannels)("coords",s);this.enableShapeUniforms?p+=` bool nextRowOutOfBounds = (${e[s-2]} + 1) >= outShape[${s} - 2]; bool nextColOutOfBounds = (${e[s-1]} + 1) >= outShape[${s} - 1]; result.y = nextColOutOfBounds ? 0. : result.y; result.z = nextRowOutOfBounds ? 0. : result.z; result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; `:p+=` bool nextRowOutOfBounds = (${e[s-2]} + 1) >= ${this.outputShape[s-2]}; bool nextColOutOfBounds = (${e[s-1]} + 1) >= ${this.outputShape[s-1]}; result.y = nextColOutOfBounds ? 0. : result.y; result.z = nextRowOutOfBounds ? 0. : result.z; result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; `}}this.userCode=` vec4 binaryOperation(vec4 a, vec4 b) { ${e} } void main() { vec4 a = getAAtOutCoords(); vec4 b = getBAtOutCoords(); vec4 result = binaryOperation(a, b); ${p} setOutput(result); } `}}},{"@tensorflow/tfjs-core":"2Gtps","./gpgpu_math":"6rFox","./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],g1bJ7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complex",()=>l),s.export(r,"complexConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{real:n,imag:s}=t,a=r.makeTensorInfo(n.shape,"complex64");return r.texData.get(a.dataId).complexTensorInfos={real:(0,o.identity)({inputs:{x:n},backend:r}),imag:(0,o.identity)({inputs:{x:s},backend:r})},a}let i={kernelName:a.Complex,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"97wVJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{x:n}=t;return r.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}s.defineInteropFlag(r),s.export(r,"identity",()=>a),s.export(r,"identityConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Identity,backendName:"webgl",kernelFunc:a}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7xwOe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LEAKYRELU",()=>i),s.export(r,"LEAKYRELU_PACKED",()=>p),s.export(r,"leakyRelu",()=>u),s.export(r,"leakyReluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a< 0.) ? b * a : a;",p=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); `;function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:u}=n,c=r.makeTensorInfo([],"float32",a.util.createScalarValue(u,"float32")),d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(p,s.shape,c.shape):new(0,o.BinaryOpProgram)(i,s.shape,c.shape),f=r.runWebGLProgram(d,[s,c],"float32");return r.disposeIntermediateTensorInfo(c),f}let c={kernelName:a.LeakyRelu,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8Anjo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PRELU",()=>i),s.export(r,"PRELU_PACKED",()=>p),s.export(r,"prelu",()=>u),s.export(r,"preluConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i="return (a< 0.) ? b * a : a;",p=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); `;function u(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t,u=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(p,n.shape,s.shape):new(0,o.BinaryOpProgram)(i,n.shape,s.shape);return r.runWebGLProgram(u,[n,s],"float32")}let c={kernelName:a.Prelu,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eloy9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MatMulPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t,r,n=!1,s=!1,o=!1,l=null,i=!1,p=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=r,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);const u=Math.ceil((n?e[1]:e[2])/2),c=n?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],d=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let f="",m="";l&&(f=i?`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${l} }`:p?`vec4 activation(vec4 a) { vec4 b = getLeakyreluAlphaAtOutCoords(); ${l} }`:`vec4 activation(vec4 x) { ${l} }`,m="result = activation(result);"),o&&this.variableNames.push("bias"),i&&this.variableNames.push("preluActivationWeights"),p&&this.variableNames.push("leakyreluAlpha");let h="rc.x",g="rc.x";e[0]<t[0]?h=`imod(rc.x, ${e[0]})`:t[0]<e[0]&&(g=`imod(rc.x, ${t[0]})`),this.userCode=` ${f} // Don't use uniform for sharedDimensionPacked for performance. const float sharedDimension = ${u}.0; vec4 dot2x2ARowBCol(ivec3 rc) { vec4 result = vec4(0); int batchA = ${h}; int batchB = ${g}; for (int i = 0; i < ${u}; i++) { vec4 a = getMatrixA(batchA, ${n?"i * 2, rc.y":"rc.y, i * 2"}); vec4 b = getMatrixB(batchB, ${s?"rc.z, i * 2":"i * 2, rc.z"}); // These swizzled products need to be separately added. // See: https://github.com/tensorflow/tfjs/issues/1735 result += (${c[0]} * ${d[0]}); result += (${c[1]} * ${d[1]}); } return result; } void main() { ivec3 rc = getOutputCoords(); vec4 result = dot2x2ARowBCol(rc); ${o?"result += getBiasAtOutCoords();":""} ${m} setOutput(result); } `}}},{"./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gGANs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multiply",()=>d),s.export(r,"multiplyConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_complex_gpu"),l=e("../binaryop_gpu"),i=e("../binaryop_packed_gpu"),p=e("../kernel_utils/shared"),u=e("./Complex");let c="return a * b;";function d(e){let t,{inputs:r,backend:n}=e,{a:s,b:d}=r,f=a.backend_util.upcastType(s.dtype,d.dtype);if("complex64"===s.dtype){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),r=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.REAL,s.shape,d.shape),a=new(0,o.BinaryOpComplexProgram)(o.COMPLEX_MULTIPLY.IMAG,s.shape,d.shape),l=[{dataId:e.complexTensorInfos.real.dataId,dtype:e.complexTensorInfos.real.dtype,shape:s.shape},{dataId:e.complexTensorInfos.imag.dataId,dtype:e.complexTensorInfos.imag.dtype,shape:s.shape},{dataId:t.complexTensorInfos.real.dataId,dtype:t.complexTensorInfos.real.dtype,shape:d.shape},{dataId:t.complexTensorInfos.imag.dataId,dtype:t.complexTensorInfos.imag.dtype,shape:d.shape}],i=n.runWebGLProgram(r,l,"float32"),p=n.runWebGLProgram(a,l,"float32"),c=(0,u.complex)({inputs:{real:i,imag:p},backend:n});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(p),c}if(n.shouldExecuteOnCPU([s,d])){let e=n.texData.get(s.dataId),t=n.texData.get(d.dataId),[r,a]=(0,p.multiplyImplCPU)(s.shape,d.shape,e.values,t.values,f),o=n.makeTensorInfo(a,f);return n.texData.get(o.dataId).values=r,o}return t=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,i.BinaryOpPackedProgram)(c,s.shape,d.shape):new(0,l.BinaryOpProgram)(c,s.shape,d.shape),n.runWebGLProgram(t,[s,d],f)}let f={kernelName:a.Multiply,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_complex_gpu":"7AoYx","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","../kernel_utils/shared":"6ruDg","./Complex":"g1bJ7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7AoYx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"COMPLEX_MULTIPLY",()=>o),s.export(r,"BinaryOpComplexProgram",()=>l);var a=e("@tensorflow/tfjs-core");let o={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"};class l{constructor(e,t,r){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=a.backend_util.assertAndGetBroadcastShape(t,r),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} } void main() { float areal = getARealAtOutCoords(); float aimag = getAImagAtOutCoords(); float breal = getBRealAtOutCoords(); float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } `}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aOEE6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>i),s.export(r,"reshapeConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reshape"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:i}=n,p=a.util.sizeFromShape(s.shape),u=a.util.inferFromImplicitShape(i,p),c=a.util.sizeFromShape(u);a.util.assert(p===c,()=>`The new shape (${u}) has ${c} elements and the old shape (${s.shape}) has ${p} elements. The new shape and old shape must have the same number of elements.`);let d=r.texData.get(s.dataId);return!d.isPacked||(0,l.isReshapeFree)(s.shape,u)||null!==d.texture&&(0,l.isReshapeFree)(d.shape,u)?(r.incRef(s.dataId),{dataId:s.dataId,shape:u,dtype:s.dtype}):(0,o.packedReshape)(s,u,r)}let p={kernelName:a.Reshape,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reshape":"bLpAd","../webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bLpAd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"packedReshape",()=>l);var a=e("../reshape_packed_gpu"),o=e("../webgl_util");function l(e,t,r){let n=[(0,o.getBatchDim)(e.shape),...(0,o.getRowsCols)(e.shape)],s={dtype:e.dtype,shape:n,dataId:e.dataId},l=[(0,o.getBatchDim)(t),...(0,o.getRowsCols)(t)],i=new(0,a.ReshapePackedProgram)(l,n),p=r.runWebGLProgram(i,[s],e.dtype,[n],!0);return{dataId:p.dataId,shape:t,dtype:p.dtype}}},{"../reshape_packed_gpu":"6df3b","../webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],M2cwD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>l),s.export(r,"sumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Sum_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,keepDims:l}=n;return(0,o.sumImpl)(s,a,l,r)}let i={kernelName:a.Sum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Sum_impl":"8eaPk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8eaPk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sumImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose_impl");function p(e,t,r,n){let s=e.shape.length,p=a.util.parseAxisParam(t,e.shape),u=p,c=a.backend_util.getAxesPermutation(u,s),d=null!=c,f=e;d&&(f=(0,i.transposeImpl)(e,c,n),u=a.backend_util.getInnerMostAxes(u.length,s)),a.backend_util.assertAxesAreInnerMostDims("sum",u,s);let[m,h]=a.backend_util.computeOutAndReduceShapes(f.shape,u),g=m;r&&(g=a.backend_util.expandShapeToKeepDim(m,p));let x=a.util.sizeFromShape(h),y=a.util.sizeFromShape(e.shape),v=(0,l.reshape)({inputs:{x:f},attrs:{shape:[y/x,x]},backend:n}),b=(0,a.sumOutType)(e.dtype),k=(0,o.reduce)(v,b,"sum",n),_=(0,l.reshape)({inputs:{x:k},attrs:{shape:g},backend:n});return n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(k),d&&n.disposeIntermediateTensorInfo(f),_}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","./Reshape":"aOEE6","./Transpose_impl":"3ouoc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gwlbf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reduce",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../mean_gpu"),l=e("../reduce_gpu");function i(e,t,r,n){let s=function(e){let t=[];for(;0===t.length||1!==t[t.length-1].outSize;){let r=t.length?t[t.length-1].outSize:e[1],n=a.backend_util.computeOptimalWindowSize(r);t.push({inSize:r,windowSize:n,outSize:Math.ceil(r/n)})}return t}(e.shape),i=e;for(let a=0;a<s.length;a++){let p,u,{inSize:c,windowSize:d,outSize:f}=s[a];p="mean"===r?0===a?new(0,o.MeanProgram)({windowSize:d,inSize:c,batchSize:e.shape[0],outSize:f},c):new(0,o.MeanProgram)({windowSize:d,inSize:c,batchSize:e.shape[0],outSize:f}):new(0,l.ReduceProgram)({windowSize:d,inSize:c,batchSize:e.shape[0],outSize:f},r),u=i,i=n.runWebGLProgram(p,[i],t),u.dataId!==e.dataId&&n.disposeIntermediateTensorInfo(u)}return i}},{"@tensorflow/tfjs-core":"2Gtps","../mean_gpu":"k1kh0","../reduce_gpu":"jCsO5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k1kh0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MeanProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t){this.variableNames=["x"];const{windowSize:r,batchSize:n,inSize:s,outSize:o}=e;this.outputShape=[n,o];const l=4*Math.floor(r/4),i=r%4;let p="sumValue += dot(values, ones);";if(null!=t){const e=1/t;p=`sumValue += dot(values * ${a.util.isInt(e)?e.toPrecision(2):e}, ones);`}let u="";s%r>0&&(u=` if (inIdx< 0 || inIdx >= ${s}) { return 0.0; } `),this.userCode=` const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float getValue(int batch, int inIdx) { ${u} return getX(batch, inIdx); } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = outIdx * ${r}; float sumValue = 0.0; for (int i = 0; i< ${l}; i += 4) { int inIdx = inOffset + i; vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), getValue(batch, inIdx + 3) ); ${p} } int inIdx = inOffset + ${l}; if (${1===i}) { vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0); ${p} } else if (${2===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), 0.0, 0.0); ${p} } else if (${3===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), 0.0); ${p} } setOutput(sumValue); } `}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jCsO5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReduceProgram",()=>a);class a{constructor(e,t){this.variableNames=["x"];const{windowSize:r,batchSize:n,inSize:s,outSize:a}=e;this.outputShape=[n,a];let o="0.0",l="";"prod"===t?o="1.0":"min"===t?(o="1.0 / 1e-20",l="min"):"max"===t&&(o="-1.0 / 1e-20",l="max");let i=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"sum"===t?i="sumValue":"prod"===t?i="prodValue":"all"===t?i="allValue":"any"===t&&(i="anyValue");const p=4*Math.floor(r/4),u=r%4;let c=` if (${"sum"===t}) { sumValue += dot(values, ones); } else if (${"prod"===t}) { vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); prodValue *= tmp[0] * tmp[1]; } else { minMaxValue = ${l}(values, minMaxValue); if (${"min"===t} || ${"max"===t}) { minMaxValue = ${l}(values, minMaxValue); bvec4 isNaN = isnan(values); if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) { minMaxValue = vec4(NAN); } } } `,d="vec4";"all"===t?(o="1.0",c=` bool reducedAllValue = all(values); float floatedReducedAllValue = float(reducedAllValue); allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); `,d="bvec4"):"any"===t&&(o="0.0",c=` bool reducedAnyValue = any(values); float floatedReducedAnyValue = float(reducedAnyValue); anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); `,d="bvec4");let f="";s%r>0&&(f=` if (inIdx< 0 || inIdx >= ${s}) { return initializationValue; } `),this.userCode=` const float initializationValue = ${o}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float getValue(int batch, int inIdx) { ${f} return getX(batch, inIdx); } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = outIdx * ${r}; vec4 minMaxValue = vec4(${o}); float prodValue = 1.0; float sumValue = 0.0; float allValue = 1.0; float anyValue = 0.0; for (int i = 0; i< ${p}; i += 4) { int inIdx = inOffset + i; ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), getValue(batch, inIdx + 3) ); ${c} } int inIdx = inOffset + ${p}; if (${1===u}) { ${d} values = ${d}( getValue(batch, inIdx), initializationValue, initializationValue, initializationValue ); ${c} } else if (${2===u}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), initializationValue, initializationValue ); ${c} } else if (${3===u}) { ${d} values = ${d}( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), initializationValue ); ${c} } setOutput(${i}); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3ouoc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transposeImpl",()=>p),s.export(r,"transposeImplCPU",()=>o.transposeImplCPU);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../transpose_gpu"),i=e("../transpose_packed_gpu");function p(e,t,r){let n=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.TransposePackedProgram)(e.shape,t):new(0,l.TransposeProgram)(e.shape,t);return r.runWebGLProgram(n,[e],e.dtype)}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../transpose_gpu":"5sOOk","../transpose_packed_gpu":"1DUKj","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5sOOk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransposeProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];const r=Array(e.length);for(let n=0;n<r.length;n++)r[n]=e[t[n]];this.outputShape=r,this.rank=r.length;const n=(0,a.getCoordsDataType)(this.rank),s=function(e){let t=e.length;if(t>6)throw Error(`Transpose for rank ${t} is not yet supported`);let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=Array(t);for(let t=0;t<e.length;t++)n[e[t]]=r[t];return n.join()}(t);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${s})); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1DUKj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransposePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0;const r=Array(e.length);for(let n=0;n<r.length;n++)r[n]=e[t[n]];if(this.outputShape=r,this.rank=r.length,this.rank>6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const n=(0,o.getCoordsDataType)(this.rank),s=(0,a.getVecChannels)("rc",this.rank),l=Array(this.rank);for(let e=0;e<t.length;e++)l[t[e]]=s[e];const i=`vec2(${l.slice(-2).join()})`,p=`++${s[this.rank-1]} < ${r[this.rank-1]}`,u=`getChannel(getA(${l.join()}), ${i})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 result = vec4(0.); result[0] = ${u}; if(${p}) { result[1] = ${u}; } --${s[this.rank-1]}; if(++${s[this.rank-2]} < ${r[this.rank-2]}) { result[2] = ${u}; if(${p}) { result[3] = ${u}; } } setOutput(result); } `}}},{"./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lqCy7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transpose",()=>l),s.export(r,"transposeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Transpose_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:a}=r,{perm:l}=s,i=Array(a.shape.length);for(let e=0;e<i.length;e++)i[e]=a.shape[l[e]];if(n.shouldExecuteOnCPU([a])){let e=n.texData.get(a.dataId).values,r=(0,o.transposeImplCPU)(e,a.shape,a.dtype,l,i);t=n.makeTensorInfo(i,a.dtype),n.texData.get(t.dataId).values=r}else t=(0,o.transposeImpl)(a,l,n);return t}let i={kernelName:a.Transpose,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Transpose_impl":[["transposeImpl","3ouoc"],["transposeImplCPU","6ruDg"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bsQbp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"abs",()=>u),s.export(r,"absConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let p="return abs(x);";function u(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])&&"complex64"!==s.dtype){let e=n.texData.get(s.dataId),t=(0,o.simpleAbsImplCPU)(e.values);return n.makeTensorInfo(s.shape,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,p):new(0,l.UnaryOpProgram)(s.shape,p),n.runWebGLProgram(t,[s],s.dtype)}let c={kernelName:a.Abs,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../unaryop_gpu":"byMKQ","../unaryop_packed_gpu":"11H6D","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j1xMQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>i),s.export(r,"acosConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if (abs(x) > 1.) { return NAN; } return acos(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Acos,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bO72D:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>i),s.export(r,"acoshConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if (x< 1.0) return NAN; return log(x + sqrt(x * x - 1.0));`,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Acosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],rp2aY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addKernelFunc",()=>p),s.export(r,"addConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a + b;",p=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.addImplCPU}),u={kernelName:a.Add,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dQg9A:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>p),s.export(r,"addNConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../addn_gpu"),l=e("../addn_packed_gpu"),i=e("./Identity");function p(e){let{inputs:t,backend:r}=e;if(1===t.length)return(0,i.identity)({inputs:{x:t[0]},backend:r});if(t.length>(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){let e=Math.floor(t.length/2),n=p({inputs:t.slice(0,e),backend:r}),s=p({inputs:t.slice(e),backend:r});return p({inputs:[n,s],backend:r})}let n=t.map(e=>e.dtype).reduce((e,t)=>(0,a.upcastType)(e,t)),s=t.map(e=>e.shape),u=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.AddNPackedProgram)(t[0].shape,s):new(0,o.AddNProgram)(t[0].shape,s);return r.runWebGLProgram(u,t,n)}let u={kernelName:a.AddN,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../addn_gpu":"jWIM2","../addn_packed_gpu":"8kHV9","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jWIM2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);const r=[];this.variableNames.forEach(e=>{r.push(`float v${e} = get${e}AtOutCoords();`)});const n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` void main() { ${r.join("\n ")} float result = ${n}; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8kHV9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AddNPackedProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((e,t)=>`T${t}`);const r=[];this.variableNames.forEach(e=>{r.push(`vec4 v${e} = get${e}AtOutCoords();`)});const n=this.variableNames.map(e=>`v${e}`).join(" + ");this.userCode=` void main() { ${r.join("\n ")} vec4 result = ${n}; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lSx0K:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>p),s.export(r,"allConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{axis:u,keepDims:c}=s,d=p.shape.length,f=a.util.parseAxisParam(u,p.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=p;null!=h&&(g=(0,i.transpose)({inputs:{x:p},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,d)),a.backend_util.assertAxesAreInnerMostDims("all",m,d);let[x,y]=a.backend_util.computeOutAndReduceShapes(g.shape,m),v=a.util.sizeFromShape(y),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,v]}}),k=(0,o.reduce)(b,b.dtype,"all",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:k},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:k},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(k),null!=h&&n.disposeIntermediateTensorInfo(g),t}let u={kernelName:a.All,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","./Reshape":"aOEE6","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jXj1j:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>p),s.export(r,"anyConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{axis:u,keepDims:c}=s,d=p.shape.length,f=a.util.parseAxisParam(u,p.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=p;null!=h&&(g=(0,i.transpose)({inputs:{x:p},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,d)),a.backend_util.assertAxesAreInnerMostDims("any",m,d);let[x,y]=a.backend_util.computeOutAndReduceShapes(g.shape,m),v=a.util.sizeFromShape(y),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,v]}}),k=(0,o.reduce)(b,b.dtype,"any",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:k},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:k},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(k),null!=h&&n.disposeIntermediateTensorInfo(g),t}let u={kernelName:a.Any,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","./Reshape":"aOEE6","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],foxx0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i),s.export(r,"argMaxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,p=a.util.parseAxisParam(i,s.shape),u=a.backend_util.getAxesPermutation(p,s.shape.length),c=s,d=[];null!=u&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:u}})),p=a.backend_util.getInnerMostAxes(p.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMax",[p[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,p[0],"max");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let p={kernelName:a.ArgMax,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/arg_min_max":"7vOin","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7vOin":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMinMaxReduce",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../argminmax_gpu"),l=e("../argminmax_packed_gpu"),i=e("../kernels/Reshape");function p(e,t,r,n){let s=[r];if(a.backend_util.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),s,t.shape.length),!(0,a.env)().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let r=[],l=e.texData.get(t.dataId),p=null!==l&&l.isPacked,u=t;p&&r.push(u=e.unpackTensor(t));let[c,d]=a.backend_util.computeOutAndReduceShapes(u.shape,s),f=a.util.sizeFromShape(d),m=(0,i.reshape)({inputs:{x:u},backend:e,attrs:{shape:[-1,f]}});r.push(m);let h=function e(t,r,n,s=null){let l=r.shape[0],i=r.shape[1];null!=s&&(l=s.shape[0],i=s.shape[1]);let p=a.backend_util.computeOptimalWindowSize(i),u={windowSize:p,inSize:i,batchSize:l,outSize:Math.ceil(i/p)},c=new(0,o.ArgMinMaxProgram)(u,n,null==s),d=[r];null!=s&&d.push(s);let f=t.runWebGLProgram(c,d,"int32");if(1===f.shape[1])return f;let m=e(t,r,n,f);return t.disposeIntermediateTensorInfo(f),m}(e,m,n);r.push(h);let g=(0,i.reshape)({inputs:{x:h},backend:e,attrs:{shape:c}});return r.forEach(t=>e.disposeIntermediateTensorInfo(t)),g}return function e(t,r,n,s=null){let o=null!=s?s.shape:r.shape,i=o[o.length-1],p=a.backend_util.computeOptimalWindowSize(i),u=new(0,l.ArgMinMaxPackedProgram)(o,p,n,null==s),c=null==s?[r]:[r,s],d=t.runWebGLProgram(u,c,"int32");if(d.shape.length===r.shape.length){let s=e(t,r,n,d);return t.disposeIntermediateTensorInfo(d),s}return d}(e,t,n)}},{"@tensorflow/tfjs-core":"2Gtps","../argminmax_gpu":"2ugSk","../argminmax_packed_gpu":"hKRFn","../kernels/Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2ugSk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["A"];const{windowSize:n,batchSize:s,outSize:a}=e;r||this.variableNames.push("bestIndicesA"),this.outputShape=[s,a],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = outIdx * ${n}; int bestIndex = inOffset; float bestValue = getA(batch, bestIndex); for (int i = 0; i< ${n}; i++) { int inIdx = ${r?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));"}; float candidate = getA(batch, inIdx); if (candidate ${"max"===t?">":"<"} bestValue) { bestValue = candidate; bestIndex = inIdx; } } setOutput(float(bestIndex)); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hKRFn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ArgMinMaxPackedProgram",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t,r,n){let s,i;this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,a.util.assert(e.length>2,()=>`Packed arg${r.charAt(0).toUpperCase()+r.slice(1)} supports only inputs with rank above 2.`);const p=Math.ceil(e[e.length-1]/t);this.outputShape=e.slice(0,-1),p>1&&this.outputShape.push(p),n||this.variableNames.push("bestIndicesA");const u=this.outputShape,c=u.length,d=(0,l.getCoordsDataType)(c),f=(0,o.getChannels)("coords",c);if(1===p){i=c+1;const e=(0,l.getCoordsDataType)(i);s=` ${e} sourceLocR = ${e}(${f.join()}, 0); ++${f[c-1]}; ${e} sourceLocG = ${e}(${f.join()}, 0); ++${f[c-2]}; ${e} sourceLocA = ${e}(${f.join()}, 0); --${f[c-1]}; ${e} sourceLocB = ${e}(${f.join()}, 0); --${f[c-2]};`}else i=c,s=` ${d} sourceLocR = coords; ++${f[c-1]}; ${d} sourceLocG = coords; ++${f[c-2]}; ${d} sourceLocA = coords; --${f[c-1]}; ${d} sourceLocB = coords; --${f[c-2]};`;const m=["x","y","z","w","u","v"].slice(0,i),h="."+m[i-1],g=m.map(e=>"int "+e),x=(0,o.getChannels)("sourceLocR",i-1).concat("inIdx.r"),y=(0,o.getChannels)("sourceLocG",i-1).concat("inIdx.g"),v=(0,o.getChannels)("sourceLocB",i-1).concat("inIdx.b"),b=(0,o.getChannels)("sourceLocA",i-1).concat("inIdx.a"),k="max"===r?"greaterThan":"lessThan",_=n?"":` inIdx = round(vec4(getBestIndicesAChannel(${x.join()}), getBestIndicesAChannel(${y.join()}), getBestIndicesAChannel(${v.join()}), getBestIndicesAChannel(${b.join()})));`,I=`vec4( getAChannel(${x.join()}), hasNextCol ? getAChannel(${y.join()}) : 0., hasNextRow ? getAChannel(${v.join()}) : 0., hasNextRow && hasNextCol ? getAChannel(${b.join()}) : 0.)`,j=n?"":` float getBestIndicesAChannel(${g.join()}) { return getChannel(getBestIndicesA(${m.join()}), vec2(${m.slice(-2).join()})); }`;this.userCode=` float getAChannel(${g.join()}) { return getChannel(getA(${m.join()}), vec2(${m.slice(-2).join()})); } ${j} void main() { ${d} coords = getOutputCoords(); bool hasNextCol = ${f[c-1]}< ${u[c-1]-1}; bool hasNextRow = ${f[c-2]} < ${u[c-2]-1}; ${s} ivec4 srcIdx = ivec4(sourceLocR${h}, sourceLocG${h}, sourceLocB${h}, sourceLocA${h}) * ${t}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); vec4 bestValue = ${I}; for (int i = 0; i < ${t}; i++) { inIdx = srcIdx; ${_} vec4 candidate = ${I}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${k}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); bestValue = vec4(replace.x ? candidate.x : bestValue.x, replace.y ? candidate.y : bestValue.y, replace.z ? candidate.z : bestValue.z, replace.w ? candidate.w : bestValue.w); bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); srcIdx++; } setOutput(bestIndex); } `}}},{"@tensorflow/tfjs-core":"2Gtps","./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"25IeA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/arg_min_max"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n,p=a.util.parseAxisParam(i,s.shape),u=a.backend_util.getAxesPermutation(p,s.shape.length),c=s,d=[];null!=u&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:u}})),p=a.backend_util.getInnerMostAxes(p.length,c.shape.length)),a.backend_util.assertAxesAreInnerMostDims("argMin",[p[0]],c.shape.length);let f=(0,o.argMinMaxReduce)(r,c,p[0],"min");return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),f}let p={kernelName:a.ArgMin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/arg_min_max":"7vOin","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gFt6t:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>i),s.export(r,"asinConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if (abs(x) > 1.) { return NAN; } return asin(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Asin,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9i4m0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>i),s.export(r,"asinhConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+"return log(x + sqrt(x * x + 1.0));",i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Asinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lwVdA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>i),s.export(r,"atanConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` return atan(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Atan,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jZL8H:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2",()=>c),s.export(r,"atan2Config",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils");let p=o.CHECK_NAN_SNIPPET+` return atan(a, b); `,u=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+l.CHECK_NAN_SNIPPET_PACKED+` return result; `,c=(0,i.binaryKernelFunc)({opSnippet:p,packedOpSnippet:u}),d={kernelName:a.Atan2,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l31E2:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>i),s.export(r,"atanhConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` if ((x< -1.0) || (x >1.0)) return NAN; return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Atanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9LL2q":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>p),s.export(r,"avgPoolConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"avgPool");let{filterSize:p,strides:u,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(u,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${u} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,p,u,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let m=new(0,o.Pool2DProgram)(f,"avg",!1);return r.runWebGLProgram(m,[s],"float32")}let u={kernelName:a.AvgPool,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../pool_gpu":"1JUNb","../webgl_util":"kBGlX","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1JUNb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Pool2DProgram",()=>a),s.export(r,"Pool3DProgram",()=>o);class a{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");const a=e.filterWidth,o=e.strideHeight,l=e.strideWidth,i=e.dilationHeight,p=e.dilationWidth,u=e.effectiveFilterHeight,c=e.effectiveFilterWidth,d=e.padInfo.top,f=e.padInfo.left;this.outputShape=e.outShape;const m="avg"===t,h=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`;let x="0.0";if(m||(x="-1.0 / 1e-20"),r){this.userCode=` const ivec2 strides = ivec2(${o}, ${l}); const ivec2 pads = ivec2(${d}, ${f}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d = coords[3]; ivec2 xRCCorner = coords.yz * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // max/min x(?, ?, d) to get y(yR, yC, d). // ? = to be determined float minMaxValue = 0.0; float minMaxValueFound = 0.0; int minMaxPosition = 0; float avgValue = 0.0; for (int wR = 0; wR< ${u}; wR += ${i}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${c}; wC += ${p}) { int xC = xCCorner + wC; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float value = getX(batch, xR, xC, d); // If a min / max value has already been found, use it. If not, // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); if (value >= currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${n?s?h:g:`wR * ${c} + wC`}; } } } setOutput(float(minMaxPosition)); } `;return}let y=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(y="avgValue / max(count, 1.0)");const v=4*Math.floor(a/4),b=a%4,k=` if (${m}) { avgValue += dot(values, ones); } else { minMaxValue = max(values, minMaxValue); } `;this.userCode=` const ivec2 strides = ivec2(${o}, ${l}); const ivec2 pads = ivec2(${d}, ${f}); const float initializationValue = ${x}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float count = 0.0; float getValue(int batch, int xR, int xC, int d) { if (xC< 0 || xC >= ${e.inWidth}) { return initializationValue; } count += 1.0; return getX(batch, xR, xC, d); } void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d = coords[3]; ivec2 xRCCorner = coords.yz * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // max/min x(?, ?, d) to get y(yR, yC, d). // ? = to be determined vec4 minMaxValue = vec4(${x}); float avgValue = 0.0; count = 0.0; for (int wR = 0; wR< ${u}; wR += ${i}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${v}; wC += 4) { int xC = xCCorner + wC * ${p}; vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${p}, d), getValue(batch, xR, xC + 2 * ${p}, d), getValue(batch, xR, xC + 3 * ${p}, d) ); ${k} } int xC = xCCorner + ${v}; if (${1===b}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, initializationValue, initializationValue ); ${k} } else if (${2===b}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${p}, d), initializationValue, initializationValue ); ${k} } else if (${3===b}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${p}, d), getValue(batch, xR, xC + 2 * ${p}, d), initializationValue ); ${k} } } setOutput(${y}); } `}}class o{constructor(e,t,r,n=!1,s=!1){if(this.variableNames=["x"],"avg"===t&&r)throw Error("Cannot compute positions for average pool.");const a=e.filterWidth,o=e.strideDepth,l=e.strideHeight,i=e.strideWidth,p=e.dilationDepth,u=e.dilationHeight,c=e.dilationWidth,d=e.effectiveFilterDepth,f=e.effectiveFilterHeight,m=e.effectiveFilterWidth,h=e.padInfo.front,g=e.padInfo.top,x=e.padInfo.left;this.outputShape=e.outShape;const y="avg"===t;let v="0.0";if(y||(v="-1.0 / 1e-20"),r){this.userCode=` const ivec3 strides = ivec3(${o}, ${l}, ${i}); const ivec3 pads = ivec3(${h}, ${g}, ${x}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; int xDCorner = xCorner.x; int xRCorner = xCorner.y; int xCCorner = xCorner.z; // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). // ? = to be determined float minMaxValue = 0.0; float minMaxValueFound = 0.0; int minMaxPosition = 0; for (int wD = 0; wD < ${d}; wD += ${p}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { continue; } for (int wR = 0; wR< ${f}; wR += ${u}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${m}; wC += ${c}) { int xC = xCCorner + wC; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float value = getX(batch, xD, xR, xC, ch); // If a min / max value has already been found, use it. If not, // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); if (value >= 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 * ${f} * ${m} + wR * ${m} + wC`}; } } } } setOutput(float(minMaxPosition)); } `;return}let b=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;"avg"===t&&(b="avgValue / max(count, 1.0)");const k=4*Math.floor(a/4),_=a%4,I=` if (${y}) { avgValue += dot(values, ones); } else { minMaxValue = max(values, minMaxValue); } `;this.userCode=` const ivec3 strides = ivec3(${o}, ${l}, ${i}); const ivec3 pads = ivec3(${h}, ${g}, ${x}); const float initializationValue = ${v}; const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); float count = 0.0; float getValue(int batch, int xD, int xR, int xC, int ch) { if (xC< 0 || xC >= ${e.inWidth}) { return initializationValue; } count += 1.0; return getX(batch, xD, xR, xC, ch); } void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; int xDCorner = xCorner.x; int xRCorner = xCorner.y; int xCCorner = xCorner.z; // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). // ? = to be determined vec4 minMaxValue = vec4(${v}); float avgValue = 0.0; count = 0.0; for (int wD = 0; wD< ${d}; wD += ${p}) { int xD = xDCorner + wD; if (xD < 0 || xD >= ${e.inDepth}) { continue; } for (int wR = 0; wR< ${f}; wR += ${u}) { int xR = xRCorner + wR; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${k}; wC += 4) { int xC = xCCorner + wC * ${c}; vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${c}, ch), getValue(batch, xD, xR, xC + 2 * ${c}, ch), getValue(batch, xD, xR, xC + 3 * ${c}, ch) ); ${I} } int xC = xCCorner + ${k}; if (${1===_}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), initializationValue, initializationValue, initializationValue ); ${I} } else if (${2===_}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${c}, ch), initializationValue, initializationValue ); ${I} } else if (${3===_}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), getValue(batch, xD, xR, xC + ${c}, ch), getValue(batch, xD, xR, xC + 2 * ${c}, ch), initializationValue ); ${I} } } } setOutput(${b}); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6DbtT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>l),s.export(r,"avgPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:p,dimRoundingMode:u,dataFormat:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],p,u,c),f=new(0,o.Pool3DProgram)(d,"avg",!1);return r.runWebGLProgram(f,[s],"float32")}let i={kernelName:a.AvgPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../pool_gpu":"1JUNb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8K7Pz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:p,pad:u,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(l.shape,i,p,[1,1,1],u,c),f=new(0,o.AvgPool3DBackpropProgram)(d);return r.runWebGLProgram(f,[s],l.dtype)}let i={kernelName:a.AvgPool3DGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../avg_pool_backprop_gpu":"6tXZr","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6tXZr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"AvgPool2DBackpropProgram",()=>a),s.export(r,"AvgPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterHeight,i=e.effectiveFilterWidth,p=l-1-e.padInfo.top,u=i-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${p}, ${u}); const float avgMultiplier = float(${1/(t*r)}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 dyRCCorner = coords.yz - pads; int dyRCorner = dyRCCorner.x; int dyCCorner = dyRCCorner.y; // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${l}; wR += ${a}) { float dyR = float(dyRCorner + wR) / ${n}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${i}; wC+= ${o}) { float dyC = float(dyCCorner + wC) / ${s}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(b, idyR, idyC, d); dotProd += dyValue * avgMultiplier; } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,p=e.dilationWidth,u=e.effectiveFilterDepth,c=e.effectiveFilterHeight,d=e.effectiveFilterWidth,f=u-1-e.padInfo.front,m=c-1-e.padInfo.top,h=d-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${f}, ${m}, ${h}); const float avgMultiplier = float(${1/(t*r*n)}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; int dyDCorner = dyCorner.x; int dyRCorner = dyCorner.y; int dyCCorner = dyCorner.z; // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get // dx(xD, xR, xC, ch). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wD = 0; wD< ${u}; wD += ${l}) { float dyD = float(dyDCorner + wD) / ${s}.0; if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { continue; } int idyD = int(dyD); for (int wR = 0; wR< ${c}; wR += ${i}) { float dyR = float(dyRCorner + wR) / ${a}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${d}; wC += ${p}) { float dyC = float(dyCCorner + wC) / ${o}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(batch, idyD, idyR, idyC, ch); dotProd += dyValue * avgMultiplier; } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7Cxxo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>i),s.export(r,"avgPoolGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../avg_pool_backprop_gpu"),l=e("../webgl_util");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t;(0,l.assertNotComplex)([s,i],"avgPoolGrad");let{filterSize:p,strides:u,pad:c}=n,d=a.backend_util.computePool2DInfo(i.shape,p,u,1,c),f=new(0,o.AvgPool2DBackpropProgram)(d);return r.runWebGLProgram(f,[s],i.dtype)}let p={kernelName:a.AvgPoolGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../avg_pool_backprop_gpu":"6tXZr","../webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bj0b9:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>l),s.export(r,"batchMatMulConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./BatchMatMul_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:a}=t,{transposeA:l,transposeB:i}=n;return(0,o.batchMatMulImpl)({a:s,b:a,transposeA:l,transposeB:i,backend:r})}let i={kernelName:a.BatchMatMul,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./BatchMatMul_impl":"aJhdh","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cHAjg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>i),s.export(r,"batchNormConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../batchnorm_gpu"),l=e("../batchnorm_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n,mean:s,variance:i,offset:p,scale:u}=e;a.util.assert(s.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==p||s.shape.length===p.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==u||s.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:c}=r;null==c&&(c=.001);let d=[n,s,i],f=null;null!=p&&(f=p.shape,d.push(p));let m=null;null!=u&&(m=u.shape,d.push(u));let h=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.BatchNormPackedProgram)(n.shape,s.shape,i.shape,f,m,c):new(0,o.BatchNormProgram)(n.shape,s.shape,i.shape,f,m,c);return t.runWebGLProgram(h,d,d[0].dtype)},p={kernelName:a.FusedBatchNorm,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../batchnorm_gpu":"9mMT7","../batchnorm_packed_gpu":"aPc6x","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9mMT7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.outputShape=[],this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="0.0";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="1.0";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); float variance = getVarianceAtOutCoords(); float offset = ${l}; float scale = ${i}; float inv = scale * inversesqrt(variance + float(${o})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } `}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aPc6x:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BatchNormPackedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n,s,o){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],a.backend_util.assertAndGetBroadcastShape(e,t),a.backend_util.assertAndGetBroadcastShape(e,r);let l="vec4(0.0)";null!=n&&(a.backend_util.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),l="getOffsetAtOutCoords()");let i="vec4(1.0)";null!=s&&(a.backend_util.assertAndGetBroadcastShape(e,s),this.variableNames.push("scale"),i="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${l}; vec4 scale = ${i}; vec4 x = getXAtOutCoords(); vec4 mean = getMeanAtOutCoords(); vec4 variance = getVarianceAtOutCoords(); vec4 inv = scale * inversesqrt(variance + vec4(${o})); setOutput((x - mean) * inv + offset); } `}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l4Nfx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>p),s.export(r,"batchToSpaceNDConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice"),i=e("./Transpose");let p=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,crops:u}=n;a.util.assert(s.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let c=p.reduce((e,t)=>e*t),d=a.backend_util.getReshaped(s.shape,p,c),f=a.backend_util.getPermuted(d.length,p.length),m=a.backend_util.getReshapedPermuted(s.shape,p,c),h=a.backend_util.getSliceBeginCoords(u,p.length),g=a.backend_util.getSliceSize(m,u,p.length),x=[],y=(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:d}}),v=(0,i.transpose)({inputs:{x:y},backend:r,attrs:{perm:f}}),b=(0,o.reshape)({inputs:{x:v},backend:r,attrs:{shape:m}}),k=(0,l.slice)({inputs:{x:b},backend:r,attrs:{begin:h,size:g}});return x.push(y),x.push(v),x.push(b),x.forEach(e=>r.disposeIntermediateTensorInfo(e)),k},u={kernelName:a.BatchToSpaceND,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","./Reshape":"aOEE6","./Slice":"io5JZ","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],io5JZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"slice",()=>p),s.export(r,"sliceConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../slice_gpu"),i=e("../slice_packed_gpu");function p(e){let t,r,n,s,p,{inputs:u,backend:c,attrs:d}=e,{x:f}=u,{begin:m,size:h}=d,[g,x]=a.slice_util.parseSliceParams(f,m,h);if(a.slice_util.assertParamsValid(f,g,x),0===a.util.sizeFromShape(x))return c.makeTensorInfo(x,f.dtype,[]);if(c.shouldExecuteOnCPU([f])||"string"===f.dtype){let e=c.texData.get(f.dataId),t=(0,o.sliceImplCPU)(e.values,g,x,f.shape,f.dtype);return c.makeTensorInfo(x,f.dtype,t)}let{isPacked:y}=c.texData.get(f.dataId),v=a.slice_util.isSliceContinous(f.shape,g,x);if(y||!v){let e=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,i.SlicePackedProgram)(x):new(0,l.SliceProgram)(x),t=[g];return c.runWebGLProgram(e,[f],f.dtype,t)}return c.uploadToGPU(f.dataId),t=c.texData.get(f.dataId),r=c.makeTensorInfo(x,f.dtype),Object.assign(n=c.texData.get(r.dataId),t),n.refCount=1,n.shape=x,n.dtype=f.dtype,s=a.slice_util.computeFlatOffset(g,a.util.computeStrides(f.shape)),t.slice&&(s+=t.slice.flatOffset),n.slice={flatOffset:s,origDataId:t.slice&&t.slice.origDataId||f.dataId},p=c.dataRefCount.get(n.slice.origDataId)||1,c.dataRefCount.set(n.slice.origDataId,p+1),r}let u={kernelName:a.Slice,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../slice_gpu":"dToAv","../slice_packed_gpu":"gVf8Y","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dToAv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e){let t;this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const r=(0,a.getCoordsDataType)(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const n=function(e){if(1===e)return"sourceLoc";if(e<=6)return l.slice(0,e).map(e=>"sourceLoc."+e).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}(this.rank),s=e.map((e,t)=>`sourceLoc.${l[t]} = start[${t}] + coords.${l[t]};`);t=` ${r} sourceLoc; ${r} coords = getOutputCoords(); ${s.join("\n")} `,this.userCode=` void main() { ${t} setOutput(getSource(${n})); } `}}let l=["x","y","z","w","u","v"]},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gVf8Y:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SlicePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];const t=(0,o.getCoordsDataType)(this.rank),r=(0,a.getChannels)("coords",this.rank),n=(0,a.getChannels)("sourceLoc",this.rank),s=1===this.rank?"sourceLoc":`vec2(${n.slice(-2).join()})`,l=`getChannel(getSource(${n.join()}), ${s})`,i=` result.x = ${l}; if (++${r[this.rank-1]}< ${e[this.rank-1]}) { ++${n[this.rank-1]}; result.y = ${l}; --${n[this.rank-1]}; } `,p=1===this.rank?"":` --${r[this.rank-1]}; if (++${r[this.rank-2]} < ${e[this.rank-2]}) { ++${n[this.rank-2]}; result.z = ${l}; if (++${r[this.rank-1]} < ${e[this.rank-1]}) { ++${n[this.rank-1]}; result.w = ${l}; } } `,u=this.rank<=4?`sourceLoc = coords + ${t}(${e.map((e,t)=>`start[${t}]`).join()});`:e.map((e,t)=>`${n[t]} = ${r[t]} + start[${t}];`).join("\n");this.userCode=` void main() { ${t} coords = getOutputCoords(); ${t} sourceLoc; ${u} vec4 result = vec4(0.); ${i} ${p} setOutput(result); } `}}},{"./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5AnHw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.readSync(s.dataId),p=r.readSync(a.dataId),u=(0,o.bincountImplCPU)(i,p,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,u)}let i={kernelName:a.Bincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],foJoC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"BITWISEAND",()=>p),s.export(r,"BITWISEAND_UNPACKED",()=>u),s.export(r,"bitwiseAnd",()=>c),s.export(r,"bitwiseAndConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/shared");let p=` int r = int(a.r) & int(b.r); int g = int(a.g) & int(b.g); int rb = int(a.b) & int(b.b); int ra = int(a.a) & int(b.a); return vec4(r, g, rb, ra); `,u=` return float(int(a.r) & int(b.r)); `;function c(e){let t,{inputs:r,backend:n}=e,{a:s,b:c}=r,d=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS"),f=(0,a.env)().getNumber("WEBGL_VERSION");if(n.shouldExecuteOnCPU([s,c])||1===f){let e=n.texData.get(s.dataId).values,t=n.texData.get(c.dataId).values,[r,a]=(0,i.bitwiseAndImplCPU)(s.shape,c.shape,e,t,s.dtype),o=n.makeTensorInfo(a,s.dtype);return n.texData.get(o.dataId).values=r,o}return t=d?new(0,l.BinaryOpPackedProgram)(p,s.shape,c.shape,!1):new(0,o.BinaryOpProgram)(u,s.shape,c.shape),n.runWebGLProgram(t,[s,c],s.dtype)}let d={kernelName:a.BitwiseAnd,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9cSgE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.readSync(n.dataId),l=r.readSync(s.dataId),i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8hJGw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cast",()=>d),s.export(r,"castConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Complex"),i=e("./Identity"),p=e("./NotEqual"),u=e("./Real"),c=e("../kernel_utils/int");function d(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dtype:f}=n;if("complex64"===f){if("complex64"===s.dtype)return(0,i.identity)({inputs:{x:s},backend:r});let e=a.zeros(s.shape),t=d({inputs:{x:s},backend:r,attrs:{dtype:"float32"}}),n=(0,l.complex)({inputs:{real:t,imag:e},backend:r});return e.dispose(),r.disposeIntermediateTensorInfo(t),n}if("complex64"===s.dtype){let e=(0,u.real)({inputs:{input:s},backend:r}),t=d({inputs:{x:e},backend:r,attrs:{dtype:f}});return r.disposeIntermediateTensorInfo(e),t}if(!a.util.hasEncodingLoss(s.dtype,f)){let e=(0,i.identity)({inputs:{x:s},backend:r});return{dataId:e.dataId,shape:e.shape,dtype:f}}if(r.shouldExecuteOnCPU([s])){let e=r.texData.get(s.dataId).values,[t,n,a]=(0,o.castImplCPU)(e,s.shape,s.dtype,f);return r.makeTensorInfo(t,n,a)}if("int32"===f)return(0,c.int)(s,r);if("bool"===f){let e=r.makeTensorInfo([],"bool",a.util.getTypedArrayFromDType("bool",1)),t=(0,p.notEqual)({inputs:{a:s,b:e},backend:r});return r.disposeIntermediateTensorInfo(e),t}throw Error(`Error in Cast: failed to cast ${s.dtype} to ${f}`)}let f={kernelName:a.Cast,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","./Complex":"g1bJ7","./Identity":"97wVJ","./NotEqual":"cIcHR","./Real":"cAQO8","../kernel_utils/int":"kR5Ci","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cIcHR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"notEqual",()=>i),s.export(r,"notEqualConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.binaryKernelFunc)({opSnippet:"return float(a != b);",cpuKernelImpl:l.notEqualImplCPU,dtype:"bool"}),p={kernelName:a.NotEqual,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cAQO8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"real",()=>l),s.export(r,"realConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.real},backend:r})}let i={kernelName:a.Real,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kR5Ci:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"int",()=>o);var a=e("../unaryop_gpu");function o(e,t){let r=new(0,a.UnaryOpProgram)(e.shape,"return float(int(x));"),n=t.runWebGLProgram(r,[e],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}},{"../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4LFu4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ceil",()=>p),s.export(r,"ceilConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return ceil(x);",p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.ceilImplCPU}),u={kernelName:a.Ceil,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6BeBT":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>i),s.export(r,"clipByValueConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../clip_gpu"),l=e("../clip_packed_gpu");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i}=r,{clipValueMin:p,clipValueMax:u}=s;return t=(0,a.env)().getBool("WEBGL_PACK_CLIP")?new(0,l.ClipPackedProgram)(i.shape):new(0,o.ClipProgram)(i.shape),n.runWebGLProgram(t,[i],i.dtype,[[p],[u]])}let p={kernelName:a.ClipByValue,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../clip_gpu":"bxmyW","../clip_packed_gpu":"alj4p","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bxmyW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipProgram",()=>a);class a{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); if (isnan(value)) { setOutput(value); return; } setOutput(clamp(value, minVal, maxVal)); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],alj4p:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ClipPackedProgram",()=>a);class a{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); if (any(isnan(value))) { setOutput(value); return; } setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dlNrQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complexAbs",()=>i),s.export(r,"complexAbsConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../complex_abs_gpu");function l(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=r.texData.get(n.dataId),a=new(0,o.ComplexAbsProgram)(n.shape),i=[l(n,s.complexTensorInfos.real),l(n,s.complexTensorInfos.imag)];return r.runWebGLProgram(a,i,i[0].dtype)}let p={kernelName:a.ComplexAbs,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../complex_abs_gpu":"bmI9C","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bmI9C:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ComplexAbsProgram",()=>a);class a{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); float mx = max(re, im); // sadly the length function in glsl is not underflow-safe // (at least not on Intel GPUs). So the safe solution is // to ensure underflow-safety in all cases. setOutput( mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4XHgE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>i),s.export(r,"concatConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Concat_impl"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,i=a.util.parseAxisParam(s,t[0].shape)[0],p=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(p,i);let u=a.backend_util.computeOutShape(t.map(e=>e.shape),i);if(0===a.util.sizeFromShape(u))return r.makeTensorInfo(u,t[0].dtype,[]);let c=t.filter(e=>a.util.sizeFromShape(e.shape)>0);return 1===c.length?(0,l.identity)({inputs:{x:c[0]},backend:r}):(0,o.concatImpl)(c,i,r)}let p={kernelName:a.Concat,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","./Concat_impl":"hbX7g","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hbX7g:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concatImpl",()=>function e(t,r,n){var s,h,g;let x,y=t[0].dtype;if("complex64"===y){let s=t.map(e=>(0,f.real)({inputs:{input:e},backend:n})),a=t.map(e=>(0,d.imag)({inputs:{input:e},backend:n})),o=e(s,r,n),l=e(a,r,n),i=(0,c.complex)({inputs:{real:o,imag:l},backend:n});return s.forEach(e=>n.disposeIntermediateTensorInfo(e)),a.forEach(e=>n.disposeIntermediateTensorInfo(e)),n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),i}let v=n.shouldExecuteOnCPU(t);if("string"===y&&(v=!0),v){let e=t.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(r));return(0,m.reshape)({inputs:{x:e},backend:n,attrs:{shape:[-1,t]}})}),s=e.map(e=>({vals:n.readSync(e.dataId),shape:e.shape})),o=a.backend_util.computeOutShape(e.map(e=>e.shape),1),l=1===e[0].shape[0],p=(0,i.concatImplCPU)(s,o,y,l),u=a.backend_util.computeOutShape(t.map(e=>e.shape),r),c=n.makeTensorInfo(u,y,p);return e.forEach(e=>n.disposeIntermediateTensorInfo(e)),c}let b=t.filter(e=>a.util.sizeFromShape(e.shape)>0),k=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&b[0].shape.length>1;if(1===b.length){let e=k?new(0,p.UnaryOpProgram)(t[0].shape,p.CLONE):new(0,u.UnaryOpPackedProgram)(t[0].shape,p.CLONE);return n.runWebGLProgram(e,t,y)}let _=(0,a.env)().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(b.length>_){let t=[];for(let s=0;s<b.length;s+=_){let a=b.slice(s,s+_);t.push(e(a,r,n))}let s=e(t,r,n);for(let e of t)n.disposeIntermediateTensorInfo(e);return s}if(k){let e=new(0,l.ConcatPackedProgram)(b.map(e=>e.shape),r);return n.runWebGLProgram(e,b,y)}let{tensors2D:I,outShape:j}=(s=b,h=r,g=n,x=a.backend_util.computeOutShape(s.map(e=>e.shape),h),{tensors2D:s.map(e=>(0,m.reshape)({inputs:{x:e},attrs:{shape:[-1,a.util.sizeFromShape(e.shape.slice(h))]},backend:g})),outShape:x}),w=new(0,o.ConcatProgram)(I.map(e=>e.shape)),T=n.runWebGLProgram(w,I,y);I.forEach(e=>n.disposeIntermediateTensorInfo(e));let S=(0,m.reshape)({inputs:{x:T},attrs:{shape:j},backend:n});return n.disposeIntermediateTensorInfo(T),S});var a=e("@tensorflow/tfjs-core"),o=e("../concat_gpu"),l=e("../concat_packed_gpu"),i=e("../kernel_utils/shared"),p=e("../unaryop_gpu"),u=e("../unaryop_packed_gpu"),c=e("./Complex"),d=e("./Imag"),f=e("./Real"),m=e("./Reshape")},{"@tensorflow/tfjs-core":"2Gtps","../concat_gpu":"93HN0","../concat_packed_gpu":"ih26f","../kernel_utils/shared":"6ruDg","../unaryop_gpu":"byMKQ","../unaryop_packed_gpu":"11H6D","./Complex":"g1bJ7","./Imag":"3QJSY","./Real":"cAQO8","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"93HN0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ConcatProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e){this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,1),this.variableNames=e.map((e,t)=>`T${t}`);const t=Array(e.length-1);t[0]=e[0][1];for(let r=1;r<t.length;r++)t[r]=t[r-1]+e[r][1];const r=[`if (yC < ${t[0]}) setOutput(getT0(yR, yC));`];for(let e=1;e<t.length;e++){const n=t[e-1];r.push(`else if (yC < ${t[e]}) setOutput(getT${e}(yR, yC-${n}));`)}const n=t.length,s=t[t.length-1];r.push(`else setOutput(getT${n}(yR, yC-${s}));`),this.userCode=` void main() { ivec2 coords = getOutputCoords(); int yR = coords.x; int yC = coords.y; ${r.join("\n ")} } `}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ih26f:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ConcatPackedProgram",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./packing_util"),l=e("./shader_compiler");class i{constructor(e,t){this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[],this.outputShape=a.backend_util.computeOutShape(e,t);const r=this.outputShape,n=r.length,s=(0,l.getCoordsDataType)(n),i=(0,o.getChannels)("coords",n),u=["x","y","z","w","u","v"].slice(0,n);this.variableNames=e.map((e,t)=>`T${t}`);const c=Array(e.length-1);c[0]=e[0][t];for(let r=1;r<c.length;r++)c[r]=c[r-1]+e[r][t];const d=u[t],f=u.slice(-2),m=u.join();let h=`if (${d} < ${c[0]}) { return getChannel( getT0(${m}), vec2(${f.join()})); }`;for(let e=1;e<c.length;e++){const t=c[e-1];h+=` if (${d} < ${c[e]} && ${d} >= ${c[e-1]}) { return getChannel( getT${e}(${p(u,d,t)}), vec2(${p(f,d,t)})); }`}const g=c.length,x=c[c.length-1];h+=` return getChannel( getT${g}(${p(u,d,x)}), vec2(${p(f,d,x)}));`,this.userCode=` float getValue(${u.map(e=>"int "+e)}) { ${h} } void main() { ${s} coords = getOutputCoords(); vec4 result = vec4(getValue(${i}), 0., 0., 0.); ${i[n-1]} = ${i[n-1]} + 1; if (${i[n-1]}< ${r[n-1]}) { result.g = getValue(${i}); } ${i[n-2]} = ${i[n-2]} + 1; if (${i[n-2]} < ${r[n-2]}) { result.a = getValue(${i}); } ${i[n-1]} = ${i[n-1]} - 1; if (${i[n-2]} < ${r[n-2]} && ${i[n-1]} < ${r[n-1]}) { result.b = getValue(${i}); } setOutput(result); } `}}function p(e,t,r){let n=e.indexOf(t);return e.map((e,t)=>t===n?`${e} - ${r}`:e).join()}},{"@tensorflow/tfjs-core":"2Gtps","./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3QJSY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"imag",()=>l),s.export(r,"imagConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Identity");function l(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.texData.get(n.dataId);return(0,o.identity)({inputs:{x:s.complexTensorInfos.imag},backend:r})}let i={kernelName:a.Imag,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iKaWV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2d",()=>u),s.export(r,"conv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("./Conv2D_impl"),p=e("./Reshape");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u,filter:c}=r,{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g}=s,x=a.backend_util.convertConv2DDataFormat(m),y=a.backend_util.computeConv2DInfo(u.shape,c.shape,d,h,f,g,!1,x);if(1===y.filterHeight&&1===y.filterWidth&&1===y.dilationHeight&&1===y.dilationWidth&&1===y.strideHeight&&1===y.strideWidth&&("SAME"===y.padInfo.type||"VALID"===y.padInfo.type))t=(0,i.conv2dByMatMul)({x:u,filter:c,convInfo:y,backend:n});else if(y.strideWidth<=2&&"channelsLast"===x&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=new(0,l.Conv2DPackedProgram)(y),r=[[y.padInfo.top,y.padInfo.left],[y.strideHeight,y.strideWidth],[y.dilationHeight,y.dilationWidth],[y.inHeight,y.inWidth]];t=n.runWebGLProgram(e,[u,c],"float32",r)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,i.conv2dWithIm2Row)({x:u,filter:c,convInfo:y,backend:n});else{let e=new(0,o.Conv2DProgram)(y);t=n.runWebGLProgram(e,[u,c],"float32")}let v=(0,p.reshape)({inputs:{x:t},backend:n,attrs:{shape:y.outShape}});return n.disposeIntermediateTensorInfo(t),v}let c={kernelName:a.Conv2D,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../conv_gpu":"9rKCB","../conv_packed_gpu":"kQJUn","./Conv2D_impl":"bLHqw","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9rKCB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DProgram",()=>a),s.export(r,"Conv3DProgram",()=>o);class a{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const a=e.padInfo.top,o=e.padInfo.left,l=e.strideHeight,i=e.strideWidth,p=e.dilationHeight,u=e.dilationWidth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),m=e.inChannels%4,h="channelsLast"===e.dataFormat;let g="",x="";r&&(g=n?`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`float activation(float a) { float b = getLeakyreluAlphaAtOutCoords(); ${r} }`:` float activation(float x) { ${r} } `,x="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${g} const ivec2 strides = ivec2(${l}, ${i}); const ivec2 pads = ivec2(${a}, ${o}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d2 = coords[${h?3:1}]; ivec2 xRCCorner = ivec2(coords[${h?1:2}], coords[${h?2:3}]) * strides - pads; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${c}; wR++) { int xR = xRCorner + wR * ${p}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${d}; wC++) { int xC = xCCorner + wC * ${u}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } for (int d1 = 0; d1< ${f}; d1 += 4) { vec4 wValues = vec4( getW(wR, wC, d1, d2), getW(wR, wC, d1 + 1, d2), getW(wR, wC, d1 + 2, d2), getW(wR, wC, d1 + 3, d2) ); if (${h}) { vec4 xValues = vec4( getX(batch, xR, xC, d1), getX(batch, xR, xC, d1 + 1), getX(batch, xR, xC, d1 + 2), getX(batch, xR, xC, d1 + 3) ); dotProd += dot(xValues, wValues); } else { vec4 xValues = vec4( getX(batch, d1, xR, xC), getX(batch, d1 + 1, xR, xC), getX(batch, d1 + 2, xR, xC), getX(batch, d1 + 3, xR, xC) ); dotProd += dot(xValues, wValues); } } if (${1===m}) { if (${h}) { dotProd += getX(batch, xR, xC, ${f}) * getW(wR, wC, ${f}, d2); } else { dotProd += getX(batch, ${f}, xR, xC) * getW(wR, wC, ${f}, d2); } } else if (${2===m}) { vec2 wValues = vec2( getW(wR, wC, ${f}, d2), getW(wR, wC, ${f} + 1, d2) ); if (${h}) { vec2 xValues = vec2( getX(batch, xR, xC, ${f}), getX(batch, xR, xC, ${f} + 1) ); dotProd += dot(xValues, wValues); } else { vec2 xValues = vec2( getX(batch, ${f}, xR, xC), getX(batch, ${f} + 1, xR, xC) ); dotProd += dot(xValues, wValues); } } else if (${3===m}) { vec3 wValues = vec3( getW(wR, wC, ${f}, d2), getW(wR, wC, ${f} + 1, d2), getW(wR, wC, ${f} + 2, d2) ); if (${h}) { vec3 xValues = vec3( getX(batch, xR, xC, ${f}), getX(batch, xR, xC, ${f} + 1), getX(batch, xR, xC, ${f} + 2) ); dotProd += dot(xValues, wValues); } else { vec3 xValues = vec3( getX(batch, ${f}, xR, xC), getX(batch, ${f} + 1, xR, xC), getX(batch, ${f} + 2, xR, xC) ); dotProd += dot(xValues, wValues); } } } } float result = dotProd; ${t?"result += getBiasAtOutCoords();":""} ${x} setOutput(result); } `}}class o{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,r=e.padInfo.top,n=e.padInfo.left,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=e.dilationDepth,i=e.dilationHeight,p=e.dilationWidth,u=e.filterDepth,c=e.filterHeight,d=e.filterWidth,f=4*Math.floor(e.inChannels/4),m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${s}, ${a}, ${o}); const ivec3 pads = ivec3(${t}, ${r}, ${n}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int d2 = coords.u; ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; int xFCorner = xFRCCorner.x; int xRCorner = xFRCCorner.y; int xCCorner = xFRCCorner.z; // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get // y(yF, yR, yC, d2). ? = to be determined. : = across all // values in that axis. float dotProd = 0.0; for (int wF = 0; wF < ${u}; wF++) { int xF = xFCorner + wF * ${l}; if (xF < 0 || xF >= ${e.inDepth}) { continue; } for (int wR = 0; wR< ${c}; wR++) { int xR = xRCorner + wR * ${i}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int wC = 0; wC< ${d}; wC++) { int xC = xCCorner + wC * ${p}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } for (int d1 = 0; d1< ${f}; d1 += 4) { vec4 xValues = vec4( getX(batch, xF, xR, xC, d1), getX(batch, xF, xR, xC, d1 + 1), getX(batch, xF, xR, xC, d1 + 2), getX(batch, xF, xR, xC, d1 + 3) ); vec4 wValues = vec4( getW(wF, wR, wC, d1, d2), getW(wF, wR, wC, d1 + 1, d2), getW(wF, wR, wC, d1 + 2, d2), getW(wF, wR, wC, d1 + 3, d2) ); dotProd += dot(xValues, wValues); } if (${1===m}) { dotProd += getX(batch, xF, xR, xC, ${f}) * getW(wF, wR, wC, ${f}, d2); } else if (${2===m}) { vec2 xValues = vec2( getX(batch, xF, xR, xC, ${f}), getX(batch, xF, xR, xC, ${f} + 1) ); vec2 wValues = vec2( getW(wF, wR, wC, ${f}, d2), getW(wF, wR, wC, ${f} + 1, d2) ); dotProd += dot(xValues, wValues); } else if (${3===m}) { vec3 xValues = vec3( getX(batch, xF, xR, xC, ${f}), getX(batch, xF, xR, xC, ${f} + 1), getX(batch, xF, xR, xC, ${f} + 2) ); vec3 wValues = vec3( getW(wF, wR, wC, ${f}, d2), getW(wF, wR, wC, ${f} + 1, d2), getW(wF, wR, wC, ${f} + 2, d2) ); dotProd += dot(xValues, wValues); } } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kQJUn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DPackedProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);const l=e.padInfo.left,i=e.strideWidth,p=e.dilationWidth,u=e.filterHeight,c=e.filterWidth;let d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e<c;e++)d+=` vec4 xTexelC${2*e}; int xTexelC${2*e}Ready; vec4 xTexelC${2*e+1}; int xTexelC${2*e+1}Ready; vec4 xC${e};`;d+=` for (int r = 0; r < ${u}; r++) { for (int d1 = 0; d1 < ${e.inChannels}; d1 += 2) { `;for(let e=0;e<c;e++)d+=` xTexelC${2*e} = vec4(0.0); xTexelC${2*e}Ready = 0; xTexelC${2*e+1} = vec4(0.0); xTexelC${2*e+1}Ready = 0; xC${e} = vec4(0.0);`;d+=` xR = xRCorner + r * dilations[0]; if (xR >=0 && xR< inDims[0]) { `;for(let t=0;t<(c+1)/2;t++){const r=2*t;if(d+=` xC = xCCorner + ${r*p}; `,1===i){if(r<c&&(l%2==1?(d+=` xCOffset = xC + 1; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } `,1===p&&r>0?d+=` xC${r} = vec4(xTexelC${r-2}.zw, xTexelC${r}.xy); `:d+=` xCOffset = xC + 1 - 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { previous.zw = vec2(0.0); } xC${r} = vec4(previous.zw, xTexelC${r}.xy); } else { xC${r} = vec4(0.0, 0.0, xTexelC${r}.xy); } `):d+=` if (xC >= 0 && xC< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } xC${r} = xTexelC${r}; `,r+1<c)){const e=l%2==0?a.util.nearestLargerEven(p):p;p%2==0&&l%2==1||p%2!=0&&l%2!=1?(d+=` xCOffset = xC + imod(pads[1], 2) + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.0); } xTexelC${r+1}Ready = 1; } `,p>1?d+=` xCOffset -= 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); xC${r+1} = vec4(previous.zw, xTexelC${r+1}.xy); } else { xC${r+1} = vec4(0.0, 0.0, xTexelC${r+1}.xy); } `:d+=` xC${r+1} = vec4(xTexelC${r}.zw, xTexelC${r+1}.xy); `):1===e?d+=` xC${r+1} = xTexelC${r}; `:d+=` xCOffset = xC + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.0); } xTexelC${r+1}Ready = 1; } xC${r+1} = xTexelC${r+1}; `}}else r<c&&(l%2==1?(d+=` xCOffset = xC + 1 - strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } if(xC + 1 >= 0 && xC + 1< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xC + 1, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xC + 2 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.0); } xTexelC${r+1}Ready = 1; } xC${r} = vec4(xTexelC${r}.zw, xTexelC${r+1}.zw); `,r+1<c&&(d+=` final = vec4(0.0); xCOffset = xC + 1 + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1]) { final = getX(batch, xR, xCOffset, d1); } xC${r+1} = vec4(xTexelC${r+1}.xy, final.xy); `)):(d+=` if(xC >= 0 && xC< inDims[1] && xTexelC${r}Ready == 0) { xTexelC${r} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${r}.zw = vec2(0.0); } xTexelC${r}Ready = 1; } xCOffset = xC + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${r+1}Ready == 0) { xTexelC${r+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${r+1}.zw = vec2(0.); } xTexelC${r+1}Ready = 1; } xC${r} = vec4( xTexelC${r}.xy, xTexelC${r+1}.xy); `,r+1<c&&(d+=` xC${r+1} = vec4(xTexelC${r}.zw, xTexelC${r+1}.zw); `)));r<c&&(d+=` wTexel = getW(r, ${r}, d1, d2); dotProd += xC${r}.xxzz * vec4(wTexel.xy, wTexel.xy); if(d1 + 1 < ${e.inChannels}) { dotProd += xC${r}.yyww * vec4(wTexel.zw, wTexel.zw); } `,r+1<c&&(d+=` wTexel = getW(r, ${r+1}, d1, d2); dotProd += xC${r+1}.xxzz * vec4(wTexel.xy, wTexel.xy); if(d1 + 1 < ${e.inChannels}) { dotProd += xC${r+1}.yyww * vec4(wTexel.zw, wTexel.zw); } `))}d+=` } } } `;let f="",m="";r&&(f=n?`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`vec4 activation(vec4 a) { vec4 b = getLeakyreluAlphaAtOutCoords(); ${r} }`:`vec4 activation(vec4 x) { ${r} }`,m="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${f} void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; ivec2 xRCCorner = coords.yz * strides - pads; int d2 = coords.w; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss. vec4 dotProd = vec4(0.000000000000001); ${d} vec4 result = dotProd - vec4(0.000000000000001); ${t?"result += getBiasAtOutCoords();":""} ${m} setOutput(result); } `}}},{"@tensorflow/tfjs-core":"2Gtps","./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bLHqw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2dByMatMul",()=>m),s.export(r,"conv2dWithIm2Row",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../im2col_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils"),i=e("../mulmat_packed_gpu"),p=e("../webgl_util"),u=e("./BatchMatMul_impl"),c=e("./Identity"),d=e("./Reshape");function f(e,t){let r=e.length;return r>=3?t?[...e.slice(0,-3),e[r-3]*e[r-2],e[r-1]]:[...e.slice(0,-3),e[r-3],e[r-2]*e[r-1]]:!t&&1===r&&e[0]>1?[e[0],1]:null}function m({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:o=null,leakyreluAlpha:l=0,activation:i=null}){let h,g=e.shape,x=n.texData.get(e.dataId),y=r.inChannels,v=g[0]*g[1]*g[2],b=r.outChannels,k="channelsLast"===r.dataFormat,_=[];if(null!=o){let e=f(o.shape,k);null!=e&&(o=(0,d.reshape)({inputs:{x:o},backend:n,attrs:{shape:e}}),_.push(o))}if(null!=s){let e=f(s.shape,k);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),_.push(s))}if(!((1===v||1===b)&&y>u.MATMUL_SHARED_DIM_THRESHOLD)&&x.isPacked&&k&&null!=x.texture&&g[2]%2!=0&&a.util.arraysEqual(x.shape.slice(-3),g.slice(-3))){let f=g[0]*g[1]*(g[2]+1),m={dataId:e.dataId,shape:[1,f,r.inChannels],dtype:e.dtype},y=x.shape;x.shape=x.shape.slice(),x.shape[x.shape.length-2]++,a.util.assert(p.isReshapeFree(x.shape,m.shape),()=>`packed reshape ${x.shape} to ${m.shape} isn't free`);let v=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}});_.push(v);let b=(0,u.batchMatMulImpl)({a:m,b:v,backend:n,transposeA:!1,transposeB:!1,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l}),k=n.texData.get(b.dataId);a.util.assert(k.isPacked,()=>"batchMatMul result is expected to be packed"),x.shape=y,k.shape=r.outShape,(h=(0,c.identity)({inputs:{x:b},backend:n})).shape=r.outShape,_.push(b)}else{let a=r.outHeight*r.outWidth,p=(0,d.reshape)({inputs:{x:e},backend:n,attrs:{shape:k?[r.batchSize,a,r.inChannels]:[r.batchSize,r.inChannels,a]}}),c=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,r.inChannels,r.outChannels]}}),f=(0,u.batchMatMulImpl)({a:k?p:c,b:k?c:p,transposeA:!k,transposeB:!1,backend:n,bias:s,activation:i,preluActivationWeights:o,leakyreluAlpha:l});h=(0,d.reshape)({inputs:{x:f},backend:n,attrs:{shape:r.outShape}}),_.push(p),_.push(c),_.push(f)}for(let e of _)n.disposeIntermediateTensorInfo(e);return h}function h({x:e,filter:t,convInfo:r,backend:n,bias:s=null,preluActivationWeights:p=null,leakyreluAlpha:u=0,activation:c=null}){let{filterWidth:m,filterHeight:g,inChannels:x,outWidth:y,outHeight:v,dataFormat:b}=r,k="channelsLast"===b,_=m*g*x,I=v*y,j=[r.batchSize,_,I],w=[];if(null!=p){let e=f(p.shape,k);null!=e&&(p=(0,d.reshape)({inputs:{x:p},backend:n,attrs:{shape:e}}),w.push(p))}if(null!=s){let e=f(s.shape,k);null!=e&&(s=(0,d.reshape)({inputs:{x:s},backend:n,attrs:{shape:e}}),w.push(s))}let T=(0,d.reshape)({inputs:{x:t},backend:n,attrs:{shape:[1,_,a.util.sizeFromShape(t.shape)/_]}});w.push(T);let S=new(0,o.Im2ColPackedProgram)(j,r),C=[e.shape,[r.padInfo.top,r.padInfo.left],[r.strideHeight,r.strideWidth],[r.dilationHeight,r.dilationWidth],[r.inChannels],[r.filterWidth*r.inChannels],[r.outWidth]],N=n.runWebGLProgram(S,[e],"float32",C),E=(0,d.reshape)({inputs:{x:N},backend:n,attrs:{shape:j}});w.push(N),w.push(E);let F=null!=s,A=null!=p,R="leakyrelu"===c,P=c?(0,l.mapActivationToShaderProgram)(c,!0):null,$=new(0,i.MatMulPackedProgram)(k?E.shape:T.shape,k?T.shape:E.shape,k?[r.batchSize,I,r.outChannels]:[r.batchSize,r.outChannels,I],!0,!1,F,P,A,R),O=k?[E,T]:[T,E];if(s&&O.push(s),A&&O.push(p),R){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(u,"float32"));O.push(e),w.push(e)}let D=n.runWebGLProgram($,O,"float32"),M=(0,d.reshape)({inputs:{x:D},backend:n,attrs:{shape:r.outShape}});for(let e of(w.push(D),w))n.disposeIntermediateTensorInfo(e);return M}},{"@tensorflow/tfjs-core":"2Gtps","../im2col_packed_gpu":"s8JGb","../kernel_utils/kernel_funcs_utils":"5oexO","../mulmat_packed_gpu":"eloy9","../webgl_util":"kBGlX","./BatchMatMul_impl":"aJhdh","./Identity":"97wVJ","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],s8JGb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Im2ColPackedProgram",()=>l);var a=e("./glsl_version"),o=e("./gpgpu_math");class l{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec4"},{name:"pad",type:"ivec2"},{name:"stride",type:"ivec2"},{name:"dilation",type:"ivec2"},{name:"inChannels",type:"int"},{name:"itemsPerBlockRow",type:"int"},{name:"outWidth",type:"int"}],this.outputShape=e,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);const{dataFormat:r}=t,n=(0,a.getGlslDifferences)(),s="channelsLast"===r,l=s?1:2,i=s?2:3,p=this.enableShapeUniforms?"if(blockIndex< outShape[2] && pos < outShape[1]) {":`if(blockIndex < ${e[2]} && pos < ${e[1]}) {`;let u="";for(let e=0;e<=1;e++)for(let t=0;t<=1;t++)u+=` blockIndex = rc.z + ${t}; pos = rc.y + ${e}; ${p} offsetY = int(blockIndex / outWidth) * stride[0] - pad[0]; d0 = offsetY + dilation[0] * (pos / itemsPerBlockRow); if(d0 < inputShape[${l}] && d0 >= 0) { // Use custom imod instead mod. On Intel GPU, mod may generate // unexpected value. // https://github.com/tensorflow/tfjs/issues/5447 offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1]; d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) / inChannels); if(d1< inputShape[${i}] && d1 >= 0) { ch = imod(pos, inChannels); if (${s}) { innerDims = vec2(d1, ch); result[${2*e+t}] = getChannel( getA(rc.x, d0, int(innerDims.x), int(innerDims.y)), innerDims); } else { innerDims = vec2(d0, d1); result[${2*e+t}] = getChannel( getA(rc.x, ch, int(innerDims.x), int(innerDims.y)), innerDims); } } } } `;this.userCode=` void main() { ivec3 rc = getOutputCoords(); vec4 result = vec4(0); int blockIndex, pos, offsetY, d0, offsetX, d1, ch; vec2 innerDims; ${u} ${n.output} = result; } `}}},{"./glsl_version":"dyQn5","./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8KDHf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>l),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:p,dataFormat:u,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.convertConv2DDataFormat(u),m=a.backend_util.computeConv2DInfo(s.shape,d,i,1,p,c,!1,f),h=new(0,o.Conv2DDerFilterProgram)(m);return r.runWebGLProgram(h,[s,l],"float32")}let i={kernelName:a.Conv2DBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../conv_backprop_gpu":"e8lti","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],e8lti:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerFilterProgram",()=>a),s.export(r,"Conv2DDerInputProgram",()=>o),s.export(r,"Conv3DDerFilterProgram",()=>l),s.export(r,"Conv3DDerInputProgram",()=>i);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,r=e.strideWidth,n=e.padInfo.top,s=e.padInfo.left,a="channelsLast"===e.dataFormat;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; int wC = coords.y; int d1 = coords.z; int d2 = coords.w; // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int b = 0; b< ${e.batchSize}; b++) { for (int yR = 0; yR < ${e.outHeight}; yR++) { int xR = wR + yR * ${t} - ${n}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int yC = 0; yC< ${e.outWidth}; yC++) { int xC = wC + yC * ${r} - ${s}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } ${a?`float dyValue = getDy(b, yR, yC, d2); float xValue = getX(b, xR, xC, d1); dotProd += (xValue * dyValue);`:`float dyValue = getDy(b, d2, yR, yC); float xValue = getX(b, d1, xR, xC); dotProd += (xValue * dyValue);`} } } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a="channelsLast"===e.dataFormat,o=t-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${o}, ${l}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d1 = coords[${a?3:1}]; ivec2 dyCorner = ivec2(coords[${a?1:2}], coords[${a?2:3}]) - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${t}; wR++) { float dyR = float(dyRCorner + wR) / ${n}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${t} - 1 - wR; for (int wC = 0; wC< ${r}; wC++) { float dyC = float(dyCCorner + wC) / ${s}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); int wCPerm = ${r} - 1 - wC; for (int d2 = 0; d2< ${e.outChannels}; d2++) { if (${a}) { float xValue = getDy(batch, idyR, idyC, d2); float wValue = getW(wRPerm, wCPerm, d1, d2); dotProd += xValue * wValue; } else { float xValue = getDy(batch, d2, idyR, idyC); float wValue = getW(wRPerm, wCPerm, d1, d2); dotProd += xValue * wValue; } } } } setOutput(dotProd); } `}}class l{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.padInfo.front,a=e.padInfo.top,o=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; int wR = coords.y; int wC = coords.z; int d1 = coords.w; int d2 = coords.u; float dotProd = 0.0; for (int b = 0; b < ${e.batchSize}; b++) { for (int yF = 0; yF < ${e.outDepth}; yF++) { int xF = wF + yF * ${t} - ${s}; if (xF < 0 || xF >= ${e.inDepth}) { continue; } for (int yR = 0; yR< ${e.outHeight}; yR++) { int xR = wR + yR * ${r} - ${a}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int yC = 0; yC< ${e.outWidth}; yC++) { int xC = wC + yC * ${n} - ${o}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float dyValue = getDy(b, yF, yR, yC, d2); float xValue = getX(b, xF, xR, xC, d1); dotProd += (xValue * dyValue); } } } } setOutput(dotProd); } `}}class i{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,r=e.filterHeight,n=e.filterWidth,s=e.strideDepth,a=e.strideHeight,o=e.strideWidth,l=t-1-e.padInfo.front,i=r-1-e.padInfo.top,p=n-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${l}, ${i}, ${p}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int d1 = coords.u; ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; int dyFCorner = dyCorner.x; int dyRCorner = dyCorner.y; int dyCCorner = dyCorner.z; float dotProd = 0.0; for (int wF = 0; wF< ${t}; wF++) { float dyF = float(dyFCorner + wF) / ${s}.0; if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { continue; } int idyF = int(dyF); int wFPerm = ${t} - 1 - wF; for (int wR = 0; wR< ${r}; wR++) { float dyR = float(dyRCorner + wR) / ${a}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${r} - 1 - wR; for (int wC = 0; wC< ${n}; wC++) { float dyC = float(dyCCorner + wC) / ${o}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); int wCPerm = ${n} - 1 - wC; for (int d2 = 0; d2< ${e.outChannels}; d2++) { float xValue = getDy(batch, idyF, idyR, idyC, d2); float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); dotProd += xValue * wValue; } } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dAZKp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>i),s.export(r,"conv2DBackpropInputConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu"),l=e("../conv_backprop_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:i}=t,{inputShape:p,strides:u,pad:c,dataFormat:d,dimRoundingMode:f}=n,m=a.backend_util.convertConv2DDataFormat(d),h=a.backend_util.computeConv2DInfo(p,i.shape,u,1,c,f,!1,m);if((0,a.env)().getBool("WEBGL_PACK_CONV2DTRANSPOSE")&&"channelsLast"===m){let e=[[h.strideHeight,h.strideWidth]],t=new(0,l.Conv2DDerInputPackedProgram)(h);return r.runWebGLProgram(t,[s,i],"float32",e)}{let e=new(0,o.Conv2DDerInputProgram)(h);return r.runWebGLProgram(e,[s,i],"float32")}}let p={kernelName:a.Conv2DBackpropInput,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../conv_backprop_gpu":"e8lti","../conv_backprop_packed_gpu":"jg0dj","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jg0dj:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Conv2DDerInputPackedProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e){this.variableNames=["dy","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"strides",type:"vec2"}],this.outputShape=e.inShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);const t=e.filterHeight,r=e.filterWidth,n=t-1-e.padInfo.top,s=r-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${n}, ${s}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d1 = coords[3]; ivec2 dyCorner = ivec2(coords[1], coords[2]) - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; vec4 result = vec4(0.); for (int wR = 0; wR< ${t}; wR++) { float dyR = float(dyRCorner + wR) / strides[0]; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${t} - 1 - wR; for (int wC = 0; wC< ${r}; wC++) { int wCPerm = ${r} - 1 - wC; float dyC = float(dyCCorner + wC) / strides[1]; bool idyCVal = (dyC >= 0.0) && (dyC< ${e.outWidth}.0) && (fract(dyC) == 0.0); int idyC = int(dyC); float dyC2 = float(dyCCorner + wC + 1) / strides[1]; bool idyCVal2 = (dyC2 >= 0.0) && (dyC2< ${e.outWidth}.0) && (fract(dyC2) == 0.0); int idyC2 = int(dyC2); if (idyCVal && idyCVal2) { for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { vec4 wValue = getW(wRPerm, wCPerm, d1, d2); vec4 dySample = getDy(batch, idyR, idyC, d2); vec4 dySample2 = (idyC / 2 == idyC2 / 2) ? dySample : getDy(batch, idyR, idyC2, d2); vec2 dyValue = mod(float(idyC), 2.) == 0. ? dySample.xy : dySample.zw; result.xy += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); dyValue = mod(float(idyC2), 2.) == 0. ? dySample2.xy : dySample2.zw; result.zw += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); } } else if (idyCVal) { for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { vec4 wValue = getW(wRPerm, wCPerm, d1, d2); vec4 dySample = getDy(batch, idyR, idyC, d2); vec2 dyValue = mod(float(idyC), 2.) == 0. ? dySample.xy : dySample.zw; result.xy += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); } } else if (idyCVal2) { for (int d2 = 0; d2 < ${e.outChannels}; d2 += 2) { vec4 wValue = getW(wRPerm, wCPerm, d1, d2); vec4 dySample = getDy(batch, idyR, idyC2, d2); vec2 dyValue = mod(float(idyC2), 2.) == 0. ? dySample.xy : dySample.zw; result.zw += vec2(dot(dyValue, wValue.xy), dot(dyValue, wValue.zw)); } } } } setOutput(result); } `}}},{"./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dGTSt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3D",()=>l),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:p,dilations:u}=n,c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,u,p),d=new(0,o.Conv3DProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../conv_gpu":"9rKCB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"75fC9":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropFilterV2",()=>l),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:p,filterShape:u}=n,c=a.backend_util.computeConv3DInfo(s.shape,u,i,1,p),d=new(0,o.Conv3DDerFilterProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropFilterV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../conv_backprop_gpu":"e8lti","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],yp1Ss:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInput",()=>l),s.export(r,"conv3DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:p,inputShape:u}=n,c=a.backend_util.computeConv3DInfo(u,l.shape,p,1,i),d=new(0,o.Conv3DDerInputProgram)(c);return r.runWebGLProgram(d,[s,l],"float32")}let i={kernelName:a.Conv3DBackpropInputV2,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../conv_backprop_gpu":"e8lti","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hGMlK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>u),s.export(r,"cosConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` return cos(x); `,p=` vec4 result = cos(x); bvec4 isNaN = isnan(x); ${o.CHECK_NAN_SNIPPET_PACKED} return result; `,u=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:p}),c={kernelName:a.Cos,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],htdvr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>i),s.export(r,"coshConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Cosh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9jYPu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>l),s.export(r,"cropAndResizeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../crop_and_resize_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:a,boxInd:l}=t,{cropSize:i,method:p,extrapolationValue:u}=n,c=new(0,o.CropAndResizeProgram)(s.shape,a.shape,i,p,u);return r.runWebGLProgram(c,[s,a,l],"float32")},i={kernelName:a.CropAndResize,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../crop_and_resize_gpu":"6L84d","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6L84d":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"CropAndResizeProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[a,o,l,i]=e,[p]=t,[u,c]=r;this.outputShape=[p,u,c,i];const[d,f]=[`${o-1}.0`,`${l-1}.0`],[m,h,g]=u>1?[`${(o-1)/(u-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[x,y,v]=c>1?[`${(l-1)/(c-1)}`,"(x2-x1) * width_ratio",`x1*${f} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${f}`];this.userCode=` const float height_ratio = float(${m}); const float width_ratio = float(${x}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int y = coords[1]; int x = coords[2]; int d = coords[3]; // get box vals float y1 = getBoxes(b,0); float x1 = getBoxes(b,1); float y2 = getBoxes(b,2); float x2 = getBoxes(b,3); // get image in batch index int bInd = round(getBoxInd(b)); if(bInd< 0 || bInd >= ${a}) { return; } float height_scale = ${h}; float width_scale = ${y}; float in_y = ${g}; if( in_y< 0.0 || in_y >${d} ) { setOutput(float(${s})); return; } float in_x = ${v}; if( in_x< 0.0 || in_x >${f} ) { setOutput(float(${s})); return; } vec2 sourceFracIndexCR = vec2(in_x,in_y); if(${+("bilinear"===n)} == 1) { // Compute the four integer indices. ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); float top = topLeft + (topRight - topLeft) * fracCR.x; float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; float newValue = top + (bottom - top) * fracCR.y; setOutput(newValue); } else { // Compute the coordinators of nearest neighbor point. ivec2 sourceNearestCR = ivec2(floor( sourceFracIndexCR + vec2(0.5,0.5))); float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); setOutput(newValue); } } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dQ2ms:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i),s.export(r,"cumprodConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:p}=n;return(0,l.cumImpl)(o.CumOpType.Prod,s,r,a,i,p)}let p={kernelName:a.Cumprod,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cum_gpu":"2DlyG","./Cum_impl":"l4dmJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2DlyG":[function(e,t,r,n){var s,a,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"CumOpType",()=>a),o.export(r,"CumProgram",()=>i);var l=e("./shader_compiler");(s=a||(a={})).Prod="*",s.Sum="+";class i{constructor(e,t,r,n){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];const s=this.outputShape.length,o=this.op===a.Prod?"1.0":"0.0",i=r?o:`getX(${p(s,"coords",this.op)})`,c=this.outputShape[this.outputShape.length-1];let d="",f="";r?(d=n?`end != ${c-1}`:"end != 0",f=n?"end + 1":"end - 1"):(d=n?`end + pow2< ${c}`:"end >= pow2",f=n?"end + pow2":"end - pow2"),this.userCode=` void main() { ${(0,l.getCoordsDataType)(s)} coords = getOutputCoords(); int end = ${u(s,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${d}) { int idx = ${f}; ${u(s,"coords",this.op)} = idx; val ${this.op}= getX(${p(s,"coords",this.op)}); } setOutput(val); } `}}function p(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.x, ${t}.y`;if(3===e)return`${t}.x, ${t}.y, ${t}.z`;if(4===e)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}function u(e,t,r){if(1===e)return`${t}`;if(2===e)return`${t}.y`;if(3===e)return`${t}.z`;if(4===e)return`${t}.w`;throw Error(`Cumulative ${r} for rank ${e} is not yet supported`)}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l4dmJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Identity"),i=e("./Transpose");function p(e,t,r,n,s,p){let u=t.shape.length,c=a.backend_util.getAxesPermutation([n],u),d=t;null!=c&&(d=(0,i.transpose)({inputs:{x:t},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,u)[0];if(f!==u-1)throw Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let m=d.shape[f],h=(0,l.identity)({inputs:{x:d},backend:r});for(let t=0;t<=Math.ceil(Math.log2(m))-1;t++){let n=new(0,o.CumProgram)(e,d.shape,!1,p),s=[[t]],a=h;h=r.runWebGLProgram(n,[h],h.dtype,s),r.disposeIntermediateTensorInfo(a)}if(s){let t=new(0,o.CumProgram)(e,d.shape,s,p),n=h;h=r.runWebGLProgram(t,[h],h.dtype),r.disposeIntermediateTensorInfo(n)}if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,i.transpose)({inputs:{x:h},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(d),t}return h}},{"@tensorflow/tfjs-core":"2Gtps","../cum_gpu":"2DlyG","./Identity":"97wVJ","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jJsSs:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i),s.export(r,"cumsumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cum_gpu"),l=e("./Cum_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:a,exclusive:i,reverse:p}=n;return(0,l.cumImpl)(o.CumOpType.Sum,s,r,a,i,p)}let p={kernelName:a.Cumsum,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cum_gpu":"2DlyG","./Cum_impl":"l4dmJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5RBVO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>l),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.readSync(s.dataId),t=r.readSync(a.dataId),n=(0,o.bincountImplCPU)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImplCPU)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9LXR4":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>l),s.export(r,"depthToSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../depth_to_space_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:a,dataFormat:l}=n,i=s.shape[0],p="NHWC"===l?s.shape[1]:s.shape[2],u="NHWC"===l?s.shape[2]:s.shape[3],c="NHWC"===l?s.shape[3]:s.shape[1],d=p*a,f=u*a,m=c/(a*a),h=new(0,o.DepthToSpaceProgram)("NHWC"===l?[i,d,f,m]:[i,m,d,f],a,l);return r.runWebGLProgram(h,[s],s.dtype)}let i={kernelName:a.DepthToSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../depth_to_space_gpu":"RB4TH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],RB4TH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthToSpaceProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int h = ${this.getHeightCoordString()}; int w = ${this.getWidthCoordString()}; int d = ${this.getDepthCoordString()}; int in_h = h / ${t}; int offset_h = imod(h, ${t}); int in_w = w / ${t}; int offset_w = imod(w, ${t}); int offset_d = (offset_h * ${t} + offset_w) * ${this.getOutputDepthSize()}; int in_d = d + offset_d; float result = ${this.getInputSamplingString()}; setOutput(result); } `}getHeightCoordString(){return"NHWC"===this.dataFormat?"coords[1]":"coords[2]"}getWidthCoordString(){return"NHWC"===this.dataFormat?"coords[2]":"coords[3]"}getDepthCoordString(){return"NHWC"===this.dataFormat?"coords[3]":"coords[1]"}getOutputDepthSize(){return"NHWC"===this.dataFormat?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return"NHWC"===this.dataFormat?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"36o00":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNative",()=>i),s.export(r,"depthwiseConv2dNativeConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:p}=r,{strides:u,pad:c,dilations:d,dimRoundingMode:f}=s,m=d;null==m&&(m=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(u,m),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${m}'`);let h=a.backend_util.computeConv2DInfo(i.shape,p.shape,u,m,c,f,!0);t=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&h.strideWidth<=2&&h.outChannels/h.inChannels==1?new(0,l.DepthwiseConvPacked2DProgram)(h):new(0,o.DepthwiseConv2DProgram)(h);let g=[[h.padInfo.top,h.padInfo.left],[h.strideHeight,h.strideWidth],[h.dilationHeight,h.dilationWidth],[h.inHeight,h.inWidth]];return n.runWebGLProgram(t,[i,p],"float32",g)}let p={kernelName:a.DepthwiseConv2dNative,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../conv_gpu_depthwise":"jUzNG","../conv_packed_gpu_depthwise":"60T3v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jUzNG:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DProgram",()=>o);var a=e("./gpgpu_math");class o{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,a.useShapeUniforms)(this.outputShape.length);const o=e.filterHeight,l=e.filterWidth,i=e.outChannels/e.inChannels;let p="",u="";r&&(p=n?`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`float activation(float a) { float b = getLeakyreluAlphaAtOutCoords(); ${r} }`:` float activation(float x) { ${r} } `,u="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${p} void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; ivec2 xRCCorner = coords.yz * strides - pads; int d2 = coords.w; int d1 = d2 / ${i}; int q = d2 - d1 * ${i}; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. for (int wR = 0; wR< ${o}; wR++) { int xR = xRCorner + wR * dilations[0]; if (xR < 0 || xR >= inDims[0]) { continue; } for (int wC = 0; wC< ${l}; wC++) { int xC = xCCorner + wC * dilations[1]; if (xC < 0 || xC >= inDims[1]) { continue; } float xVal = getX(batch, xR, xC, d1); float wVal = getW(wR, wC, d1, q); dotProd += xVal * wVal; } } float result = dotProd; ${t?"result += getBiasAtOutCoords();":""} ${u} setOutput(result); } `}}},{"./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"60T3v":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConvPacked2DProgram",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./gpgpu_math");class l{constructor(e,t=!1,r=null,n=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=(0,o.useShapeUniforms)(this.outputShape.length);const l=e.outChannels/e.inChannels,i=e.padInfo.left,p=e.strideWidth,u=e.dilationWidth,c=e.filterHeight,d=e.filterWidth;let f=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let e=0;e<d;e++)f+=` vec4 xTexelC${2*e}; int xTexelC${2*e}Ready; vec4 xTexelC${2*e+1}; int xTexelC${2*e+1}Ready; vec4 xC${e};`;f+=` for (int r = 0; r < ${c}; r++) { `;for(let e=0;e<d;e++)f+=` xTexelC${2*e} = vec4(0.0); xTexelC${2*e}Ready = 0; xTexelC${2*e+1} = vec4(0.0); xTexelC${2*e+1}Ready = 0; xC${e} = vec4(0.0);`;f+=` xR = xRCorner + r * dilations[0]; if (xR >=0 && xR< inDims[0]) { `;for(let e=0;e<(d+1)/2;e++){const t=2*e;if(f+=` xC = xCCorner + ${t*u}; `,1===p){if(t<d&&(i%2==1?(f+=` xCOffset = xC + 1; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } `,1===u&&t>0?f+=` xC${t} = vec4(xTexelC${t-2}.zw, xTexelC${t}.xy); `:f+=` xCOffset = xC + 1 - 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { previous.zw = vec2(0.0); } xC${t} = vec4(previous.zw, xTexelC${t}.xy); } else { xC${t} = vec4(0.0, 0.0, xTexelC${t}.xy); } `):f+=` if (xC >= 0 && xC< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } xC${t} = xTexelC${t}; `,t+1<d)){const e=i%2==0?a.util.nearestLargerEven(u):u;u%2==0&&i%2==1||u%2!=0&&i%2!=1?(f+=` xCOffset = xC + imod(pads[1], 2) + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.0); } xTexelC${t+1}Ready = 1; } `,u>1?f+=` xCOffset -= 2; if (xCOffset >= 0 && xCOffset< inDims[1]) { previous = getX(batch, xR, xCOffset, d1); xC${t+1} = vec4(previous.zw, xTexelC${t+1}.xy); } else { xC${t+1} = vec4(0.0, 0.0, xTexelC${t+1}.xy); } `:f+=` xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.xy); `):1===e?f+=` xC${t+1} = xTexelC${t}; `:f+=` xCOffset = xC + ${e}; if (xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.0); } xTexelC${t+1}Ready = 1; } xC${t+1} = xTexelC${t+1}; `}}else t<d&&(i%2==1?(f+=` xCOffset = xC + 1 - strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xCOffset, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xCOffset + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } if(xC + 1 >= 0 && xC + 1< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xC + 1, d1); // Need to manually clear unused channels in case // we're reading from recycled texture. if (xC + 2 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.0); } xTexelC${t+1}Ready = 1; } xC${t} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw); `,t+1<d&&(f+=` final = vec4(0.0); xCOffset = xC + 1 + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1]) { final = getX(batch, xR, xCOffset, d1); } xC${t+1} = vec4(xTexelC${t+1}.xy, final.xy); `)):(f+=` if(xC >= 0 && xC< inDims[1] && xTexelC${t}Ready == 0) { xTexelC${t} = getX(batch, xR, xC, d1); if (xC + 1 >= inDims[1]) { xTexelC${t}.zw = vec2(0.0); } xTexelC${t}Ready = 1; } xCOffset = xC + strides[1]; if(xCOffset >= 0 && xCOffset< inDims[1] && xTexelC${t+1}Ready == 0) { xTexelC${t+1} = getX(batch, xR, xCOffset, d1); if (xCOffset + 1 >= inDims[1]) { xTexelC${t+1}.zw = vec2(0.); } xTexelC${t+1}Ready = 1; } xC${t} = vec4( xTexelC${t}.xy, xTexelC${t+1}.xy); `,t+1<d&&(f+=` xC${t+1} = vec4(xTexelC${t}.zw, xTexelC${t+1}.zw); `)));t<d&&(f+=` wTexel = getW(r, ${t}, d1, q); dotProd += xC${t} * vec4(wTexel.xz, wTexel.xz); `,t+1<d&&(f+=` wTexel = getW(r, ${t+1}, d1, q); dotProd += xC${t+1} * vec4(wTexel.xz, wTexel.xz); `))}f+=` } } `;let m="",h="";r&&(m=n?`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${r} }`:s?`vec4 activation(vec4 a) { vec4 b = getLeakyreluAlphaAtOutCoords(); ${r} }`:`vec4 activation(vec4 x) { ${r} }`,h="result = activation(result);"),t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${m} void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; ivec2 xRCCorner = coords.yz * strides - pads; int d2 = coords.w; int d1 = d2 / ${l}; int q = d2 - d1 * ${l}; int xRCorner = xRCCorner.x; int xCCorner = xRCCorner.y; //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss. vec4 dotProd = vec4(0.000000000000001); ${f} vec4 result = dotProd - vec4(0.000000000000001); ${t?"result += getBiasAtOutCoords();":""} ${h} setOutput(result); } `}}},{"@tensorflow/tfjs-core":"2Gtps","./gpgpu_math":"6rFox","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"12xnA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>l),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:p,pad:u,dimRoundingMode:c,filterShape:d}=n,f=a.backend_util.computeConv2DInfo(s.shape,d,i,p,u,c,!0),m=new(0,o.DepthwiseConv2DDerFilterProgram)(f);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropFilter,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../conv_backprop_gpu_depthwise":"4GYwp","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4GYwp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DepthwiseConv2DDerFilterProgram",()=>a),s.export(r,"DepthwiseConv2DDerInputProgram",()=>o);class a{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,r=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; int wC = coords.y; int d1 = coords.z; int dm = coords.w; int d2 = d1 * ${a} + dm; float dotProd = 0.0; // TO DO: Vec4 over the batch size for (int b = 0; b< ${e.batchSize}; b++) { for (int yR = 0; yR < ${e.outHeight}; yR++) { int xR = wR + yR * ${t} - ${n}; if (xR < 0 || xR >= ${e.inHeight}) { continue; } for (int yC = 0; yC< ${e.outWidth}; yC++) { int xC = wC + yC * ${r} - ${s}; if (xC < 0 || xC >= ${e.inWidth}) { continue; } float dyValue = getDy(b, yR, yC, d2); float xValue = getX(b, xR, xC, d1); dotProd += (xValue * dyValue); } } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,r=e.filterWidth,n=e.strideHeight,s=e.strideWidth,a=t-1-e.padInfo.top,o=r-1-e.padInfo.left,l=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${a}, ${o}); void main() { ivec4 coords = getOutputCoords(); int batch = coords[0]; int d1 = coords[3]; ivec2 dyCorner = coords.yz - pads; int dyRCorner = dyCorner.x; int dyCCorner = dyCorner.y; float dotProd = 0.0; for (int wR = 0; wR< ${t}; wR++) { float dyR = float(dyRCorner + wR) / ${n}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); int wRPerm = ${t} - 1 - wR; for (int wC = 0; wC< ${r}; wC++) { float dyC = float(dyCCorner + wC) / ${s}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); int wCPerm = ${r} - 1 - wC; // TO DO: Vec4 over the channelMul for (int dm = 0; dm< ${l}; dm++) { int d2 = d1 * ${l} + dm; float xValue = getDy(batch, idyR, idyC, d2); float wValue = getW(wRPerm, wCPerm, d1, dm); dotProd += xValue * wValue; } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4B9iu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>l),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../conv_backprop_gpu_depthwise");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:p,pad:u,dimRoundingMode:c,inputShape:d}=n,f=a.backend_util.computeConv2DInfo(d,l.shape,i,p,u,c,!0),m=new(0,o.DepthwiseConv2DDerInputProgram)(f);return r.runWebGLProgram(m,[s,l],"float32")}let i={kernelName:a.DepthwiseConv2dNativeBackpropInput,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../conv_backprop_gpu_depthwise":"4GYwp","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ci7kL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>i),s.export(r,"diagConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../diag_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{x:n}=t,s=[...n.shape,...n.shape],i=a.util.sizeFromShape(n.shape),p=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[i]}}),u=new(0,o.DiagProgram)(i),c=r.runWebGLProgram(u,[p],p.dtype),d=(0,l.reshape)({inputs:{x:c},backend:r,attrs:{shape:s}});return r.disposeIntermediateTensorInfo(p),r.disposeIntermediateTensorInfo(c),d}let p={kernelName:a.Diag,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../diag_gpu":"fB7ZT","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fB7ZT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"DiagProgram",()=>a);class a{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); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6eRvh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2D",()=>i),s.export(r,"dilation2DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../dilation_gpu"),l=e("./Reshape");function i(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:i,filter:p}=r,{strides:u,pad:c,dilations:d}=s,f=a.backend_util.computeDilation2DInfo(i.shape,p.shape,u,c,"NHWC",d),m=new(0,o.Dilation2DProgram)(f);t=n.runWebGLProgram(m,[i,p],"float32");let h=(0,l.reshape)({inputs:{x:t},backend:n,attrs:{shape:f.outShape}});return n.disposeIntermediateTensorInfo(t),h}let p={kernelName:a.Dilation2D,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../dilation_gpu":"9dXnV","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9dXnV":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"Dilation2DProgram",()=>a);class a{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const{inHeight:t,inWidth:r,padInfo:n,strideHeight:s,strideWidth:a,filterHeight:o,filterWidth:l,dilationHeight:i,dilationWidth:p}=e,{top:u,left:c}=n;this.userCode=` const ivec2 strides = ivec2(${s}, ${a}); const ivec2 pads = ivec2(${u}, ${c}); const float neg_infinity = -3.4e38; void main() { ivec4 coords = getOutputCoords(); int batch = coords.x; int d1 = coords.w; ivec2 outTopLeftCorner = coords.yz * strides - pads; int hBeg = outTopLeftCorner.x; int wBeg = outTopLeftCorner.y; float curVal = neg_infinity; for (int h = 0; h< ${o}; h++) { int hIn = hBeg + h * ${i}; if (hIn >= 0 && hIn< ${t}) { for (int w = 0; w < ${l}; w++) { int wIn = wBeg + w * ${p}; if (wIn >= 0 && wIn< ${r}) { float xVal = getX(batch, hIn, wIn, d1); float wVal = getW(h, w, d1); float val = xVal + wVal; if (val >curVal) { curVal = val; } } } } } float result = curVal; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jphhx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>u),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),p=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:u,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(u.length,d,t);let{path:f,steps:m}=a.backend_util.getEinsumComputePath(c,d),h=m.length,g=null,x=u.length,y=[];for(let e=0;e<h;++e){for(let n of m[e]){let e,{permutationIndices:s,expandDims:i}=a.backend_util.getEinsumPermutation(x,d[n]);a.backend_util.isIdentityPermutation(s)?e=t[n]:(e=(0,p.transpose)({inputs:{x:t[n]},backend:r,attrs:{perm:s}}),y.push(e));let u=e.shape.slice();for(let e=0;e<i.length;++e)u.splice(i[e],0,1);a.util.arraysEqual(e.shape,u)||(e=(0,l.reshape)({inputs:{x:e},backend:r,attrs:{shape:u}}),y.push(e)),null===g?g=e:(g=(0,o.multiply)({inputs:{a:e,b:g},backend:r}),y.push(g))}e<h-1&&(f[e]>=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(u.length-x),keepDims:!1}}),y.push(g)),x--)}for(let e of y)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","./Multiply":"gGANs","./Reshape":"aOEE6","./Sum":"M2cwD","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4P0YX":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; `,i=(0,o.unaryKernelFunc)({opSnippet:"return (x >= 0.0) ? x : (exp(x) - 1.0);",packedOpSnippet:l}),p={kernelName:a.Elu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4DtrS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluGrad",()=>p),s.export(r,"eluGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu");let i=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); `,p=e=>{let{inputs:t,backend:r}=e,{dy:n,y:s}=t,p=(0,a.env)().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new(0,l.BinaryOpPackedProgram)(i,n.shape,s.shape):new(0,o.BinaryOpProgram)("return (b >= 0.0) ? a : a * (b + 1.0);",n.shape,s.shape);return r.runWebGLProgram(p,[n,s],n.dtype)},u={kernelName:a.EluGrad,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3lFAQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"equal",()=>p),s.export(r,"equalConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(equal(a, b)); `,p=(0,o.binaryKernelFunc)({opSnippet:"return float(a == b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.equalImplCPU}),u={kernelName:a.Equal,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iwuZL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>i),s.export(r,"erfConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. float p = ${a.backend_util.ERF_P}; float a1 = ${a.backend_util.ERF_A1}; float a2 = ${a.backend_util.ERF_A2}; float a3 = ${a.backend_util.ERF_A3}; float a4 = ${a.backend_util.ERF_A4}; float a5 = ${a.backend_util.ERF_A5}; float sign = sign(x); 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)); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Erf,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4c99Q":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"EXP",()=>i),s.export(r,"exp",()=>u),s.export(r,"expConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` return exp(x); `,p=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:p,cpuKernelImpl:l.expImplCPU,dtype:"float32"}),c={kernelName:a.Exp,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4fHop":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,attrs:r,backend:n}=e,{dim:s}=r,{input:l}=t,i=l.shape.length,p=l.shape.slice(),u=s;return s<0&&(a.util.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),p.splice(u,0,1),(0,o.reshape)({inputs:{x:l},backend:n,attrs:{shape:p}})}let i={kernelName:a.ExpandDims,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8I1xu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expm1",()=>p),s.export(r,"expm1Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return exp(x) - 1.0;",p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.expm1ImplCPU}),u={kernelName:a.Expm1,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fa4nh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>l),s.export(r,"fftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!1,r)}let i={kernelName:a.FFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./FFT_impl":"8b30m","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8b30m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftImpl",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../fft_gpu"),l=e("./Complex"),i=e("./Reshape");function p(e,t,r){let n=r.texData.get(e.dataId),s=a.util.sizeFromShape(e.shape),p=e.shape[e.shape.length-1],u=(0,i.reshape)({inputs:{x:e},backend:r,attrs:{shape:[s/p,p]}}),c=u.shape,d=new(0,o.FFTProgram)("real",c,t),f=new(0,o.FFTProgram)("imag",c,t),m=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:c},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:c}],h=r.runWebGLProgram(d,m,"float32"),g=r.runWebGLProgram(f,m,"float32"),x=(0,l.complex)({inputs:{real:h,imag:g},backend:r});r.disposeIntermediateTensorInfo(h),r.disposeIntermediateTensorInfo(g);let y=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:e.shape}});return r.disposeIntermediateTensorInfo(u),r.disposeIntermediateTensorInfo(x),y}},{"@tensorflow/tfjs-core":"2Gtps","../fft_gpu":"8F1KE","./Complex":"g1bJ7","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8F1KE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FFTProgram",()=>a);class a{constructor(e,t,r){let n;this.variableNames=["real","imag"];const s=t[1];this.outputShape=t;const a=r?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,o=r?`${s}.0`:"1.0";if("real"===e)n="return real * expR - imag * expI;";else if("imag"===e)n="return real * expI + imag * expR;";else throw Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${a}; float unaryOpComplex(float real, float expR, float imag, float expI) { ${n} } float mulMatDFT(int batch, int index) { float indexRatio = float(index) / float(${s}); float exponentMultiplierTimesIndexRatio = exponentMultiplier * indexRatio; float result = 0.0; for (int i = 0; i< ${s}; i++) { // x = (-2|2 * PI / N) * index * i; float x = exponentMultiplierTimesIndexRatio * float(i); float expR = cos(x); float expI = sin(x); float real = getReal(batch, i); float imag = getImag(batch, i); result += unaryOpComplex(real, expR, imag, expI) / ${o}; } return result; } void main() { ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9ryy3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>l),s.export(r,"fillConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../fill_gpu");function l(e){let{backend:t,attrs:r}=e,{shape:n,value:s}=r,{dtype:l}=r;if("string"===(l=l||a.util.inferDtype(s))){let e=a.util.getArrayFromDType(l,a.util.sizeFromShape(n));return e.fill(s),t.makeTensorInfo(n,l,e)}{let e=new(0,o.FillProgram)(n,s),r=[[s]];return t.runWebGLProgram(e,[],l,r)}}let i={kernelName:a.Fill,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../fill_gpu":"40UNr","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"40UNr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FillProgram",()=>a);class a{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iloIr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../flip_left_right_gpu");let l={kernelName:a.FlipLeftRight,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:r}=e,n=new(0,o.FlipLeftRightProgram)(r.shape);return t.runWebGLProgram(n,[r],r.dtype)}}},{"@tensorflow/tfjs-core":"2Gtps","../flip_left_right_gpu":"8xOQZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8xOQZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FlipLeftRightProgram",()=>a);class a{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; int coordX = ${t} - x - 1; float outputValue; if(coordX >= 0 && coordX< ${t}) { outputValue = getImage(coords[0], coords[1], coordX, coords[3]); } else { outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); } setOutput(outputValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"68gWA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floor",()=>p),s.export(r,"floorConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return floor(x);",p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.floorImplCPU}),u={kernelName:a.Floor,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dW3ZT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"floorDiv",()=>p),s.export(r,"floorDivConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); if (ib != 0) { // Windows (D3D) wants guaranteed non-zero int division at compile-time. return float(idiv(ia, ib, s)); } else { return NAN; } `,i=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); ivec4 result = ivec4(0); vec4 s = sign(a) * sign(b); // Windows (D3D) wants guaranteed non-zero int division at compile-time. if (cond[0]) { result[0] = idiv(ia[0], ib[0], s[0]); } if (cond[1]) { result[1] = idiv(ia[1], ib[1], s[1]); } if (cond[2]) { result[2] = idiv(ia[2], ib[2], s[2]); } if (cond[3]) { result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); `,p=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,dtype:"int32"}),u={kernelName:a.FloorDiv,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eouhM:[function(e,t,r,n){let s;var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"fromPixelsConfig",()=>u);var o=e("@tensorflow/tfjs-core"),l=e("../tex_util"),i=e("./FromPixels_utils/from_pixels_gpu"),p=e("./FromPixels_utils/from_pixels_packed_gpu");let u={kernelName:o.FromPixels,backendName:"webgl",kernelFunc:function(e){let{inputs:t,backend:r,attrs:n}=e,{pixels:a}=t,{numChannels:u}=n,d="u">typeof HTMLVideoElement&&a instanceof HTMLVideoElement,f="u">typeof HTMLImageElement&&a instanceof HTMLImageElement,[m,h]=d?[a.videoWidth,a.videoHeight]:[a.width,a.height],g=[h,m],x=[h,m,u];if(f||d){let e=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(null==s||e!==c)&&(c=e,s=document.createElement("canvas").getContext("2d",{willReadFrequently:c})),s.canvas.width=m,s.canvas.height=h,s.drawImage(a,0,0,m,h),a=s.canvas}let y=r.makeTensorInfo(g,"int32");r.texData.get(y.dataId).usage=l.TextureUsage.PIXELS,r.gpgpu.uploadPixelDataToTexture(r.getTexture(y.dataId),a);let v=(0,o.env)().getBool("WEBGL_PACK")?new(0,p.FromPixelsPackedProgram)(x):new(0,i.FromPixelsProgram)(x),b=r.runWebGLProgram(v,[y],"int32");return r.disposeData(y.dataId),b}},c=(0,o.env)().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU")},{"@tensorflow/tfjs-core":"2Gtps","../tex_util":"etxDi","./FromPixels_utils/from_pixels_gpu":"3xVb2","./FromPixels_utils/from_pixels_packed_gpu":"fsdWW","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3xVb2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"];const t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; int texC = coords[1]; int depth = coords[2]; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${r}.0); vec4 values = ${t.texture2D}(A, uv); float value; if (depth == 0) { value = values.r; } else if (depth == 1) { value = values.g; } else if (depth == 2) { value = values.b; } else if (depth == 3) { value = values.a; } setOutput(floor(value * 255.0 + 0.5)); } `}}},{"../../glsl_version":"dyQn5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fsdWW:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"FromPixelsPackedProgram",()=>o);var a=e("../../glsl_version");class o{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=(0,a.getGlslDifferences)(),[r,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; int texC = coords[1]; int depth = coords[2]; vec4 result = vec4(0.); for(int row=0; row<=1; row++) { for(int col=0; col<=1; col++) { texC = coords[1] + row; depth = coords[2] + col; vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${r}.0); vec4 values = ${t.texture2D}(A, uv); float value; if (depth == 0) { value = values.r; } else if (depth == 1) { value = values.g; } else if (depth == 2) { value = values.b; } else if (depth == 3) { value = values.a; } result[row * 2 + col] = floor(value * 255.0 + 0.5); } } ${t.output} = result; } `}}},{"../../glsl_version":"dyQn5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4057Z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedConv2d",()=>c),s.export(r,"fusedConv2DConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu"),l=e("../conv_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),p=e("./Conv2D_impl"),u=e("./Reshape");function c(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:c,filter:d,bias:f,preluActivationWeights:m}=r,{strides:h,pad:g,dataFormat:x,dilations:y,dimRoundingMode:v,activation:b,leakyreluAlpha:k}=s,_=a.backend_util.convertConv2DDataFormat(x),I=a.backend_util.computeConv2DInfo(c.shape,d.shape,h,y,g,v,!1,_),j=[],w=null!=f,T=null!=m,S="leakyrelu"===b,C=()=>{let e=[c,d],t=(e,t)=>{if("NCHW"===t&&1===e.shape.length&&1!==e.shape[0]){let t=(0,u.reshape)({inputs:{x:e},backend:n,attrs:{shape:[e.shape[0],1,1]}});return j.push(t),t}return e};if(w&&e.push(t(f,x)),T&&e.push(t(m,x)),S){let t=n.makeTensorInfo([],"float32",a.util.createScalarValue(k,"float32"));e.push(t),j.push(t)}return e};if(1===I.filterHeight&&1===I.filterWidth&&1===I.dilationHeight&&1===I.dilationWidth&&1===I.strideHeight&&1===I.strideWidth&&("SAME"===I.padInfo.type||"VALID"===I.padInfo.type))t=(0,p.conv2dByMatMul)({x:c,filter:d,convInfo:I,backend:n,bias:f,activation:b,preluActivationWeights:m,leakyreluAlpha:k});else if(I.strideWidth<=2&&"channelsLast"===_&&(0,a.env)().getBool("WEBGL_EXP_CONV")){let e=b?(0,i.mapActivationToShaderProgram)(b,!0):null,r=new(0,l.Conv2DPackedProgram)(I,w,e,T,S),s=[[I.padInfo.top,I.padInfo.left],[I.strideHeight,I.strideWidth],[I.dilationHeight,I.dilationWidth],[I.inHeight,I.inWidth]],a=C();t=n.runWebGLProgram(r,a,"float32",s)}else if((0,a.env)().getBool("WEBGL_CONV_IM2COL"))t=(0,p.conv2dWithIm2Row)({x:c,filter:d,convInfo:I,backend:n,bias:f,activation:b,preluActivationWeights:m,leakyreluAlpha:k});else{let e=b?(0,i.mapActivationToShaderProgram)(b,!1):null,r=new(0,o.Conv2DProgram)(I,w,e,T,S),s=C();t=n.runWebGLProgram(r,s,"float32")}let N=(0,u.reshape)({inputs:{x:t},backend:n,attrs:{shape:I.outShape}});return j.push(t),j.forEach(e=>n.disposeIntermediateTensorInfo(e)),N}let d={kernelName:a.FusedConv2D,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","../conv_gpu":"9rKCB","../conv_packed_gpu":"kQJUn","../kernel_utils/kernel_funcs_utils":"5oexO","./Conv2D_impl":"bLHqw","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5c3VQ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>p),s.export(r,"fusedDepthwiseConv2DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../conv_gpu_depthwise"),l=e("../conv_packed_gpu_depthwise"),i=e("../kernel_utils/kernel_funcs_utils");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p,filter:u,bias:c,preluActivationWeights:d}=r,{strides:f,pad:m,dilations:h,dimRoundingMode:g,activation:x,leakyreluAlpha:y}=s,v=[],b=h;null==b&&(b=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(f,b),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${f} and dilations '${b}'`);let k=a.backend_util.computeConv2DInfo(p.shape,u.shape,f,b,m,g,!0),_=(0,a.env)().getBool("WEBGL_PACK_DEPTHWISECONV")&&k.strideWidth<=2&&k.outChannels/k.inChannels==1,I=x?(0,i.mapActivationToShaderProgram)(x,_):null,j=[p,u],w=null!=c,T=null!=d,S="leakyrelu"===x;if(w&&j.push(c),T&&j.push(d),S){let e=n.makeTensorInfo([],"float32",a.util.createScalarValue(y,"float32"));j.push(e),v.push(e)}t=_?new(0,l.DepthwiseConvPacked2DProgram)(k,w,I,T,S):new(0,o.DepthwiseConv2DProgram)(k,w,I,T,S);let C=[[k.padInfo.top,k.padInfo.left],[k.strideHeight,k.strideWidth],[k.dilationHeight,k.dilationWidth],[k.inHeight,k.inWidth]],N=n.runWebGLProgram(t,j,"float32",C);return v.forEach(e=>n.disposeIntermediateTensorInfo(e)),N}let u={kernelName:a.FusedDepthwiseConv2D,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../conv_gpu_depthwise":"jUzNG","../conv_packed_gpu_depthwise":"60T3v","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9L1cm":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>p),s.export(r,"gatherNdConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../gather_nd_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function p(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,p=s.shape,u=p[p.length-1],c=a.util.sizeFromShape(n.shape),[d,f,m,h]=a.backend_util.prepareAndValidate(n,s),g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f,u]}}),x=(0,i.reshape)({inputs:{x:n},backend:r,attrs:{shape:[a.util.sizeFromShape(n.shape)/m,m]}});if(r.shouldExecuteOnCPU([n,s])||"string"===n.dtype){let e=r.readSync(s.dataId),t=r.bufferSync(n),a=(0,l.gatherNdImplCPU)(e,t,n.dtype,f,u,m,h,n.shape,c);return r.makeTensorInfo(d,n.dtype,a.values)}let y=new(0,o.GatherNDProgram)(u,h,[f,m],n.shape),v=r.runWebGLProgram(y,[x,g],x.dtype),b=(0,i.reshape)({inputs:{x:v},backend:r,attrs:{shape:d}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(v),b}let u={kernelName:a.GatherNd,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../gather_nd_gpu":"evdDw","../kernel_utils/shared":"6ruDg","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],evdDw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherNDProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n){this.sliceDim=e,this.strides=t,this.paramsShape=n,this.variableNames=["x","indices"],this.outputShape=r;const s=(0,a.getCoordsDataType)(r.length);let o=` int index;`;for(let e=0;e<this.sliceDim;e++)o+=` index = round(getIndices(coords[0], ${e})); out_of_bounds = out_of_bounds || index < 0; out_of_bounds = out_of_bounds || index >= ${this.paramsShape[e]}; flattenIndex += index * ${this.strides[e]};`;this.userCode=` void main() { ${s} coords = getOutputCoords(); int flattenIndex = 0; bool out_of_bounds = false; ${o} setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1])); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l9Cv5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>p),s.export(r,"gatherV2Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../gather_gpu"),l=e("../kernel_utils/shared"),i=e("./Reshape");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:p}=t,{axis:u,batchDims:c}=n,d=a.util.parseAxisParam(u,s.shape)[0];if((0,a.env)().get("DEBUG")){let e=r.readSync(p.dataId),t=s.shape[d];for(let r=0;r<e.length;++r){let n=e[r];a.util.assert(n<=t-1&&n>=0,()=>`GatherV2: the index value ${n} is not in [0, ${t-1}]`)}}let f=a.backend_util.segment_util.collectGatherOpShapeInfo(s,p,d,c),m=a.util.sizeFromShape(p.shape),h=[],g=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),x=(0,i.reshape)({inputs:{x:p},backend:r,attrs:{shape:[f.batchSize,m/f.batchSize]}});h.push(g),h.push(x);let y=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize];if(r.shouldExecuteOnCPU([s,p])||"string"===s.dtype){let e=r.bufferSync(x),t=r.bufferSync(g),n=(0,l.gatherV2ImplCPU)(t,e,y);return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f.outputShape,n.dtype,n.values)}let v=new(0,o.GatherProgram)(g.shape,y),b=r.runWebGLProgram(v,[g,x],g.dtype);h.push(b);let k=(0,i.reshape)({inputs:{x:b},backend:r,attrs:{shape:f.outputShape}});return h.forEach(e=>r.disposeIntermediateTensorInfo(e)),k}let u={kernelName:a.GatherV2,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../gather_gpu":"fhNIK","../kernel_utils/shared":"6ruDg","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fhNIK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"GatherProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A","indices"],this.outputShape=t,this.rank=t.length;const r=(0,a.getCoordsDataType)(this.rank),n=function(e){let t=["resRC.x","resRC.y","resRC.z","resRC.w"],r=[];for(let n=0;n<e.length;n++)2===n?r.push("index"):r.push(`${t[n]}`);return r.join()}(e);this.userCode=` void main() { ${r} resRC = getOutputCoords(); int index = int(getIndices(resRC.x, resRC.z)); float inBounds = (index >= 0) && (index< ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${n})); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2onfy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greater",()=>p),s.export(r,"greaterConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(greaterThan(a, b)); `,p=(0,o.binaryKernelFunc)({opSnippet:"return float(a > b);",packedOpSnippet:i,cpuKernelImpl:l.greaterImplCPU,dtype:"bool"}),u={kernelName:a.Greater,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j3rRR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"greaterEqual",()=>p),s.export(r,"greaterEqualConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(greaterThanEqual(a, b)); `,p=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= b);",packedOpSnippet:i,dtype:"bool",cpuKernelImpl:l.greaterEqualImplCPU}),u={kernelName:a.GreaterEqual,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1XpIh":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>l),s.export(r,"ifftConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./FFT_impl");function l(e){let{inputs:t,backend:r}=e,{input:n}=t;return(0,o.fftImpl)(n,!0,r)}let i={kernelName:a.IFFT,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./FFT_impl":"8b30m","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2G76h":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!isnan(x) && !isinf(x));",dtype:"bool"}),l={kernelName:a.IsFinite,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],e9CB0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isinf(x));",dtype:"bool"}),l={kernelName:a.IsInf,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dGj2A:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(isnan(x));",dtype:"bool"}),l={kernelName:a.IsNan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aRr8q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"less",()=>p),s.export(r,"lessConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=` return vec4(lessThan(a, b)); `,p=(0,o.binaryKernelFunc)({opSnippet:"return float(a< b);",packedOpSnippet:i,cpuKernelImpl:l.lessImplCPU,dtype:"bool"}),u={kernelName:a.Less,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],khsCA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LESS_EQUAL",()=>i),s.export(r,"LESS_EQUAL_PACKED",()=>p),s.export(r,"lessEqual",()=>u),s.export(r,"lessEqualConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return float(a<= b);",p=` return vec4(lessThanEqual(a, b)); `,u=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:p,cpuKernelImpl:l.lessEqualImplCPU,dtype:"bool"}),c={kernelName:a.LessEqual,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gzgJQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImplCPU)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5Afxb":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log",()=>u),s.export(r,"logConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` return x< 0.0 ? 0./0. : log(x); `,p=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g); result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; `,u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:p,cpuKernelImpl:l.logImplCPU}),c={kernelName:a.Log,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ihKi1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>i),s.export(r,"log1pConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=o.CHECK_NAN_SNIPPET_UNARY+` return log(1.0 + x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Log1p,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],g7wT3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAnd",()=>i),s.export(r,"logicalAndConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); `,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 && b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),p={kernelName:a.LogicalAnd,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3Jb1X":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return float(!(x >= 1.0));"}),l={kernelName:a.LogicalNot,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9pxKx":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOr",()=>i),s.export(r,"logicalOrConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); `,i=(0,o.binaryKernelFunc)({opSnippet:"return float(a >= 1.0 || b >= 1.0);",packedOpSnippet:l,dtype:"bool"}),p={kernelName:a.LogicalOr,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gm5j4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrn",()=>i),s.export(r,"LRNConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_gpu"),l=e("../lrn_packed_gpu");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:i,bias:p,alpha:u,beta:c}=n,d=(0,a.env)().getBool("WEBGL_PACK_NORMALIZATION")?new(0,l.LRNPackedProgram)(s.shape,i,p,u,c):new(0,o.LRNProgram)(s.shape,i,p,u,c);return r.runWebGLProgram(d,[s],s.dtype)},p={kernelName:a.LRN,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../lrn_gpu":"1Uwrr","../lrn_packed_gpu":"cxp6G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1Uwrr":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[];const o=e[3]-1;this.outputShape=e;const l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int r = coords[1]; int c = coords[2]; int d = coords[3]; float x = getX(b, r, c, d); float sum = 0.0; for (int j = -${t}; j<= ${t}; j++) { int idx = d + j; if (idx >= 0 && idx<= ${o}) { float z = getX(b, r, c, idx); sum += z * z; } } float val = x * ${a}; setOutput(val); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cxp6G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNPackedProgram",()=>a);class a{constructor(e,t,r,n,s){let a;this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const o=e[3]-1;this.outputShape=e;const l=`float(${r}) + float(${n}) * sum`;a=.5===s?`inversesqrt(${l})`:1===s?`1.0/(${l})`:`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; int r = coords.y; int c = coords.z; int d = coords.w; bool hasNextCol = d< ${this.outputShape[3]}; bool hasNextRow = c < ${this.outputShape[2]}; vec4 sum = vec4(0.); vec4 xFragAtOutputCoords = getX(b, r, c, d); vec4 xAtOutputCoords = vec4( getChannel(xFragAtOutputCoords, vec2(c, d)), hasNextCol ? getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, hasNextRow ? getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, (hasNextRow && hasNextCol) ? getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 ); int firstChannel = d - ${t}; vec2 cache = vec2(0.); if(firstChannel >= 0){ vec4 firstChannelFrag = getX(b, r, c, firstChannel); cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); if(hasNextRow){ cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); } } ivec2 depth = ivec2(d, d + 1); for (int j = - ${t}; j<= ${t}; j++) { ivec2 idx = depth + j; bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${o})); bool depthInRange = aboveLowerBound.x && belowUpperBound.x; bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; if(depthInRange || depthPlusOneInRange){ vec4 z = vec4(0.); vec4 xFragAtCurrentDepth; z.xz = cache.xy; if(depthPlusOneInRange && hasNextCol){ xFragAtCurrentDepth = idx.y != d ? getX(b, r, c, idx.y) : xFragAtOutputCoords; z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); if(hasNextRow){ z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); } } cache.xy = z.yw; sum += z * z; } } vec4 result = xAtOutputCoords * ${a}; setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lcb03:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lrnGrad",()=>l),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../lrn_grad_gpu");let l=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s,y:a,dy:l}=t,{depthRadius:i,bias:p,alpha:u,beta:c}=n,d=new(0,o.LRNGradProgram)(s.shape,i,p,u,c);return r.runWebGLProgram(d,[s,a,l],s.dtype)},i={kernelName:a.LRNGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../lrn_grad_gpu":"kS8Sp","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kS8Sp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"LRNGradProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=r,this.alpha=n,this.beta=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int r = coords[1]; int c = coords[2]; float result = 0.0; for (int d = 0; d< ${this.depth}; ++d) { int depthBegin = int(max(0.0, float(d - ${t}))); int depthEnd = int(min(float(${this.depth}), float(d + ${t} + 1))); const int MIN_DEPTH_BEGIN = 0; const int MAX_DEPTH_END = ${this.depth}; float norm = 0.0; for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { if (k < depthBegin){ continue; } else if (k >= depthBegin && k< depthEnd) { norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); } else { break; } } norm = float(${n}) * norm + float(${r}); for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ if (k < depthBegin){ continue; } else if (k >= depthBegin && k< depthEnd){ float dyi = -2.0 * float(${n}) * float(${s}) * getInputImage(b, r, c, k) * getOutputImage(b, r, c, d) / norm; if (k == d) { dyi += pow(norm, -1.0 * ${s}); } if (k == coords[3]) { dyi *= getDy(b, r, c, d); result += dyi; } } else { break; } } } setOutput(result); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],afHh0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>p),s.export(r,"maxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("./Max_impl"),i=e("./Transpose_impl");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{reductionIndices:u,keepDims:c}=s,d=p.shape.length,f=a.util.parseAxisParam(u,p.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=null!=h,x=n.shouldExecuteOnCPU([p]),y=p;if(g){if(x){let e=n.texData.get(y.dataId).values,t=Array(d);for(let e=0;e<t.length;e++)t[e]=p.shape[h[e]];let r=(0,i.transposeImplCPU)(e,p.shape,p.dtype,h,t);y=n.makeTensorInfo(t,p.dtype),n.texData.get(y.dataId).values=r}else y=(0,i.transposeImpl)(p,h,n);m=a.backend_util.getInnerMostAxes(m.length,d)}a.backend_util.assertAxesAreInnerMostDims("max",m,d);let[v,b]=a.backend_util.computeOutAndReduceShapes(y.shape,m),k=v;if(c&&(k=a.backend_util.expandShapeToKeepDim(v,f)),x){let e=n.texData.get(y.dataId).values,r=(0,o.maxImplCPU)(e,a.util.sizeFromShape(b),k,p.dtype);t=n.makeTensorInfo(k,p.dtype),n.texData.get(t.dataId).values=r}else t=(0,l.maxImpl)(y,b,k,n);return g&&n.disposeIntermediateTensorInfo(y),t}let u={kernelName:a.Max,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","./Max_impl":"5vcnJ","./Transpose_impl":[["transposeImpl","3ouoc"],["transposeImplCPU","6ruDg"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5vcnJ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxImpl",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),p=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),u=(0,o.reduce)(p,e.dtype,"max",n),c=(0,l.reshape)({inputs:{x:u},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(u),c}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","../kernels/Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"94OQw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maximum",()=>d),s.export(r,"maximumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),p=e("../kernel_utils/shared");let u=o.CHECK_NAN_SNIPPET+` return max(a, b); `,c=` vec4 result = vec4(max(a, b)); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+l.CHECK_NAN_SNIPPET_PACKED+` return result; `,d=(0,i.binaryKernelFunc)({opSnippet:u,packedOpSnippet:c,cpuKernelImpl:p.maximumImplCPU}),f={kernelName:a.Maximum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3XdiF":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>p),s.export(r,"maxPoolConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu"),l=e("../webgl_util"),i=e("./Identity");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;(0,l.assertNotComplex)(s,"maxPool");let{filterSize:p,strides:u,pad:c,dimRoundingMode:d}=n;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(u,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${u} and dilations '1'`);let f=a.backend_util.computePool2DInfo(s.shape,p,u,1,c,d);if(1===f.filterWidth&&1===f.filterHeight&&a.util.arraysEqual(f.inShape,f.outShape))return(0,i.identity)({inputs:{x:s},backend:r});let m=new(0,o.Pool2DProgram)(f,"max",!1);return r.runWebGLProgram(m,[s],s.dtype)}let u={kernelName:a.MaxPool,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../pool_gpu":"1JUNb","../webgl_util":"kBGlX","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2yDQt":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3d",()=>l),s.export(r,"maxPool3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../pool_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:l,strides:i,pad:p,dataFormat:u,dimRoundingMode:c}=n,d=a.backend_util.computePool3DInfo(s.shape,l,i,[1,1,1],p,c,u),f=new(0,o.Pool3DProgram)(d,"max",!1);return r.runWebGLProgram(f,[s],s.dtype)}let i={kernelName:a.MaxPool3D,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../pool_gpu":"1JUNb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5foYE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:p,strides:u,pad:c,dimRoundingMode:d}=n,f=a.backend_util.computePool3DInfo(i.shape,p,u,[1,1,1],c,d),m=new(0,l.Pool3DProgram)(f,"max",!0),h=r.runWebGLProgram(m,[i],i.dtype),g=new(0,o.MaxPool3DBackpropProgram)(f),x=r.runWebGLProgram(g,[s,h],i.dtype);return r.disposeIntermediateTensorInfo(h),x}let p={kernelName:a.MaxPool3DGrad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../max_pool_backprop_gpu":"QmnTE","../pool_gpu":"1JUNb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],QmnTE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MaxPool2DBackpropProgram",()=>a),s.export(r,"MaxPool3DBackpropProgram",()=>o);class a{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,r=e.strideWidth,n=e.dilationHeight,s=e.effectiveFilterHeight,a=e.effectiveFilterWidth,o=s-1-e.padInfo.top,l=a-1-e.padInfo.left;this.userCode=` const ivec2 pads = ivec2(${o}, ${l}); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 dyRCCorner = coords.yz - pads; int dyRCorner = dyRCCorner.x; int dyCCorner = dyRCCorner.y; // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wR = 0; wR< ${s}; wR += ${n}) { float dyR = float(dyRCorner + wR) / ${t}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${a}; wC++) { float dyC = float(dyCCorner + wC) / ${r}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(b, idyR, idyC, d); int maxPosValue = ${s*a-1} - int(getMaxPos(b, idyR, idyC, d)); // Get the current value, check it against the value from the // position matrix. int curPosValue = wR * ${a} + wC; float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); dotProd += dyValue * mask; } } setOutput(dotProd); } `}}class o{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,r=e.strideHeight,n=e.strideWidth,s=e.dilationDepth,a=e.dilationHeight,o=e.dilationWidth,l=e.effectiveFilterDepth,i=e.effectiveFilterHeight,p=e.effectiveFilterWidth,u=l-1-e.padInfo.front,c=i-1-e.padInfo.top,d=p-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${u}, ${c}, ${d}); void main() { ivec5 coords = getOutputCoords(); int batch = coords.x; int ch = coords.u; ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; int dyDCorner = dyCorner.x; int dyRCorner = dyCorner.y; int dyCCorner = dyCorner.z; // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get // dx(xD, xR, xC, ch). // ? = to be determined. : = across all values in that axis. float dotProd = 0.0; for (int wD = 0; wD< ${l}; wD += ${s}) { float dyD = float(dyDCorner + wD) / ${t}.0; if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { continue; } int idyD = int(dyD); for (int wR = 0; wR< ${i}; wR += ${a}) { float dyR = float(dyRCorner + wR) / ${r}.0; if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { continue; } int idyR = int(dyR); for (int wC = 0; wC< ${p}; wC += ${o}) { float dyC = float(dyCCorner + wC) / ${n}.0; if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || fract(dyC) > 0.0) { continue; } int idyC = int(dyC); float dyValue = getDy(batch, idyD, idyR, idyC, ch); int maxPosValue = ${l*i*p-1} - int(getMaxPos(batch, idyD, idyR, idyC, ch)); // Get the current value, check it against the value from the // position matrix. int curPosValue = wD * ${i} * ${p} + wR * ${p} + wC; float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); dotProd += dyValue * mask; } } } setOutput(dotProd); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fOmt4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>p),s.export(r,"maxPoolGradConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../max_pool_backprop_gpu"),l=e("../pool_gpu"),i=e("../webgl_util");function p(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:p,output:u}=t;(0,i.assertNotComplex)([p,u],"maxPoolGrad");let{filterSize:c,strides:d,pad:f,dimRoundingMode:m}=n,h=a.backend_util.computePool2DInfo(p.shape,c,d,1,f,m),g=new(0,l.Pool2DProgram)(h,"max",!0),x=r.runWebGLProgram(g,[p],p.dtype),y=new(0,o.MaxPool2DBackpropProgram)(h),v=r.runWebGLProgram(y,[s,x],p.dtype);return r.disposeIntermediateTensorInfo(x),v}let u={kernelName:a.MaxPoolGrad,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../max_pool_backprop_gpu":"QmnTE","../pool_gpu":"1JUNb","../webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1bzUD":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./MaxPoolWithArgmax_impl");let l={kernelName:a.MaxPoolWithArgmax,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:l,pad:i,includeBatchInIndex:p}=t;a.util.assert(4===n.shape.length,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let u=[1,1];a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(l,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${l} and dilations '${u}'`);let c=a.backend_util.computePool2DInfo(n.shape,s,l,u,i),[d,f]=(0,o.maxPoolWithArgmaxImpl)(n,p,c,r);return[d,f]}}},{"@tensorflow/tfjs-core":"2Gtps","./MaxPoolWithArgmax_impl":"aMj9m","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aMj9m:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>o);var a=e("../pool_gpu");function o(e,t,r,n){let s=new(0,a.Pool2DProgram)(r,"max",!1),o=n.runWebGLProgram(s,[e],"float32");return s=new(0,a.Pool2DProgram)(r,"max",!0,!0,t),[o,n.runWebGLProgram(s,[e],"float32")]}},{"../pool_gpu":"1JUNb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"76W3Z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Mean_impl"),l=e("./Transpose_impl");let i={kernelName:a.Mean,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{keepDims:s,axis:i}=t,p=n.shape.length,u=a.util.parseAxisParam(i,n.shape),c=u,d=a.backend_util.getAxesPermutation(c,p),f=null!=d,m=r.shouldExecuteOnCPU([n]),h=[],g=n;if(f){if(m){let e=r.texData.get(g.dataId).values,t=Array(p);for(let e=0;e<t.length;e++)t[e]=n.shape[d[e]];let s=(0,l.transposeImplCPU)(e,n.shape,n.dtype,d,t);g=r.makeTensorInfo(t,n.dtype),r.texData.get(g.dataId).values=s}else g=(0,l.transposeImpl)(n,d,r);h.push(g),c=a.backend_util.getInnerMostAxes(c.length,p)}a.backend_util.assertAxesAreInnerMostDims("sum",c,p);let[x,y]=a.backend_util.computeOutAndReduceShapes(g.shape,c),v=x;s&&(v=a.backend_util.expandShapeToKeepDim(x,u));let b=(0,o.meanImpl)(g,y,v,r);for(let e of h)r.disposeIntermediateTensorInfo(e);return b}}},{"@tensorflow/tfjs-core":"2Gtps","./Mean_impl":"apcOt","./Transpose_impl":[["transposeImpl","3ouoc"],["transposeImplCPU","6ruDg"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],apcOt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"meanImpl",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernels/Reshape");function i(e,t,r,n){let s=a.util.sizeFromShape(t),i=a.util.sizeFromShape(e.shape),p=(0,l.reshape)({inputs:{x:e},attrs:{shape:[i/s,s]},backend:n}),u=(0,o.reduce)(p,"float32","mean",n),c=(0,l.reshape)({inputs:{x:u},attrs:{shape:r},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(u),c}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","../kernels/Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1XKVy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>p),s.export(r,"minConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("./Reshape"),i=e("./Transpose");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r,{axis:u,keepDims:c}=s,d=p.shape.length,f=a.util.parseAxisParam(u,p.shape),m=f,h=a.backend_util.getAxesPermutation(m,d),g=p;null!=h&&(g=(0,i.transpose)({inputs:{x:p},backend:n,attrs:{perm:h}}),m=a.backend_util.getInnerMostAxes(m.length,p.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",m,d);let[x,y]=a.backend_util.computeOutAndReduceShapes(g.shape,m),v=a.util.sizeFromShape(y),b=(0,l.reshape)({inputs:{x:g},backend:n,attrs:{shape:[-1,v]}}),k=(0,o.reduce)(b,b.dtype,"min",n);if(c){let e=a.backend_util.expandShapeToKeepDim(x,f);t=(0,l.reshape)({inputs:{x:k},backend:n,attrs:{shape:e}})}else t=(0,l.reshape)({inputs:{x:k},backend:n,attrs:{shape:x}});return n.disposeIntermediateTensorInfo(b),n.disposeIntermediateTensorInfo(k),null!=h&&n.disposeIntermediateTensorInfo(g),t}let u={kernelName:a.Min,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","./Reshape":"aOEE6","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jZlPa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"minimum",()=>d),s.export(r,"minimumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_gpu"),l=e("../binaryop_packed_gpu"),i=e("../kernel_utils/kernel_funcs_utils"),p=e("../kernel_utils/shared");let u=o.CHECK_NAN_SNIPPET+` return min(a, b); `,c=` vec4 result = vec4(min(a, b)); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+l.CHECK_NAN_SNIPPET_PACKED+` return result; `,d=(0,i.binaryKernelFunc)({opSnippet:u,packedOpSnippet:c,cpuKernelImpl:p.minimumImplCPU}),f={kernelName:a.Minimum,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_gpu":"mK7ON","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],akMJ7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPadKernelFunc",()=>i),s.export(r,"mirrorPadConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../mirror_pad_gpu"),l=e("../mirror_pad_packed_gpu");let i=({inputs:e,backend:t,attrs:r})=>{let{x:n}=e,{paddings:s,mode:i}=r,p=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.MirrorPadPackedProgram)(n.shape,s,i):new(0,o.MirrorPadProgram)(n.shape,s,i);return t.runWebGLProgram(p,[n],n.dtype)},p={kernelName:a.MirrorPad,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../mirror_pad_gpu":"aE5py","../mirror_pad_packed_gpu":"58hA8","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aE5py:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);const n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n),p=+("reflect"!==r);if(1===n){this.userCode=` int start = ${o}; int end = ${l}; void main() { int outC = getOutputCoords(); if (outC< start) { outC = start * 2 - outC - ${p}; } else if(outC >= end) { outC = (end - 1) * 2 - outC + ${p}; } setOutput(getX(outC - start)); } `;return}this.userCode=` ${s} start = ${s}(${o}); ${s} end = ${s}(${l}); void main() { ${s} outC = getOutputCoords(); for (int i = 0; i< ${n}; i++) { if (outC[i] < start[i]) { outC[i] = start[i] * 2 - outC[i] - ${p}; } else if(outC[i] >= end[i]) { outC[i] = (end[i] - 1) * 2 - outC[i] + ${p}; } } ${s} coords = outC - start; setOutput(getX(${i})); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"58hA8":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MirrorPadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);const n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),p=(0,a.getChannels)("rc",n),u=(0,a.getChannels)("source",n),c=`${p[n-1]}< ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${u.slice(-2).join()})`,f=+("reflect"!==r);let m="";if(1===n){const e=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${f}; } else if (source >= end) { source = (end - 1) * 2 - source + ${f}; } source -= start; `;m=` ${s} rc = outputLoc; ${e} result[0] = getChannel(getX(${u.join()}), ${d}); ${p[n-1]} += 1; if(${c}) { ${e} result[1] = getChannel(getX(${u.join()}), ${d}); } `}else{const e=` ${s} source = rc; ${s} lt = ${s}(lessThan(source, start)); ${s} gte = ${s}(greaterThanEqual(source, end)); ${s} orig = 1 - (lt + gte); source = orig * source + lt * (start * 2 - source - ${f}) + gte * ((end - 1) * 2 - source + ${f}); source -= start; `;m=` ${s} rc = outputLoc; ${e} result[0] = getChannel(getX(${u.join()}), ${d}); ${p[n-1]} += 1; if(${c}) { ${e} result[1] = getChannel(getX(${u.join()}), ${d}); } rc = outputLoc; ${p[n-2]} += 1; if(${p[n-2]}< ${this.outputShape[n-2]}) { ${e} result[2] = getChannel(getX(${u.join()}), ${d}); ${p[n-1]} += 1; if(${c}) { ${e} result[3] = getChannel(getX(${u.join()}), ${d}); } } `}this.userCode=` const ${s} start = ${s}(${l}); const ${s} end = ${s}(${i}); void main() { ${s} outputLoc = getOutputCoords(); vec4 result = vec4(0.); ${m} setOutput(result); } `}}},{"./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gnARU:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mod",()=>u),s.export(r,"modConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=`if (b == 0.0) return NAN; return mod(a, b);`,p=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); `+o.CHECK_NAN_SNIPPET_PACKED+` return result; `,u=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:p}),c={kernelName:a.Mod,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bTfCp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>i),s.export(r,"multinomialConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../multinomial_gpu"),l=e("./Softmax");function i(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:a,seed:i,normalized:p}=n,u=p?s:(0,l.softmax)({inputs:{logits:s},backend:r,attrs:{dim:s.shape.length-1}}),c=u.shape[0],d=u.shape[1],f=new(0,o.MultinomialProgram)(c,d,a),m=r.runWebGLProgram(f,[u],"int32",[[i]]);return p||r.disposeIntermediateTensorInfo(u),m}let p={kernelName:a.Multinomial,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../multinomial_gpu":"2HBvc","./Softmax":"gCAqF","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2HBvc":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MultinomialProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,r],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; float r = random(seed); float cdf = 0.0; for (int i = 0; i< ${t-1}; i++) { cdf += getProbs(batch, i); if (r < cdf) { setOutput(float(i)); return; } } // If no other event happened, last event happened. setOutput(float(${t-1})); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gCAqF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>d),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),p=e("./Reshape"),u=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=a.util.parseAxisParam([d],s.shape),m=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:f,keepDims:!1}}),h=a.backend_util.expandShapeToKeepDim(m.shape,f),g=(0,p.reshape)({inputs:{x:m},backend:r,attrs:{shape:h}}),x=(0,u.sub)({inputs:{a:s,b:g},backend:r}),y=(0,o.exp)({inputs:{x:x},backend:r}),v=(0,c.sum)({inputs:{x:y},backend:r,attrs:{axis:f,keepDims:!1}}),b=(0,p.reshape)({inputs:{x:v},backend:r,attrs:{shape:h}}),k=(0,i.realDiv)({inputs:{a:y,b:b},backend:r});return r.disposeIntermediateTensorInfo(m),r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(b),k}let f={kernelName:a.Softmax,backendName:"webgl",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","./Exp":"4c99Q","./Max":"afHh0","./RealDiv":"2I75W","./Reshape":"aOEE6","./Sub":"bBcnF","./Sum":"M2cwD","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2I75W":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"realDiv",()=>p),s.export(r,"realDivConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` if (a == b) { return 1.0; }; return a / b;`,i=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; if(a.x == b.x) { result.x = 1.; } if(a.y == b.y) { result.y = 1.; } if(a.z == b.z) { result.z = 1.; } if(a.w == b.w) { result.w = 1.; } return result; `,p=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:i,checkOutOfBounds:!0}),u={kernelName:a.RealDiv,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bBcnF:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sub",()=>p),s.export(r,"subConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return a - b;",p=(0,o.binaryKernelFunc)({opSnippet:i,packedOpSnippet:i,supportsComplex:!0,cpuKernelImpl:l.subImplCPU}),u={kernelName:a.Sub,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7nm6C":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"neg",()=>c),s.export(r,"negConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../unaryop_gpu"),i=e("../unaryop_packed_gpu");let p=l.CHECK_NAN_SNIPPET+` return -x; `,u=` vec4 result = -x; bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `;function c(e){let t,{inputs:r,backend:n}=e,{x:s}=r;if(n.shouldExecuteOnCPU([s])){let e=n.texData.get(s.dataId),[t,r]=(0,o.negImplCPU)(e.values,s.shape,s.dtype);return n.makeTensorInfo(r,s.dtype,t)}return t=(0,a.env)().getBool("WEBGL_PACK_UNARY_OPERATIONS")?new(0,i.UnaryOpPackedProgram)(s.shape,u):new(0,l.UnaryOpProgram)(s.shape,p),n.runWebGLProgram(t,[s],s.dtype)}let d={kernelName:a.Neg,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../unaryop_gpu":"byMKQ","../unaryop_packed_gpu":"11H6D","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4Tndn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>l),s.export(r,"nonMaxSuppressionV3Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV3Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:p,scoreThreshold:u}=n,{selectedIndices:c}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,p,u);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let i={kernelName:a.NonMaxSuppressionV3,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h8she:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>l),s.export(r,"nonMaxSuppressionV4Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV4Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:p,scoreThreshold:u,padToMaxOutputSize:c}=n,{selectedIndices:d,validOutputs:f}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,p,u,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let i={kernelName:a.NonMaxSuppressionV4,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jjRNa:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>l),s.export(r,"nonMaxSuppressionV5Config",()=>i);var a=e("@tensorflow/tfjs-core");let o=a.kernel_impls.nonMaxSuppressionV5Impl;function l(e){a.backend_util.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:l}=t,{maxOutputSize:i,iouThreshold:p,scoreThreshold:u,softNmsSigma:c}=n,{selectedIndices:d,selectedScores:f}=o(r.readSync(s.dataId),r.readSync(l.dataId),i,p,u,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([f.length],"float32",new Float32Array(f))]}let i={kernelName:a.NonMaxSuppressionV5,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3okp7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>i),s.export(r,"oneHotConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../onehot_gpu"),l=e("./Reshape");let i=e=>{let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:i,depth:p,onValue:u,offValue:c}=n,d=a.util.sizeFromShape(s.shape),f=new(0,o.OneHotProgram)(d,p,u,c),m=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:[d]}}),h=r.runWebGLProgram(f,[m],i);r.disposeIntermediateTensorInfo(m);let g=[...s.shape,p],x=(0,l.reshape)({inputs:{x:h},backend:r,attrs:{shape:g}});return r.disposeIntermediateTensorInfo(h),x},p={kernelName:a.OneHot,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../onehot_gpu":"Bhw4I","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],Bhw4I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"OneHotProgram",()=>a);class a{constructor(e,t,r,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(${r}), float(index == coords.y))); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iSWOT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),p=e("./Real"),u=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported under string dtype");if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:r});{let e=(0,p.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,u.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","./Complex":"g1bJ7","./Fill":"9ryy3","./Imag":"3QJSY","./Real":"cAQO8","./ZerosLike":"eoHmb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eoHmb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>u),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),p=e("./Real");function u(e){let{inputs:t,backend:r}=e,{x:n}=t;if("complex64"!==n.dtype)return(0,l.fill)({attrs:{shape:n.shape,dtype:n.dtype,value:"string"===n.dtype?"":0},backend:r});{let e=(0,p.real)({inputs:{input:n},backend:r}),t=u({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=u({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","./Complex":"g1bJ7","./Fill":"9ryy3","./Imag":"3QJSY","./Real":"cAQO8","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7VW16":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,p=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(p===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let u=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return u.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return u.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let p={kernelName:a.Pack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","./Concat":"4XHgE","./ExpandDims":"4fHop","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5SaGA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>p),s.export(r,"padV2Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../pad_gpu"),l=e("../pad_packed_gpu"),i=e("./Fill");let p=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:p,constantValue:u}=n;if(0===a.util.sizeFromShape(s.shape)){let e=p.map((e,t)=>e[0]+s.shape[t]+e[1]);return(0,i.fill)({backend:r,attrs:{shape:e,value:u,dtype:s.dtype}})}let c=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.PadPackedProgram)(s.shape,p,u):new(0,o.PadProgram)(s.shape,p,u),d=[[u]];return r.runWebGLProgram(c,[s],s.dtype,d)},u={kernelName:a.PadV2,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../pad_gpu":"hRZTO","../pad_packed_gpu":"aq7Wf","./Fill":"9ryy3","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hRZTO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);const n=e.length,s=(0,a.getCoordsDataType)(n),o=t.map(e=>e[0]).join(","),l=t.map((t,r)=>t[0]+e[r]).join(","),i=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(1===n){this.userCode=` int start = ${o}; int end = ${l}; void main() { int outC = getOutputCoords(); if (outC< start || outC >= end) { setOutput(value); } else { setOutput(getX(outC - start)); } } `;return}this.userCode=` ${s} start = ${s}(${o}); ${s} end = ${s}(${l}); void main() { ${s} outC = getOutputCoords(); if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { setOutput(value); } else { ${s} coords = outC - start; setOutput(getX(${i})); } } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aq7Wf:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"PadPackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t,r){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((t,r)=>t[0]+e[r]+t[1]);const n=e.length,s=(0,o.getCoordsDataType)(n),l=t.map(e=>e[0]).join(","),i=t.map((t,r)=>t[0]+e[r]).join(","),p=(0,a.getChannels)("rc",n),u=(0,a.getChannels)("source",n),c=`${p[n-1]}< ${this.outputShape[n-1]}`,d=1===n?"source":`vec2(${u.slice(-2).join()})`,f=[`${s} rc = outputLoc;`,`${p[n-1]} += 1; if(${c}) { `,1===n?"":`} rc = outputLoc; ${p[n-2]} += 1; if(${p[n-2]} < ${this.outputShape[n-2]}) {`,1===n?"":` ${p[n-1]} += 1; if(${c}) {`],m=1===n?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let h="";for(let e=0,t=1===n?2:4;e<t;e++)h+=` ${f[e]} if (${m}) { result[${e}] = float(value); } else { ${s} source = rc - start; result[${e}] = getChannel(getX(${u.join()}), ${d}); } `;h+=1===n?"} ":"}}",this.userCode=` const ${s} start = ${s}(${l}); const ${s} end = ${s}(${i}); void main() { ${s} outputLoc = getOutputCoords(); vec4 result = vec4(0.); ${h} setOutput(result); } `}}},{"./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hTipi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pow",()=>u),s.export(r,"powConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=` if(a< 0.0 && floor(b) < b){ return NAN; } if (b == 0.0) { return 1.0; } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); `,p=` // 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); vec4 result = multiplier * pow(abs(a), b); // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS bvec4 isExpZero = equal(b, vec4(0.0)); result.r = isExpZero.r ? 1.0 : result.r; result.g = isExpZero.g ? 1.0 : result.g; result.b = isExpZero.b ? 1.0 : result.b; result.a = isExpZero.a ? 1.0 : result.a; bvec4 isNaN1 = lessThan(a, vec4(0.0)); bvec4 isNaN2 = lessThan(floor(b), b); bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); `+o.CHECK_NAN_SNIPPET_PACKED+` return result; `,u=(0,l.binaryKernelFunc)({opSnippet:i,packedOpSnippet:p}),c={kernelName:a.Pow,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i8gle:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prod",()=>u),s.export(r,"prodConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/reduce"),l=e("../kernel_utils/shared"),i=e("./Reshape"),p=e("./Transpose");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{axis:c,keepDims:d}=s,f=u.shape.length,m=[],h=a.util.parseAxisParam(c,u.shape),g=h,x=a.backend_util.getAxesPermutation(g,f),y=u;if(null!=x&&(y=(0,p.transpose)({inputs:{x:u},backend:n,attrs:{perm:x}}),g=a.backend_util.getInnerMostAxes(g.length,f),m.push(y)),a.backend_util.assertAxesAreInnerMostDims("prod",g,f),n.shouldExecuteOnCPU([y])){let e=n.texData.get(y.dataId).values,{outVals:r,outShape:s,outDtype:a}=(0,l.prodImplCPU)(y.shape,y.dtype,e,g);t=n.makeTensorInfo(s,a,r)}else{let[e,r]=a.backend_util.computeOutAndReduceShapes(y.shape,g),s=a.util.sizeFromShape(r),l=(0,i.reshape)({inputs:{x:y},backend:n,attrs:{shape:[-1,s]}}),p=(0,a.sumOutType)(u.dtype),c=(0,o.reduce)(l,p,"prod",n);t=(0,i.reshape)({inputs:{x:c},backend:n,attrs:{shape:e}}),m.push(l),m.push(c)}if(d){m.push(t);let e=a.backend_util.expandShapeToKeepDim(t.shape,h);t=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:e}})}return m.forEach(e=>n.disposeIntermediateTensorInfo(e)),t}let c={kernelName:a.Prod,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/reduce":"gwlbf","../kernel_utils/shared":"6ruDg","./Reshape":"aOEE6","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9WlaC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,p=s.map(e=>r.readSync(e.dataId)),u=s.map(e=>e.shape),c=r.readSync(a.dataId),d=r.readSync(l.dataId),[f,m,h]=(0,o.raggedGatherImplCPU)(p,u,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(h,a.dtype,m);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6frqk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.readSync(n.dataId),i=r.readSync(s.dataId),p=r.readSync(a.dataId),[u,c]=(0,o.raggedRangeImplCPU)(l,n.shape,n.dtype,i,s.shape,p,a.shape);return[r.makeTensorInfo([u.length],"int32",u),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9QHo7":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:p}=n,u=r.readSync(s.dataId),c=r.readSync(a.dataId),d=r.readSync(l.dataId),f=i.map(e=>r.readSync(e.dataId)),m=i.map(e=>e.shape),[h,g]=(0,o.raggedTensorToTensorImplCPU)(u,s.shape,c,a.shape,a.dtype,d,l.shape,f,m,p);return r.makeTensorInfo(h,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h4DwD:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");let l=e=>{let{backend:t,attrs:r}=e,{start:n,stop:s,step:a,dtype:l}=r,i=(0,o.rangeImplCPU)(n,s,a,l);return t.makeTensorInfo([i.length],l,i)},i={kernelName:a.Range,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cW4of:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return 1.0 / x;"}),l={kernelName:a.Reciprocal,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fD5Nl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>p),s.export(r,"reluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` return (x< 0.0) ? 0.0 : x; `,i=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,p=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),u={kernelName:a.Relu,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fJ8FQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>p),s.export(r,"relu6Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=e("../unaryop_gpu").CHECK_NAN_SNIPPET+` return (x< 0.0) ? 0.0 : min(6.0, x); `,i=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,p=(0,o.unaryKernelFunc)({opSnippet:l,packedOpSnippet:i}),u={kernelName:a.Relu6,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"50UZz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>i),s.export(r,"resizeBilinearConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_gpu"),l=e("../resize_bilinear_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:p,size:u}=n,[c,d]=u,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeBilinearPackedProgram)(s.shape,c,d,i,p):new(0,o.ResizeBilinearProgram)(s.shape,c,d,i,p);return r.runWebGLProgram(f,[s],"float32")}let p={kernelName:a.ResizeBilinear,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../resize_bilinear_gpu":"alDcg","../resize_bilinear_packed_gpu":"f4ege","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],alDcg:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];const[a,o,l,i]=e;this.outputShape=[a,t,r,i];const p=[n&&t>1?o-1:o,n&&r>1?l-1:l],u=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${p[0]/u[0]}, ${p[1]/u[1]}); const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 yRC = coords.yz; // Fractional source index. vec2 sourceFracIndexRC = ${s?"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the four integer indices. ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0))); ivec2 sourceCeilRC = ivec2( min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); float top = topLeft + (topRight - topLeft) * fracRC.y; float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; float newValue = top + (bottom - top) * fracRC.x; setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f4ege:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[a,o,l,i]=e;this.outputShape=[a,t,r,i];const p=[n&&t>1?o-1:o,n&&r>1?l-1:l],u=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${p[0]/u[0]}, ${p[1]/u[1]}, ${p[1]/u[1]}); const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, ${l}.0); float getAValue(int b, int r, int c, int d) { return getChannel(getA(b, r, c, d), vec2(c, d)); } void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; // Calculate values for next column in yRC.z. ivec3 yRC = coords.yzz + ivec3(0, 0, 1); // Fractional source index. vec3 sourceFracIndexRC = ${s?"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the four integer indices. ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0))); ivec3 sourceCeilRC = ivec3( min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); // Should we calculate next column and row elements in 2x2 packed cell. bool hasNextCol = d< ${i-1}; bool hasNextRow = coords.z < ${r-1}; // In parallel, construct four corners for all four components in // packed 2x2 cell. vec4 topLeft = vec4( getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); vec4 bottomLeft = vec4( getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); vec4 topRight = vec4( getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); vec4 bottomRight = vec4( getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); vec4 top = mix(topLeft, topRight, fracRC.yyzz); vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); vec4 newValue = mix(top, bottom, fracRC.x); setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9CnrH":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinearGrad",()=>l),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_bilinear_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeBilinearBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeBilinearGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../resize_bilinear_backprop_gpu":"ddFJt","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ddFJt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeBilinearBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],p=l[0]/i[0],u=l[1]/i[1],c=1/p,d=1/u,f=2*Math.ceil(c)+2,m=2*Math.ceil(d)+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; int r = coords[1]; int c = coords[2]; float accumulator = 0.0; const float heightScale = float(${p}); const float widthScale = float(${u}); const float invHeightScale = float(${c}); const float invWidthScale = float(${d}); const int winHeight = int(${f}); const int winWidth = int(${m}); // Compute bounds for where in dy we will look float startRLerp = floor(float(r) * invHeightScale); int startDyR = int(startRLerp - float(winHeight / 2)); float startCLerp = floor(float(c) * invWidthScale); int startDyC = int(startCLerp - float(winWidth / 2)); // Loop over dy for (int dyROffset = 0; dyROffset< winHeight; dyROffset++) { int dyR = dyROffset + startDyR; // Guard against the window exceeding the bounds of dy if (dyR < 0 || dyR >= ${a}) { continue; } for (int dyCOffset = 0; dyCOffset< winWidth; dyCOffset++) { int dyC = dyCOffset + startDyC; // Guard against the window exceeding the bounds of dy if (dyC < 0 || dyC >= ${o}) { continue; } float dxR = float(dyR) * heightScale; int topDxRIndex = int(floor(dxR)); int bottomDxRIndex = int(min(ceil(dxR), ${n-1}.0)); float dxRLerp = dxR - float(topDxRIndex); float inverseDxRLerp = 1.0 - dxRLerp; float dxC = float(dyC) * widthScale; int leftDxCIndex = int(floor(dxC)); int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0)); float dxCLerp = dxC - float(leftDxCIndex); float inverseDxCLerp = 1.0 - dxCLerp; if (r == topDxRIndex && c == leftDxCIndex) { // topLeft accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; } if (r == topDxRIndex && c == rightDxCIndex) { // topRight accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; } if (r == bottomDxRIndex && c == leftDxCIndex) { // bottomLeft accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; } if (r == bottomDxRIndex && c == rightDxCIndex) { // bottomRight accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; } } } // End loop over dy setOutput(accumulator); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],g9ks1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>i),s.export(r,"resizeNearestNeighborConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_gpu"),l=e("../resize_nearest_neighbor_packed_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:i,halfPixelCenters:p,size:u}=n,[c,d]=u,f=(0,a.env)().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new(0,l.ResizeNearestNeighborPackedProgram)(s.shape,c,d,i,p):new(0,o.ResizeNearestNeighborProgram)(s.shape,c,d,i,p);return r.runWebGLProgram(f,[s],s.dtype)}let p={kernelName:a.ResizeNearestNeighbor,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../resize_nearest_neighbor_gpu":"iOaTB","../resize_nearest_neighbor_packed_gpu":"8Lhcl","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iOaTB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.outputShape=[];const[a,o,l,i]=e;this.outputShape=[a,t,r,i];const p=[n&&t>1?o-1:o,n&&r>1?l-1:l],u=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${p[0]/u[0]}, ${p[1]/u[1]}); const vec2 inputShapeRC = vec2(${o}.0, ${l}.0); void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; ivec2 yRC = coords.yz; // Fractional source index. vec2 sourceFracIndexRC = ${s?"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":"vec2(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the coordinators of nearest neighbor point. ivec2 sourceNearestRC = ivec2( min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8Lhcl":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeighborPackedProgram",()=>a);class a{constructor(e,t,r,n,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[a,o,l,i]=e;this.outputShape=[a,t,r,i];const p=[n&&t>1?o-1:o,n&&r>1?l-1:l],u=[n&&t>1?t-1:t,n&&r>1?r-1:r];this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${p[0]/u[0]}, ${p[1]/u[1]}, ${p[1]/u[1]}); const vec3 inputShapeRC = vec3(${o}.0, ${l}.0, ${l}.0); float getAValue(int b, int r, int c, int d) { return getChannel(getA(b, r, c, d), vec2(c, d)); } void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; // Calculate values for next column in yRC.z. ivec3 yRC = coords.yzz + ivec3(0, 0, 1); // Fractional source index. vec3 sourceFracIndexRC = ${s?"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":"vec3(yRC) * effectiveInputOverOutputRatioRC"}; // Compute the coordinators of nearest neighbor point. ivec3 sourceNearestRC = ivec3( min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${n?"0.5":"0.0"}))); // Should we calculate next column and row elements in 2x2 packed cell. bool hasNextCol = d< ${i-1}; bool hasNextRow = coords.z < ${r-1}; vec4 newValue = vec4( getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d), hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1) : 0.0, hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d) : 0.0, (hasNextRow && hasNextCol) ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0); setOutput(newValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bi2fw:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighborGrad",()=>l),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../resize_nearest_neighbor_backprop_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:a}=t,{alignCorners:l}=n,i=new(0,o.ResizeNearestNeigborBackpropProgram)(a.shape,s.shape,l);return r.runWebGLProgram(i,[a],a.dtype)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../resize_nearest_neighbor_backprop_gpu":"13qX0","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"13qX0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ResizeNearestNeigborBackpropProgram",()=>a);class a{constructor(e,t,r){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;const[,n,s]=t,[,a,o]=e,l=[r&&a>1?n-1:n,r&&o>1?s-1:s],i=[r&&a>1?a-1:a,r&&o>1?o-1:o],p=l[0]/i[0],u=l[1]/i[1],c=1/p,d=1/u,f=2*Math.ceil(c)+2,m=2*Math.ceil(d)+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; int d = coords[3]; int r = coords[1]; int c = coords[2]; float accumulator = 0.0; const float heightScale = float(${p}); const float widthScale = float(${u}); const float invHeightScale = float(${c}); const float invWidthScale = float(${d}); const int winHeight = int(${f}); const int winWidth = int(${m}); // Compute bounds for where in dy we will look float startRLerp = floor(float(r) * invHeightScale); int startDyR = int(floor(startRLerp - float(winHeight / 2))); float startCLerp = floor(float(c) * invWidthScale); int startDyC = int(floor(startCLerp - float(winWidth / 2))); // Loop over dy for (int dyROffset = 0; dyROffset< winHeight; dyROffset++) { int dyR = dyROffset + startDyR; // Guard against the window exceeding the bounds of dy if (dyR < 0 || dyR >= ${a}) { continue; } for (int dyCOffset = 0; dyCOffset< winWidth; dyCOffset++) { int dyC = dyCOffset + startDyC; // Guard against the window exceeding the bounds of dy if (dyC < 0 || dyC >= ${o}) { continue; } float sourceFracRow = float(${l[0]}) * (float(dyR) / float(${i[0]})); float sourceFracCol = float(${l[1]}) * (float(dyC) / float(${i[1]})); int sourceNearestRow = int(min( float(int(${n}) - 1), ${r} ? float(round(sourceFracRow)) : float(floor(sourceFracRow)))); int sourceNearestCol = int(min( float(int(${s}) - 1), ${r} ? float(round(sourceFracCol)) : float(floor(sourceFracCol)))); if (r == sourceNearestRow && c == sourceNearestCol) { accumulator += getDy(b, dyR, dyC, d); } } } // End loop over dy setOutput(accumulator); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ltUYd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>p),s.export(r,"reverseConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../reverse_gpu"),l=e("../reverse_packed_gpu"),i=e("./Identity");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:p}=n,u=s.shape.length,c=a.util.parseAxisParam(p,s.shape);if(0===u)return(0,i.identity)({inputs:{x:s},backend:r});let d=(0,a.env)().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new(0,l.ReversePackedProgram)(s.shape,c):new(0,o.ReverseProgram)(s.shape,c);return r.runWebGLProgram(d,[s],s.dtype)}let u={kernelName:a.Reverse,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../reverse_gpu":"43jwk","../reverse_packed_gpu":"k8Am5","./Identity":"97wVJ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"43jwk":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReverseProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["x"];const r=e.length;if(r>4)throw Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);if(this.outputShape=e,1===r){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); } `;return}const n=e.map((r,n)=>-1!==t.indexOf(n)&&1!==e[n]?`${e[n]} - coords[${n}] - 1`:`coords[${n}]`).join(","),s=(0,a.getCoordsDataType)(r);this.userCode=` void main() { ${s} coords = getOutputCoords(); setOutput(getX(${n})); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],k8Am5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ReversePackedProgram",()=>l);var a=e("./packing_util"),o=e("./shader_compiler");class l{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const r=e.length;if(r>4)throw Error(`WebGL backend: Reverse of rank-${r} tensor is not yet supported`);this.outputShape=e;const n=(0,a.getChannels)("rc",r),s=`${n[r-1]} + 1< ${this.outputShape[r-1]}`,l=`${n[r-2]} + 1 < ${this.outputShape[r-2]}`,i=(0,o.getCoordsDataType)(r);function p(r){let n=e.map((n,s)=>{var a,o;return a=s,o=r,-1!==t.indexOf(a)&&1!==e[a]?`${e[a]} - ${o[a]} - 1`:`${o[a]}`}),s=n.join(","),a=n.slice(-2).join(",");return`getChannel(getX(${s}), vec2(${a}))`}1===r?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); result.r = getChannel(getX(${e[0]} - rc - 1), ${e[0]} - rc - 1); if(${s}){ result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), ${e[0]} - (rc + 1) - 1); } setOutput(result); } `:this.userCode=` void main() { ${i} rc = getOutputCoords(); vec4 result = vec4(0.); result.r = ${function(e){return p(e)}(n.slice())}; if(${s}){ result.g = ${function(e){return e[r-1]="("+e[r-1]+" + 1)",p(e)}(n.slice())}; } if(${l}) { result.b = ${function(e){return e[r-2]="("+e[r-2]+" + 1)",p(e)}(n.slice())}; if(${s}) { result.a = ${function(e){return e[r-1]="("+e[r-1]+" + 1)",e[r-2]="("+e[r-2]+" + 1)",p(e)}(n.slice())}; } } setOutput(result); } `}}},{"./packing_util":"esmZC","./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ct6xT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../rotate_gpu");let l={kernelName:a.RotateWithOffset,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:l,center:i}=t,p=new(0,o.RotateProgram)(n.shape,l),[u,c]=a.backend_util.getImageCenter(i,n.shape[1],n.shape[2]),d=[[u,c,Math.sin(s),Math.cos(s)]];return r.runWebGLProgram(p,[n],n.dtype,d)}}},{"@tensorflow/tfjs-core":"2Gtps","../rotate_gpu":"9ECEy","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9ECEy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"RotateProgram",()=>a);class a{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];const r=e[1],n=e[2];this.outputShape=e;let s="";s="number"==typeof t?`float outputValue = ${t.toFixed(2)};`:` vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; int y = coords[1]; float coordXFloat = (float(x) - params[0]) * params[3] - (float(y) - params[1]) * params[2]; float coordYFloat = (float(x) - params[0]) * params[2] + (float(y) - params[1]) * params[3]; int coordX = int(round(coordXFloat + params[0])); int coordY = int(round(coordYFloat + params[1])); ${s} if(coordX >= 0 && coordX< ${n} && coordY >= 0 && coordY< ${r}) { outputValue = getImage(coords[0], coordY, coordX, coords[3]); } setOutput(outputValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],guuD3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>i),s.export(r,"roundConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); if ((x - base)< 0.5) { return floor(x); } else if ((x - base) >0.5) { return ceil(x); } else { if (mod(base, 2.0) == 0.0) { return base; } else { return base + 1.0; } } `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Round,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cEMqB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rsqrt",()=>i),s.export(r,"rsqrtConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=(0,o.unaryKernelFunc)({opSnippet:"return inversesqrt(x);",cpuKernelImpl:l.rsqrtImplCPU}),p={kernelName:a.Rsqrt,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"71HHv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>p),s.export(r,"scatterNdConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("../scatter_packed_gpu"),i=e("./Reshape");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{indices:p,updates:u}=r,{shape:c}=s,{sliceRank:d,numUpdates:f,sliceSize:m,strides:h,outputSize:g}=a.backend_util.calculateShapes(u,p,c),x=[g/m,m];if(0===g)return n.makeTensorInfo(c,p.dtype);let y=(0,i.reshape)({inputs:{x:p},backend:n,attrs:{shape:[f,d]}}),v=(0,i.reshape)({inputs:{x:u},backend:n,attrs:{shape:[f,m]}}),b=n.makeTensorInfo([],"float32",new Float32Array([0]));t=(0,a.env)().getBool("WEBGL_PACK")?new(0,l.ScatterPackedProgram)(f,d,y.shape.length,v.shape.length,h,x):new(0,o.ScatterProgram)(f,d,y.shape.length,v.shape.length,h,x);let k=n.runWebGLProgram(t,[v,y,b],v.dtype),_=(0,i.reshape)({inputs:{x:k},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(v),n.disposeIntermediateTensorInfo(k),n.disposeIntermediateTensorInfo(b),_}let u={kernelName:a.ScatterNd,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../scatter_gpu":"axeQc","../scatter_packed_gpu":"18Lp3","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],axeQc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.outputShape=o;const p=(0,a.getCoordsDataType)(s.length),u=(0,a.getCoordsDataType)(o.length);let c="";1===r?c="i":2===r&&(c="i, j");const d=`getIndices(${c})`;let f="";1===n?f="i":2===n&&(f="i, coords[1]");const m=`getUpdates(${f})`;let h="";i&&(h="coords[0], coords[1]");const g=`getDefaultValue(${h})`;this.userCode=` ${p} strides = ${p}(${s}); void main() { ${u} coords = getOutputCoords(); float sum = 0.0; bool found = false; for (int i = 0; i< ${e}; i++) { int flattenedIndex = 0; for (int j = 0; j < ${t}; j++) { int index = round(${d}); flattenedIndex += index * ${t>1?"strides[j]":"strides"}; } if (flattenedIndex == coords[0]) { sum += ${m}; found = true; } } setOutput(mix(${g}, sum, float(found))); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"18Lp3":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ScatterPackedProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r,n,s,o,l=!0,i=!1){this.variableNames=["updates","indices","defaultValue"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=o;const p=(0,a.getCoordsDataType)(s.length),u=(0,a.getCoordsDataType)(o.length);let c="";1===r?c="i":2===r&&(c="i, j");const d=`getIndices(${c})`;let f="";1===n?f="i":2===n&&(f="i, coords[1]");const m=`getUpdates(${f})`;let h="";i&&(h="coords[0], coords[1]");const g=`getDefaultValue(${h})`;this.userCode=` ${p} strides = ${p}(${s}); void main() { ${u} coords = getOutputCoords(); vec4 sum = vec4(0.); vec4 found = vec4(0.); for (int i = 0; i< ${e}; i+=2) { ivec2 flattenedIndex = ivec2(0); for (int j = 0; j < ${t}; j+=2) { ivec4 index = round(${d}); flattenedIndex += index.xz * ${t>1?"strides[j]":"strides"}; if (j + 1< ${t}) { flattenedIndex += index.yw * ${t>1?"strides[j + 1]":"strides"}; } } if (flattenedIndex[0] == coords[0] || flattenedIndex[1] == coords[0] || flattenedIndex[0] == coords[0] + 1 || flattenedIndex[1] == coords[0] + 1) { vec4 updVals = ${m}; if (flattenedIndex[0] == coords[0]) { sum.xy += updVals.xy; found.xy = vec2(1.); } else if (flattenedIndex[0] == coords[0] + 1) { sum.zw += updVals.xy; found.zw = vec2(1.); } if (flattenedIndex[1] == coords[0]) { sum.xy += updVals.zw; found.xy = vec2(1.); } else if (flattenedIndex[1] == coords[0] + 1) { sum.zw += updVals.zw; found.zw = vec2(1.); } } } setOutput(mix(${g}, sum, found)); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2HCMo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../search_sorted_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=new(0,o.SearchSortedProgram)(s.shape[0],s.shape[1],a.shape[1],l),p=[[s.shape[1]]];return r.runWebGLProgram(i,[s,a],"int32",p)}let i={kernelName:a.SearchSorted,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../search_sorted_gpu":"l9wIk","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l9wIk:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SearchSortedProgram",()=>o);var a=e("@tensorflow/tfjs-core");class o{constructor(e,t,r,n){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,r];const s=`for (int i = 0; i< ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,o=2===(0,a.env)().getNumber("WEBGL_VERSION")?"while (left< right) {":s;this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; int mid; ${o} mid = (left + right) / 2; if (getSortedSequence(batch, mid) ${"left"===n?"<":"<="} value) { left = mid + 1; } else { right = mid; } } return right; } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int valueIndex = coords[1]; float value = getValues(batch, valueIndex); setOutput(float(findBound(batch, value))); } `}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bAD9b:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"select",()=>l),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../select_gpu");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t,i=new(0,o.SelectProgram)(n.shape.length,s.shape,s.shape.length);return r.runWebGLProgram(i,[n,s,l],(0,a.upcastType)(s.dtype,l.dtype))}let i={kernelName:a.Select,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../select_gpu":"4AXG0","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4AXG0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SelectProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){let n,s;if(this.variableNames=["c","a","b"],this.outputShape=t,r>4)throw Error(`Where for rank ${r} is not yet supported`);if(1===r)s="resRC",n="resRC";else{const r=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],o=[];for(let n=0;n<t.length;n++)o.push(`${r[n]}`),n<e&&a.push(`${r[n]}`);n=a.join(),s=o.join()}const o=(0,a.getCoordsDataType)(r);this.userCode=` void main() { ${o} resRC = getOutputCoords(); float cVal = getC(${n}); if (cVal >= 1.0) { setOutput(getA(${s})); } else { setOutput(getB(${s})); } } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lQKcR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>i),s.export(r,"seluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` // Stable and Attracting Fixed Point (0, 1) for Normalized Weights. // see: https://arxiv.org/abs/1706.02515 float scaleAlpha = ${a.backend_util.SELU_SCALEALPHA}; float scale = ${a.backend_util.SELU_SCALE}; return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Selu,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j9jdu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sigmoid",()=>u),s.export(r,"sigmoidConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i=o.CHECK_NAN_SNIPPET_UNARY+` return 1.0 / (1.0 + exp(-1.0 * x)); `,p=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; result.g = isNaN.g ? x.g : result.g; result.b = isNaN.b ? x.b : result.b; result.a = isNaN.a ? x.a : result.a; return result; `,u=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:p,cpuKernelImpl:l.sigmoidImplCPU}),c={kernelName:a.Sigmoid,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hXrTd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>i),s.export(r,"signConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` if (isnan(x)) { return 0.0; } return sign(x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Sign,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ik6fv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>u),s.export(r,"sinConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../binaryop_packed_gpu"),l=e("../kernel_utils/kernel_funcs_utils");let i=l.CHECK_NAN_SNIPPET_UNARY+` return sin(x); `,p=` vec4 result = sin(x); bvec4 isNaN = isnan(x); ${o.CHECK_NAN_SNIPPET_PACKED} return result; `,u=(0,l.unaryKernelFunc)({opSnippet:i,packedOpSnippet:p}),c={kernelName:a.Sin,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../binaryop_packed_gpu":"hyPKl","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],icMAI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>i),s.export(r,"sinhConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Sinh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3vYWS":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; bool too_large = x > -threshold; bool too_small = x< threshold; float result; float exp_x = exp(x); if (too_large){ result = x; } else if (too_small){ result = exp_x; } else{ result = log(exp_x + 1.0); } return result; `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Softplus,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hahtJ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>p),s.export(r,"spaceToBatchNDConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./PadV2"),l=e("./Reshape"),i=e("./Transpose");let p=e=>{let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:p,paddings:u}=n;a.util.assert(s.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let c=p.reduce((e,t)=>e*t),d=[[0,0]];d.push(...u);for(let e=1+p.length;e<s.shape.length;++e)d.push([0,0]);let f=[],m=(0,o.padV2)({inputs:{x:s},backend:r,attrs:{paddings:d,constantValue:0}}),h=a.backend_util.getReshaped(m.shape,p,c,!1),g=a.backend_util.getPermuted(h.length,p.length,!1),x=a.backend_util.getReshapedPermuted(m.shape,p,c,!1),y=(0,l.reshape)({inputs:{x:m},backend:r,attrs:{shape:h}}),v=(0,i.transpose)({inputs:{x:y},backend:r,attrs:{perm:g}}),b=(0,l.reshape)({inputs:{x:v},backend:r,attrs:{shape:x}});return f.push(m),f.push(y),f.push(v),f.forEach(e=>r.disposeIntermediateTensorInfo(e)),b},u={kernelName:a.SpaceToBatchND,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","./PadV2":"5SaGA","./Reshape":"aOEE6","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lzibC:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>l),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: ${l.shape}`);let i=r.readSync(n.dataId),p=r.readSync(s.dataId),u=r.readSync(a.dataId),c=r.readSync(l.dataId)[0],[d,f,m,h,g]=(0,o.sparseFillEmptyRowsImplCPU)(i,n.shape,n.dtype,p,s.dtype,u,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,m),r.makeTensorInfo([h.length],"bool",new Uint8Array(h.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"20NEG":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.readSync(s.dataId)),i=r.readSync(n.dataId),p=Array.from(r.readSync(a.dataId)),[u,c,d]=(0,o.sparseReshapeImplCPU)(i,n.shape,n.dtype,l,p);return[r.makeTensorInfo(c,n.dtype,u),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hvZiZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),p=r.readSync(a.dataId),[u,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,p,!0);return r.makeTensorInfo(c,n.dtype,u)}let i={kernelName:a.SparseSegmentMean,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kvTUn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);let l=r.readSync(n.dataId),i=r.readSync(s.dataId),p=r.readSync(a.dataId),[u,c]=(0,o.sparseSegmentReductionImplCPU)(l,n.shape,n.dtype,i,p);return r.makeTensorInfo(c,n.dtype,u)}let i={kernelName:a.SparseSegmentSum,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8zzlj":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>p),s.export(r,"sparseToDenseConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../scatter_gpu"),i=e("./Reshape");function p(e){let{inputs:t,backend:r,attrs:n}=e,{sparseIndices:s,sparseValues:p,defaultValue:u}=t,{outputShape:c}=n,{sliceRank:d,numUpdates:f,sliceSize:m,strides:h,outputSize:g}=a.backend_util.calculateShapes(p,s,c);if("string"===p.dtype){let e=r.bufferSync(s),t=r.bufferSync(p),n=a.util.decodeString(r.readSync(u.dataId)[0]),l=(0,o.scatterImplCPU)(e,t,c,g,m,f,d,h,n,!1);return r.makeTensorInfo(c,l.dtype,l.values)}let x=new(0,l.ScatterProgram)(f,d,s.shape.length,p.shape.length,h,[g,1],!1),y=r.runWebGLProgram(x,[p,s,u],p.dtype),v=(0,i.reshape)({inputs:{x:y},backend:r,attrs:{shape:c}});return r.disposeIntermediateTensorInfo(y),v}let u={kernelName:a.SparseToDense,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../scatter_gpu":"axeQc","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bpzye:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,p=a.util.parseAxisParam(i,s.shape)[0],u=a.backend_util.prepareSplitSize(s,l,p),c=Array(s.shape.length).fill(0),d=s.shape.slice();return u.map(e=>{let t=[...d];t[p]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[p]+=e,n})}let i={kernelName:a.SplitV,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Slice":"io5JZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8daDR":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sqrt",()=>p),s.export(r,"sqrtConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils"),l=e("../kernel_utils/shared");let i="return sqrt(x);",p=(0,o.unaryKernelFunc)({opSnippet:i,packedOpSnippet:i,cpuKernelImpl:l.sqrtImplCPU}),u={kernelName:a.Sqrt,backendName:"webgl",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2Dt4D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"square",()=>o),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return x * x;"}),l={kernelName:a.Square,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2n3Wa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squaredDifference",()=>i),s.export(r,"squaredDifferenceConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l="return (a - b) * (a - b);",i=(0,o.binaryKernelFunc)({opSnippet:l,packedOpSnippet:l}),p={kernelName:a.SquaredDifference,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dPF4m:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"staticRegexReplace",()=>l),s.export(r,"staticRegexReplaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t;if("string"!==s.dtype)throw Error("Input must be of datatype string");let l=r.readSync(s.dataId),i=a.backend_util.fromUint8ToStringArray(l),p=(0,o.staticRegexReplaceImplCPU)(i,"string",n);return r.makeTensorInfo(s.shape,"string",p)}let i={kernelName:a.StaticRegexReplace,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jXf2G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>l),s.export(r,"stepConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../unaryop_gpu");function l({inputs:e,attrs:t,backend:r}){let{x:n}=e,s=o.CHECK_NAN_SNIPPET+` return x > 0.0 ? 1.0 : float(${t.alpha}); `,a=new(0,o.UnaryOpProgram)(n.shape,s);return r.runWebGLProgram(a,[n],n.dtype)}let i={kernelName:a.Step,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../unaryop_gpu":"byMKQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8zt5O":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>u),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../strided_slice_gpu"),i=e("./Reshape"),p=e("./Slice");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{begin:c,end:d,strides:f,beginMask:m,endMask:h,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:y}=s,{finalShapeSparse:v,finalShape:b,isIdentity:k,sliceDim0:_,isSimpleSlice:I,begin:j,end:w,strides:T}=a.slice_util.sliceInfo(u.shape,c,d,f,m,h,g,x,y);if(k)t=(0,i.reshape)({inputs:{x:u},backend:n,attrs:{shape:b}});else if(_||I){a.util.assert(u.shape.length>=1,()=>`Input must have rank at least 1, got: ${u.shape.length}`);let e=a.slice_util.computeOutShape(j,w,T),r=(0,p.slice)({inputs:{x:u},backend:n,attrs:{begin:j,size:e}});t=(0,i.reshape)({inputs:{x:r},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(r)}else if(n.shouldExecuteOnCPU([u])){let e=n.readSync(u.dataId),r=(0,a.buffer)(u.shape,u.dtype,e),s=(0,o.stridedSliceImplCPU)(v,r,T,j);t=n.makeTensorInfo(b,u.dtype,s.values)}else{let e=new(0,l.StridedSliceProgram)(j,T,v);t=n.runWebGLProgram(e,[u],u.dtype)}let S=(0,i.reshape)({inputs:{x:t},backend:n,attrs:{shape:b}});return n.disposeIntermediateTensorInfo(t),S}let c={kernelName:a.StridedSlice,backendName:"webgl",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../strided_slice_gpu":"auTxH","./Reshape":"aOEE6","./Slice":"io5JZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],auTxH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"StridedSliceProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t,r){this.variableNames=["x"],this.outputShape=r;const n=r.length,s=(0,a.getCoordsDataType)(r.length),o=(0,a.getCoordsDataType)(r.length);let l="";if(1===n)l="coords * strides + begin";else{let e=0;l=r.map((t,n)=>(e++,1===r.length?`coords * strides[${n}] + begin[${n}]`:`coords[${e-1}] * strides[${n}] + begin[${n}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${e}); ${s} strides = ${s}(${t}); void main() { ${o} coords = getOutputCoords(); setOutput(getX(${l})); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7gc6P":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:p,preserveShortSequences:u}=n,{data:c,dataSplits:d}=t,f=r.readSync(c.dataId),m=r.readSync(d.dataId),[h,g]=(0,o.stringNGramsImplCPU)(f,m,s,a,l,i,p,u);return[r.makeTensorInfo([h.length],"string",h),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cqC5i:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.readSync(a.dataId),p=r.readSync(l.dataId)[0],[u,c,d]=(0,o.stringSplitImplCPU)(i,p,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",u),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dp2Po:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.readSync(a.dataId),i=(0,o.stringToHashBucketFastImplCPU)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jW0aV:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../kernel_utils/kernel_funcs_utils").unaryKernelFunc)({opSnippet:"return tan(x);"}),l={kernelName:a.Tan,backendName:"webgl",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j5B1H:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>i),s.export(r,"tanhConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/kernel_funcs_utils");let l=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); `,i=(0,o.unaryKernelFunc)({opSnippet:l}),p={kernelName:a.Tanh,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/kernel_funcs_utils":"5oexO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lpK3g:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>i),s.export(r,"tensorScatterUpdateConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../scatter_gpu"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{tensor:s,indices:i,updates:p}=t,{}=n,{sliceRank:u,numUpdates:c,sliceSize:d,strides:f,outputSize:m}=a.backend_util.calculateShapes(p,i,s.shape),h=[m/d,d];if(0===m)return r.makeTensorInfo(s.shape,i.dtype);let g=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:[c,u]}}),x=(0,l.reshape)({inputs:{x:p},backend:r,attrs:{shape:[c,d]}}),y=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:h}}),v=new(0,o.ScatterProgram)(c,u,g.shape.length,x.shape.length,f,h,!1,!0),b=r.runWebGLProgram(v,[x,g,y],y.dtype),k=(0,l.reshape)({inputs:{x:b},backend:r,attrs:{shape:s.shape}});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(x),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(b),k}let p={kernelName:a.TensorScatterUpdate,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../scatter_gpu":"axeQc","./Reshape":"aOEE6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2BktY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../tile_gpu");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:i}=n;if("string"===s.dtype||s.shape.length>5){let e=r.readSync(s.dataId),t="string"===s.dtype?e.map(e=>a.util.decodeString(e)):e,n=(0,a.buffer)(s.shape,s.dtype,t),l=(0,o.tileImplCPU)(n,i);return r.makeTensorInfo(l.shape,l.dtype,l.values)}let p=new(0,l.TileProgram)(s.shape,i);return r.runWebGLProgram(p,[s],s.dtype)}let p={kernelName:a.Tile,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../tile_gpu":"hjZSH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hjZSH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TileProgram",()=>o);var a=e("./shader_compiler");class o{constructor(e,t){this.variableNames=["A"];const r=Array(e.length);for(let n=0;n<r.length;n++)r[n]=e[n]*t[n];this.outputShape=r,this.rank=r.length;const n=(0,a.getCoordsDataType)(this.rank),s=function(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(1===t)return`imod(resRC, ${e[0]})`;let r=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let t=0;t<e.length;t++)n.push(`imod(${r[t]}, ${e[t]})`);return n.join()}(e);this.userCode=` void main() { ${n} resRC = getOutputCoords(); setOutput(getA(${s})); } `}}},{"./shader_compiler":"gZjZZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ctM3S:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topK",()=>m),s.export(r,"topKConfig",()=>h);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../top_k_gpu"),i=e("./Fill"),p=e("./GatherV2"),u=e("./Reshape"),c=e("./Slice");function d(e,t){null!==t&&e.disposeIntermediateTensorInfo(t)}function f(e){let t=1;for(;t<e;)t*=2;return t}function m(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{k:m,sorted:h}=n,g=(0,a.env)().getNumber("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD"),x=(0,a.env)().getNumber("TOPK_K_CPU_HANDOFF_THRESHOLD"),y=s.shape,v=y[y.length-1];if(r.shouldExecuteOnCPU([s])||v<g||m>x){let e=r.readSync(s.dataId),[t,n]=(0,o.topKImplCPU)(e,y,s.dtype,m,h);return[r.makeTensorInfo(t.shape,t.dtype,t.values),r.makeTensorInfo(n.shape,n.dtype,n.values)]}if(0===m)return y[y.length-1]=0,[r.makeTensorInfo(y,s.dtype,[]),r.makeTensorInfo(y,"int32",[])];if(1===v)return[s,(0,i.fill)({attrs:{shape:y,dtype:"int32",value:0},backend:r})];let b=r.texData.get(s.dataId),k=null!==b&&b.isPacked,_=k?r.unpackTensor(s):s,I=a.util.sizeFromShape(y)/v,j=(0,u.reshape)({inputs:{x:_},attrs:{shape:[I,v]},backend:r});k&&d(r,_);let w=f(m),T=f(v),S=null,C=()=>null===S?[j,j]:[j,S],N=(e,t,n)=>{let s=C(),a=new(0,l.SwapProgram)(n),o=[[v],[+(null===S)],[-1/0],[e],[t]],i=S;S=r.runWebGLProgram(a,s,"int32",o),d(r,i)};for(let e=1;e<w;e*=2){let t=2*e;for(let r=e;r>=1;r/=2)N(t,r,[I,T])}for(let e=T;e>w;e/=2){let t=C(),n=new(0,l.MergeProgram)([I,e/2]),s=[[v],[+(null===S)],[w]],a=S;S=r.runWebGLProgram(n,t,"int32",s),d(r,a);let o=w/2,i=2*o;for(let e=o;e>=1;e/=2)N(i,e,S.shape)}let E=S;S=(0,c.slice)({inputs:{x:S},backend:r,attrs:{begin:0,size:[I,m]}}),d(r,E);let F=(0,p.gatherV2)({inputs:{x:j,indices:S},backend:r,attrs:{axis:1,batchDims:1}});d(r,j);let A=y.slice(0,-1);A.push(m),E=S,S=(0,u.reshape)({inputs:{x:S},attrs:{shape:A},backend:r}),d(r,E);let R=F;return F=(0,u.reshape)({inputs:{x:F},attrs:{shape:A},backend:r}),d(r,R),[F,S]}let h={kernelName:a.TopK,backendName:"webgl",kernelFunc:m}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../top_k_gpu":"heX7a","./Fill":"9ryy3","./GatherV2":"l9Cv5","./Reshape":"aOEE6","./Slice":"io5JZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],heX7a:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SwapProgram",()=>a),s.export(r,"MergeProgram",()=>o);class a{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int elemIdx = coords[1]; // We compare elements pair-wise within a group of size 2 * inc. // The comparing rule for each group alternates between ascending // and descending. Within each group, we compare each pair at // positions i and i+inc. To decide whether an element at position i // is x0 or x1, we mod it by 2 * inc, if the result is smaller than // inc, it is in the first half of the group, we denote it as x0, // otherwise we denote it as x1. // For example, as shown in the Bitonic top K paper referenced above, // Figure5(a) shows that element[1] is in the // second half of the group when group size is 2, but it is in the // first half of the group when group size is 4. bool isFirstInPair = imod(elemIdx, 2 * inc)< inc; int i = isFirstInPair ? elemIdx : elemIdx - inc; int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc)); float x0 = i0 < n ? getX(batch, i0) : negativeInf; float x1 = i1 < n ? getX(batch, i1) : negativeInf; // Denotes which direction indices are in (ascending or descending). bool reverse = imod(elemIdx, 2 * dir) >= dir; bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0); if (reverse == isGreater) { // Elements in opposite order of direction int iTemp = i0; i0 = i1; i1 = iTemp; } if (isFirstInPair) { setOutput(float(i0)); } else { setOutput(float(i1)); } } `}}class o{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); int batch = coords[0]; int elemIdx = coords[1]; // The output size is half of the previous size. // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4), // we only need to output the indices at positions |, the indices at // positions _ can be thrown away, see Figure5(b) After Phase 2 // (Merge phase) in the Bitonic Top K paper referenced above. // For example, the paper shows we only need to output the orange bars. // The output sequence should look like this | | | | | | | |. // Because the sequence is halved, to map the output index back // to the previous sequence to find the corresponding value, // we need to double the index. When we double the index, // we basically interpolate a position, so 2i looks like // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position // of each 2k positions by - elemIdx % k. E.g. for output at // index 4,5,6,7, we want to get the corresponding element at // original index 8,9,10,11, for output at index 8,9,10,11, // we want to get the corresponding element at original index // 16,17,18,19, so on and so forth. int i = elemIdx< k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k)); int i0 = firstPass == 1 ? i : int(getIndices(batch, i)); int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k)); float x0 = getX(batch, i0); float x1 = i1 < n ? getX(batch, i1) : x0; setOutput(x0 >= x1 ? float(i0) : float(i1)); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2YDLy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>l),s.export(r,"transformConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../transform_gpu");function l(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,transforms:a}=t,{interpolation:l,fillMode:i,fillValue:p,outputShape:u}=n,[c,d,f,m]=s.shape,[h,g]=null!=u?u:[d,f],x=new(0,o.TransformProgram)(d,f,l,i,p,[c,h,g,m]);return r.runWebGLProgram(x,[s,a],"float32")}let i={kernelName:a.Transform,backendName:"webgl",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../transform_gpu":"4yTiU","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4yTiU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"TransformProgram",()=>a);class a{constructor(e,t,r,n,s,a){let o;switch(this.variableNames=["Image","Transforms"],this.outputShape=a,n){case"constant":default:o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${o} == 2) { if (inCoord< 0.0) { if (len <= 1.0) { inCoord = 0.0; } else { float sz2 = 2.0 * len; if (inCoord < sz2) { inCoord = sz2 * float(int(float(-inCoord / sz2))) + inCoord; } inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0; } } else if (inCoord >len - 1.0) { if (len<= 1.0) { inCoord = 0.0; } else { float sz2 = 2.0 * len; inCoord -= sz2 * float(int(float(inCoord / sz2))); if (inCoord >= len) { inCoord = sz2 - inCoord - 1.0; } } } return clamp(inCoord, 0.0, len - 1.0); } else if (${o} == 3) { if (inCoord< 0.0) { if (len <= 1.0) { inCoord = 0.0; } else { float sz = len - 1.0; inCoord += len * (float(int(float(-inCoord / sz))) + 1.0); } } else if (inCoord >len - 1.0) { if (len<= 1.0) { inCoord = 0.0; } else { float sz = len - 1.0; inCoord -= len * float(int(float(inCoord / sz))); } } return clamp(inCoord, 0.0, len - 1.0); } else if (${o} == 4) { return clamp(outCoord, 0.0, len - 1.0); } else { return outCoord; } } float readWithFillValue(int batch, int coordY, int coordX, int channel) { float outputValue; if (0 <= coordY && coordY < ${e} && 0 <= coordX && coordX < ${t}) { outputValue = getImage(batch, coordY, coordX, channel); } else { outputValue = float(${s}); } return outputValue; } void main() { ivec4 coords = getOutputCoords(); float outputValue; int batch = coords[0]; int x = coords[2]; int y = coords[1]; int channel = coords[3]; float xf = float(x); float yf = float(y); float a1 = getTransforms(batch, 0); float a2 = getTransforms(batch, 1); float a3 = getTransforms(batch, 2); float b1 = getTransforms(batch, 3); float b2 = getTransforms(batch, 4); float b3 = getTransforms(batch, 5); float c1 = getTransforms(batch, 6); float c2 = getTransforms(batch, 7); float projection = c1 * xf + c2 * yf + 1.0; if (projection == 0.0) { outputValue = float(${s}); } else { float inX = (a1 * xf + a2 * yf + a3) / projection; float inY = (b1 * xf + b2 * yf + b3) / projection; float mapX = mapCoord(inX, float(${t})); float mapY = mapCoord(inY, float(${e})); if (${"nearest"===r?1:2} == 1) { int coordY = int(round(mapY)); int coordX = int(round(mapX)); outputValue = readWithFillValue(batch, coordY, coordX, channel); } else { float yFloor = floor(mapY); float xFloor = floor(mapX); float yCeil = yFloor + 1.0; float xCeil = xFloor + 1.0; float valueYFloor = (xCeil - mapX) * readWithFillValue(batch, int(yFloor), int(xFloor), channel) + (mapX - xFloor) * readWithFillValue(batch, int(yFloor), int(xCeil), channel); float valueYCeil = (xCeil - mapX) * readWithFillValue(batch, int(yCeil), int(xFloor), channel) + (mapX - xFloor) * readWithFillValue(batch, int(yCeil), int(xCeil), channel); outputValue = (yCeil - mapY) * valueYFloor + (mapY - yFloor) * valueYCeil; } } setOutput(outputValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hBsG3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>i),s.export(r,"uniqueConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../kernel_utils/shared"),l=e("../webgl_util");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,l.assertNotComplex)(a,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(a.dataId),{outputValues:p,outputShape:u,indices:c}=(0,o.uniqueImplCPU)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(u,a.dtype,p),n.makeTensorInfo([c.length],"int32",c)]}let p={kernelName:a.Unique,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../kernel_utils/shared":"6ruDg","../webgl_util":"kBGlX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eP6TK:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,p=s.shape[a],u=Array(i-1),c=0;for(let e=0;e<i;e++)e!==a&&(u[c++]=s.shape[e]);let d=[],f=Array(i).fill(0),m=s.shape.slice();m[a]=1;let h=Array(p);for(let e=0;e<h.length;e++){f[a]=e;let t=(0,l.slice)({inputs:{x:s},backend:r,attrs:{begin:f,size:m}}),n=(0,o.reshape)({inputs:{x:t},backend:r,attrs:{shape:u}});h[e]=n,d.push(t)}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),h}let p={kernelName:a.Unpack,backendName:"webgl",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","./Reshape":"aOEE6","./Slice":"io5JZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1Qhxo":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>c),s.export(r,"unsortedSegmentSumConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("../segment_gpu"),l=e("./Range"),i=e("./Reshape"),p=e("./Tile"),u=e("./Transpose");function c(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:c}=t,{numSegments:d}=n,f=s.shape.length,m=[],h=0,g=a.backend_util.getAxesPermutation([h],f),x=s;null!=g&&(x=(0,u.transpose)({inputs:{x:s},backend:r,attrs:{perm:g}}),m.push(x),h=a.backend_util.getInnerMostAxes(1,f)[0]);let y=a.backend_util.segment_util.computeOutShape(x.shape,h,d),v=a.util.sizeFromShape([x.shape[h]]),b=(0,i.reshape)({inputs:{x:x},backend:r,attrs:{shape:[-1,v]}});m.push(b);let k=(0,a.sumOutType)(s.dtype),_=(e,t,n,s,i)=>{let u=e.shape[0],c=e.shape[1],d=a.backend_util.segment_util.segOpComputeOptimalWindowSize(c,i),f=new(0,o.SegmentOpProgram)({windowSize:d,inSize:c,batchSize:u,numSegments:i},t),h=r.compileAndRun(f,[e,n],s);if(m.push(h),h.shape[1]===i)return h;let g=(0,l.range)({backend:r,attrs:{start:0,stop:i,step:1,dtype:"float32"}}),x=(0,p.tile)({inputs:{x:g},backend:r,attrs:{reps:[c/d]}});return m.push(g),m.push(x),_(h,t,x,s,i)},I=_(b,"unsortedSegmentSum",c,k,d),j=(0,i.reshape)({inputs:{x:I},backend:r,attrs:{shape:y}}),w=j;if(null!=g){m.push(j);let e=a.backend_util.getUndoAxesPermutation(g);w=(0,u.transpose)({inputs:{x:w},backend:r,attrs:{perm:e}})}return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),w}let d={kernelName:a.UnsortedSegmentSum,backendName:"webgl",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","../segment_gpu":"fEqD0","./Range":"h4DwD","./Reshape":"aOEE6","./Tile":"2BktY","./Transpose":"lqCy7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fEqD0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"SegmentOpProgram",()=>a);class a{constructor(e,t){this.variableNames=["x","segmentIds"];const r=e.windowSize,n=e.batchSize,s=e.inSize,a=e.numSegments,o=a*Math.ceil(s/r);this.outputShape=[n,o];const l=4*Math.floor(r/4),i=r%4,p=` sumValue += dot(values, segFilter); `;let u="";s%r>0&&(u=` if (inIdx< 0 || inIdx >= ${s}) { return initializationValue; } `);let c="";s%r>0&&(c=` if (inIdx< 0 || inIdx >= ${s}) { return -1.0; } `),this.userCode=` const float initializationValue = 0.0; float getValue(int batch, int inIdx) { ${u} return getX(batch, inIdx); } float getSegmentIdAtIndex(int inIdx) { ${c} return getSegmentIds(inIdx); } void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; int outIdx = coords[1]; int inOffset = int(floor(float(outIdx) / float( ${a})) * float(${r})); int currentSeg = int(mod(float(outIdx), float(${a}))); float sumValue = 0.0; for (int i = 0; i< ${l}; i += 4) { int inIdx = inOffset + i; vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), getValue(batch, inIdx + 3) ); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 ); ${p} } int inIdx = inOffset + ${l}; if (${1===i}) { vec4 values = vec4( getValue(batch, inIdx), initializationValue, initializationValue, initializationValue ); int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, 0, 0, 0 ); ${p} } else if (${2===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), initializationValue, initializationValue ); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, 0, 0 ); ${p} } else if (${3===i}) { vec4 values = vec4( getValue(batch, inIdx), getValue(batch, inIdx + 1), getValue(batch, inIdx + 2), initializationValue ); vec4 segFilter = vec4( int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, 0 ); ${p} } setOutput(sumValue); } `}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],b4yJT:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r);var a=e("./base");s.exportAll(a,r),e("./register_all_kernels")},{"./base":"bmQG8","./register_all_kernels":"62E5G","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bmQG8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>o.MathBackendCPU),s.export(r,"version_cpu",()=>i.version),s.export(r,"shared",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("./backend_cpu"),l=e("./shared"),i=e("./version");(0,a.registerBackend)("cpu",()=>new(0,o.MathBackendCPU),1)},{"@tensorflow/tfjs-core":"2Gtps","./backend_cpu":"b4BSc","./shared":"jEP2j","./version":"dKDSI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],b4BSc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"MathBackendCPU",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./cpu_util");let l=a.kernel_impls.whereImpl;class i extends a.KernelBackend{nextDataId(){return i.nextDataId++}constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new(0,a.DataStorage)(this,(0,a.engine)())}write(e,t,r){this.firstUse&&(this.firstUse=!1,(0,a.env)().get("IS_NODE")&&a.backend_util.warn("\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================"));let n={id:this.nextDataId()};return this.data.set(n,{values:e,dtype:r,refCount:1}),n}makeTensorInfo(e,t,r){let n;if("string"===t&&null!=r&&r.length>0&&a.util.isString(r[0])){let s=r.map(e=>a.util.encodeString(e));n=this.write(s,e,t)}else n=this.write(r,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,r,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:r}=this.data.get(e);if("complex64"===t){let e=this.readSync(r.real.dataId),t=this.readSync(r.imag.dataId);return a.backend_util.mergeRealAndImagArrays(e,t)}return a.util.convertBackendValuesAndArrayBuffer(this.data.get(e).values,t)}bufferSync(e){let t=this.readSync(e.dataId);if("string"===e.dtype)try{let r=t.map(e=>a.util.decodeString(e));return(0,a.buffer)(e.shape,e.dtype,r)}catch(e){throw Error("Failed to decode encoded string bytes into utf-8")}return(0,a.buffer)(e.shape,e.dtype,t)}makeOutput(e,t,r){return(0,a.engine)().makeTensorFromTensorInfo(this.makeTensorInfo(t,r,e),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:r}=this.data.get(e);null!=r&&(this.disposeData(r.real.dataId,!0),this.disposeData(r.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=a.util.now();return e(),{kernelMs:a.util.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){(0,o.assertNotComplex)([e],"where");let t=this.readSync(e.dataId);return l(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}}i.nextDataId=0},{"@tensorflow/tfjs-core":"2Gtps","./cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dKDSI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"version",()=>a);let a="4.22.0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"62E5G":[function(e,t,r,n){var s=e("@tensorflow/tfjs-core"),a=e("./kernels/_FusedMatMul"),o=e("./kernels/Abs"),l=e("./kernels/Acos"),i=e("./kernels/Acosh"),p=e("./kernels/Add"),u=e("./kernels/AddN"),c=e("./kernels/All"),d=e("./kernels/Any"),f=e("./kernels/ArgMax"),m=e("./kernels/ArgMin"),h=e("./kernels/Asin"),g=e("./kernels/Asinh"),x=e("./kernels/Atan"),y=e("./kernels/Atan2"),v=e("./kernels/Atanh"),b=e("./kernels/AvgPool"),k=e("./kernels/AvgPool3D"),_=e("./kernels/AvgPool3DGrad"),I=e("./kernels/AvgPoolGrad"),j=e("./kernels/BatchMatMul"),w=e("./kernels/BatchNorm"),T=e("./kernels/BatchToSpaceND"),S=e("./kernels/Bincount"),C=e("./kernels/BitwiseAnd"),N=e("./kernels/BroadcastArgs"),E=e("./kernels/Cast"),F=e("./kernels/Ceil"),A=e("./kernels/ClipByValue"),R=e("./kernels/Complex"),P=e("./kernels/ComplexAbs"),$=e("./kernels/Concat"),O=e("./kernels/Conv2D"),D=e("./kernels/Conv2DBackpropFilter"),M=e("./kernels/Conv2DBackpropInput"),B=e("./kernels/Conv3D"),G=e("./kernels/Conv3DBackpropFilterV2"),V=e("./kernels/Conv3DBackpropInputV2"),L=e("./kernels/Cos"),z=e("./kernels/Cosh"),U=e("./kernels/CropAndResize"),W=e("./kernels/Cumprod"),q=e("./kernels/Cumsum"),H=e("./kernels/DenseBincount"),K=e("./kernels/DepthToSpace"),X=e("./kernels/DepthwiseConv2dNative"),Z=e("./kernels/DepthwiseConv2dNativeBackpropFilter"),Y=e("./kernels/DepthwiseConv2dNativeBackpropInput"),Q=e("./kernels/Diag"),J=e("./kernels/Dilation2D"),ee=e("./kernels/Dilation2DBackpropFilter"),et=e("./kernels/Dilation2DBackpropInput"),er=e("./kernels/Draw"),en=e("./kernels/Einsum"),es=e("./kernels/Elu"),ea=e("./kernels/EluGrad"),eo=e("./kernels/Equal"),el=e("./kernels/Erf"),ei=e("./kernels/Exp"),ep=e("./kernels/ExpandDims"),eu=e("./kernels/Expm1"),ec=e("./kernels/FFT"),ed=e("./kernels/Fill"),ef=e("./kernels/FlipLeftRight"),em=e("./kernels/Floor"),eh=e("./kernels/FloorDiv"),eg=e("./kernels/FusedConv2D"),ex=e("./kernels/FusedDepthwiseConv2D"),ey=e("./kernels/GatherNd"),ev=e("./kernels/GatherV2"),eb=e("./kernels/Greater"),ek=e("./kernels/GreaterEqual"),e_=e("./kernels/Identity"),eI=e("./kernels/IFFT"),ej=e("./kernels/Imag"),ew=e("./kernels/IsFinite"),eT=e("./kernels/IsInf"),eS=e("./kernels/IsNaN"),eC=e("./kernels/LeakyRelu"),eN=e("./kernels/Less"),eE=e("./kernels/LessEqual"),eF=e("./kernels/LinSpace"),eA=e("./kernels/Log"),eR=e("./kernels/Log1p"),eP=e("./kernels/LogicalAnd"),e$=e("./kernels/LogicalNot"),eO=e("./kernels/LogicalOr"),eD=e("./kernels/LRN"),eM=e("./kernels/LRNGrad"),eB=e("./kernels/Max"),eG=e("./kernels/Maximum"),eV=e("./kernels/MaxPool"),eL=e("./kernels/MaxPool3D"),ez=e("./kernels/MaxPool3DGrad"),eU=e("./kernels/MaxPoolGrad"),eW=e("./kernels/MaxPoolWithArgmax"),eq=e("./kernels/Mean"),eH=e("./kernels/Min"),eK=e("./kernels/Minimum"),eX=e("./kernels/MirrorPad"),eZ=e("./kernels/Mod"),eY=e("./kernels/Multinomial"),eQ=e("./kernels/Multiply"),eJ=e("./kernels/Neg"),e0=e("./kernels/NonMaxSuppressionV3"),e1=e("./kernels/NonMaxSuppressionV4"),e2=e("./kernels/NonMaxSuppressionV5"),e3=e("./kernels/NotEqual"),e6=e("./kernels/OneHot"),e4=e("./kernels/OnesLike"),e5=e("./kernels/Pack"),e8=e("./kernels/PadV2"),e9=e("./kernels/Pow"),e7=e("./kernels/Prelu"),te=e("./kernels/Prod"),tt=e("./kernels/RaggedGather"),tr=e("./kernels/RaggedRange"),tn=e("./kernels/RaggedTensorToTensor"),ts=e("./kernels/Range"),ta=e("./kernels/Real"),to=e("./kernels/RealDiv"),tl=e("./kernels/Reciprocal"),ti=e("./kernels/Relu"),tp=e("./kernels/Relu6"),tu=e("./kernels/Reshape"),tc=e("./kernels/ResizeBilinear"),td=e("./kernels/ResizeBilinearGrad"),tf=e("./kernels/ResizeNearestNeighbor"),tm=e("./kernels/ResizeNearestNeighborGrad"),th=e("./kernels/Reverse"),tg=e("./kernels/RotateWithOffset"),tx=e("./kernels/Round"),ty=e("./kernels/Rsqrt"),tv=e("./kernels/ScatterNd"),tb=e("./kernels/SearchSorted"),tk=e("./kernels/Select"),t_=e("./kernels/Selu"),tI=e("./kernels/Sigmoid"),tj=e("./kernels/Sign"),tw=e("./kernels/Sin"),tT=e("./kernels/Sinh"),tS=e("./kernels/Slice"),tC=e("./kernels/Softmax"),tN=e("./kernels/Softplus"),tE=e("./kernels/SpaceToBatchND"),tF=e("./kernels/SparseFillEmptyRows"),tA=e("./kernels/SparseReshape"),tR=e("./kernels/SparseSegmentMean"),tP=e("./kernels/SparseSegmentSum"),t$=e("./kernels/SparseToDense"),tO=e("./kernels/SplitV"),tD=e("./kernels/Sqrt"),tM=e("./kernels/Square"),tB=e("./kernels/SquaredDifference"),tG=e("./kernels/StaticRegexReplace"),tV=e("./kernels/Step"),tL=e("./kernels/StridedSlice"),tz=e("./kernels/StringNGrams"),tU=e("./kernels/StringSplit"),tW=e("./kernels/StringToHashBucketFast"),tq=e("./kernels/Sub"),tH=e("./kernels/Sum"),tK=e("./kernels/Tan"),tX=e("./kernels/Tanh"),tZ=e("./kernels/TensorScatterUpdate"),tY=e("./kernels/Tile"),tQ=e("./kernels/TopK"),tJ=e("./kernels/Transform"),t0=e("./kernels/Transpose"),t1=e("./kernels/Unique"),t2=e("./kernels/Unpack"),t3=e("./kernels/UnsortedSegmentSum"),t6=e("./kernels/ZerosLike");for(let e of[a._fusedMatMulConfig,o.absConfig,l.acosConfig,i.acoshConfig,p.addConfig,u.addNConfig,c.allConfig,d.anyConfig,f.argMaxConfig,m.argMinConfig,h.asinConfig,g.asinhConfig,x.atanConfig,y.atan2Config,v.atanhConfig,b.avgPoolConfig,k.avgPool3DConfig,_.avgPool3DGradConfig,I.avgPoolGradConfig,j.batchMatMulConfig,w.batchNormConfig,T.batchToSpaceNDConfig,S.bincountConfig,C.bitwiseAndConfig,N.broadcastArgsConfig,E.castConfig,F.ceilConfig,A.clipByValueConfig,R.complexConfig,P.complexAbsConfig,$.concatConfig,O.conv2DConfig,D.conv2DBackpropFilterConfig,M.conv2DBackpropInputConfig,B.conv3DConfig,G.conv3DBackpropFilterV2Config,V.conv3DBackpropInputV2Config,L.cosConfig,z.coshConfig,U.cropAndResizeConfig,W.cumprodConfig,q.cumsumConfig,H.denseBincountConfig,K.depthToSpaceConfig,X.depthwiseConv2dNativeConfig,Z.depthwiseConv2dNativeBackpropFilterConfig,Y.depthwiseConv2dNativeBackpropInputConfig,Q.diagConfig,J.dilation2DConfig,ee.dilation2DBackpropFilterConfig,et.dilation2DBackpropInputConfig,er.drawConfig,en.einsumConfig,es.eluConfig,ea.eluGradConfig,eo.equalConfig,el.erfConfig,ei.expConfig,ep.expandDimsConfig,eu.expm1Config,ec.fftConfig,ed.fillConfig,ef.flipLeftRightConfig,em.floorConfig,eh.floorDivConfig,eg.fusedConv2DConfig,ex.fusedDepthwiseConv2DConfig,ey.gatherNdConfig,ev.gatherV2Config,eb.greaterConfig,ek.greaterEqualConfig,e_.identityConfig,eI.ifftConfig,ej.imagConfig,ew.isFiniteConfig,eT.isInfConfig,eS.isNaNConfig,eC.leakyReluConfig,eN.lessConfig,eE.lessEqualConfig,eF.linSpaceConfig,eA.logConfig,eR.log1pConfig,eP.logicalAndConfig,e$.logicalNotConfig,eO.logicalOrConfig,eD.LRNConfig,eM.LRNGradConfig,eB.maxConfig,eG.maximumConfig,eV.maxPoolConfig,eL.maxPool3DConfig,ez.maxPool3DGradConfig,eU.maxPoolGradConfig,eW.maxPoolWithArgmaxConfig,eq.meanConfig,eH.minConfig,eK.minimumConfig,eX.mirrorPadConfig,eZ.modConfig,eY.multinomialConfig,eQ.multiplyConfig,eJ.negConfig,e0.nonMaxSuppressionV3Config,e1.nonMaxSuppressionV4Config,e2.nonMaxSuppressionV5Config,e3.notEqualConfig,e6.oneHotConfig,e4.onesLikeConfig,e5.packConfig,e8.padV2Config,e9.powConfig,e7.preluConfig,te.prodConfig,tt.raggedGatherConfig,tr.raggedRangeConfig,tn.raggedTensorToTensorConfig,ts.rangeConfig,ta.realConfig,to.realDivConfig,tl.reciprocalConfig,ti.reluConfig,tp.relu6Config,tu.reshapeConfig,tc.resizeBilinearConfig,td.resizeBilinearGradConfig,tf.resizeNearestNeighborConfig,tm.resizeNearestNeighborGradConfig,th.reverseConfig,tg.rotateWithOffsetConfig,tx.roundConfig,ty.rsqrtConfig,tv.scatterNdConfig,tb.searchSortedConfig,tk.selectConfig,t_.seluConfig,tI.sigmoidConfig,tj.signConfig,tw.sinConfig,tT.sinhConfig,tS.sliceConfig,tC.softmaxConfig,tN.softplusConfig,tE.spaceToBatchNDConfig,tF.sparseFillEmptyRowsConfig,tA.sparseReshapeConfig,tR.sparseSegmentMeanConfig,tP.sparseSegmentSumConfig,t$.sparseToDenseConfig,tO.splitVConfig,tD.sqrtConfig,tM.squareConfig,tB.squaredDifferenceConfig,tG.staticRegexReplaceConfig,tV.stepConfig,tL.stridedSliceConfig,tz.stringNGramsConfig,tU.stringSplitConfig,tW.stringToHashBucketFastConfig,tq.subConfig,tH.sumConfig,tK.tanConfig,tX.tanhConfig,tZ.tensorScatterUpdateConfig,tY.tileConfig,tQ.topKConfig,tJ.transformConfig,t0.transposeConfig,t1.uniqueConfig,t2.unpackConfig,t3.unsortedSegmentSumConfig,t6.zerosLikeConfig])(0,s.registerKernel)(e)},{"@tensorflow/tfjs-core":"2Gtps","./kernels/_FusedMatMul":"eS3My","./kernels/Abs":"aZebR","./kernels/Acos":"hYjCi","./kernels/Acosh":"llAtb","./kernels/Add":"bAFRc","./kernels/AddN":"ga4wl","./kernels/All":"f7JKp","./kernels/Any":"b1mER","./kernels/ArgMax":"hyfry","./kernels/ArgMin":"kgBLO","./kernels/Asin":"iOGCr","./kernels/Asinh":"dBTiA","./kernels/Atan":"j5R8G","./kernels/Atan2":"kIfhu","./kernels/Atanh":"6aVyu","./kernels/AvgPool":"45GgB","./kernels/AvgPool3D":"6FAlZ","./kernels/AvgPool3DGrad":"gc6Dh","./kernels/AvgPoolGrad":"2IINZ","./kernels/BatchMatMul":"cQlqN","./kernels/BatchNorm":"8q8iL","./kernels/BatchToSpaceND":"4FR92","./kernels/Bincount":"esMwL","./kernels/BitwiseAnd":"eAI0B","./kernels/BroadcastArgs":"cFYYE","./kernels/Cast":"hKQIs","./kernels/Ceil":"jOMtn","./kernels/ClipByValue":"8WEsC","./kernels/Complex":"2fiFF","./kernels/ComplexAbs":"fkwmq","./kernels/Concat":"cq91T","./kernels/Conv2D":"4zWLq","./kernels/Conv2DBackpropFilter":"3bwNq","./kernels/Conv2DBackpropInput":"6Zaax","./kernels/Conv3D":"eForX","./kernels/Conv3DBackpropFilterV2":"bqmdN","./kernels/Conv3DBackpropInputV2":"1xcNw","./kernels/Cos":"1urUW","./kernels/Cosh":"53PsY","./kernels/CropAndResize":"kAEaL","./kernels/Cumprod":"kvF8I","./kernels/Cumsum":"dLVlR","./kernels/DenseBincount":"ine8G","./kernels/DepthToSpace":"fhce6","./kernels/DepthwiseConv2dNative":"fRd5I","./kernels/DepthwiseConv2dNativeBackpropFilter":"6DviO","./kernels/DepthwiseConv2dNativeBackpropInput":"c4eyP","./kernels/Diag":"jcgB7","./kernels/Dilation2D":"gmcce","./kernels/Dilation2DBackpropFilter":"gUYzP","./kernels/Dilation2DBackpropInput":"eKMol","./kernels/Draw":"lMpJ0","./kernels/Einsum":"egxq1","./kernels/Elu":"5257o","./kernels/EluGrad":"eMZVp","./kernels/Equal":"6vsbD","./kernels/Erf":"7xSpz","./kernels/Exp":"9ub2a","./kernels/ExpandDims":"fRg5Q","./kernels/Expm1":"la325","./kernels/FFT":"i9oI8","./kernels/Fill":"8zGrw","./kernels/FlipLeftRight":"3COuK","./kernels/Floor":"ggI8q","./kernels/FloorDiv":"4CGo3","./kernels/FusedConv2D":"2tKGZ","./kernels/FusedDepthwiseConv2D":"3Effs","./kernels/GatherNd":"fbTOY","./kernels/GatherV2":"4V15q","./kernels/Greater":"8VCX5","./kernels/GreaterEqual":"6dCtd","./kernels/Identity":"ew2a3","./kernels/IFFT":"2Mfch","./kernels/Imag":"4Od8v","./kernels/IsFinite":"bzcHc","./kernels/IsInf":"aTLYv","./kernels/IsNaN":"gHpOo","./kernels/LeakyRelu":"3XDq5","./kernels/Less":"amDj6","./kernels/LessEqual":"2l63t","./kernels/LinSpace":"9m7fp","./kernels/Log":"6pnuq","./kernels/Log1p":"ixzUq","./kernels/LogicalAnd":"OUTi1","./kernels/LogicalNot":"2si92","./kernels/LogicalOr":"hO7A3","./kernels/LRN":"zdv2n","./kernels/LRNGrad":"ePwSb","./kernels/Max":"19KxN","./kernels/Maximum":"3mucZ","./kernels/MaxPool":"kUIKv","./kernels/MaxPool3D":"21jus","./kernels/MaxPool3DGrad":"f4E9l","./kernels/MaxPoolGrad":"koGS6","./kernels/MaxPoolWithArgmax":"dTuNm","./kernels/Mean":"fmev5","./kernels/Min":"9osZy","./kernels/Minimum":"h5VzA","./kernels/MirrorPad":"1lNW2","./kernels/Mod":"hMMNZ","./kernels/Multinomial":"iaROS","./kernels/Multiply":"blR5P","./kernels/Neg":"8cO7T","./kernels/NonMaxSuppressionV3":"h85ni","./kernels/NonMaxSuppressionV4":"faKbd","./kernels/NonMaxSuppressionV5":"hCHZZ","./kernels/NotEqual":"bhFpO","./kernels/OneHot":"9plCE","./kernels/OnesLike":"kpDJA","./kernels/Pack":"1fNim","./kernels/PadV2":"2Tf5D","./kernels/Pow":"kLar1","./kernels/Prelu":"jLNHQ","./kernels/Prod":"1vdcs","./kernels/RaggedGather":"gzFNc","./kernels/RaggedRange":"j4Jmi","./kernels/RaggedTensorToTensor":"7ZkQK","./kernels/Range":"j30dI","./kernels/Real":"fBBrK","./kernels/RealDiv":"l0XIp","./kernels/Reciprocal":"jw3Jp","./kernels/Relu":"9mB5U","./kernels/Relu6":"6AGG5","./kernels/Reshape":"94cVf","./kernels/ResizeBilinear":"aqDSc","./kernels/ResizeBilinearGrad":"4vVD1","./kernels/ResizeNearestNeighbor":"7TDMp","./kernels/ResizeNearestNeighborGrad":"arXoN","./kernels/Reverse":"g4sF4","./kernels/RotateWithOffset":"buBka","./kernels/Round":"fiSlE","./kernels/Rsqrt":"anhkm","./kernels/ScatterNd":"1TDdU","./kernels/SearchSorted":"5qRls","./kernels/Select":"lCXpt","./kernels/Selu":"7b5Ai","./kernels/Sigmoid":"dgIMK","./kernels/Sign":"fjTv4","./kernels/Sin":"96Ts1","./kernels/Sinh":"7TNAI","./kernels/Slice":"aVrpO","./kernels/Softmax":"3QD6z","./kernels/Softplus":"hXZZ0","./kernels/SpaceToBatchND":"HGFyQ","./kernels/SparseFillEmptyRows":"9KREA","./kernels/SparseReshape":"lWpFB","./kernels/SparseSegmentMean":"jt9ak","./kernels/SparseSegmentSum":"fzkPQ","./kernels/SparseToDense":"4Dlhe","./kernels/SplitV":"27QZB","./kernels/Sqrt":"b2SF0","./kernels/Square":"6RKDU","./kernels/SquaredDifference":"5czoa","./kernels/StaticRegexReplace":"hBYHB","./kernels/Step":"gLD1g","./kernels/StridedSlice":"634M0","./kernels/StringNGrams":"4s5vv","./kernels/StringSplit":"j9Qom","./kernels/StringToHashBucketFast":"ikODx","./kernels/Sub":"kDL1v","./kernels/Sum":"9Vc6r","./kernels/Tan":"1n2Cy","./kernels/Tanh":"6duST","./kernels/TensorScatterUpdate":"4T45m","./kernels/Tile":"5fOHa","./kernels/TopK":"kxEVO","./kernels/Transform":"fYCMo","./kernels/Transpose":"j4ys5","./kernels/Unique":"d9zwP","./kernels/Unpack":"9obkn","./kernels/UnsortedSegmentSum":"4TMs1","./kernels/ZerosLike":"fmLIH"}],eS3My:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"_fusedMatMul",()=>p),s.export(r,"_fusedMatMulConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./BatchMatMul");function p(e){let t,r,n,{inputs:s,backend:a,attrs:p}=e,{a:u,b:c,bias:d,preluActivationWeights:f}=s,{transposeA:m,transposeB:h,activation:g,leakyreluAlpha:x}=p,y=[];for(let e of(t=(0,i.batchMatMul)({inputs:{a:u,b:c},attrs:{transposeA:m,transposeB:h},backend:a}),d&&(r=(0,l.add)({inputs:{a:t,b:d},backend:a}),y.push(t),t=r),g&&(n=(0,o.applyActivation)(a,t,g,f,x),y.push(t),t=n),y))a.disposeIntermediateTensorInfo(e);return t}let u={kernelName:a._FusedMatMul,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/fused_utils":"7F9eY","./Add":"bAFRc","./BatchMatMul":"cQlqN","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7F9eY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"applyActivation",()=>d);var a=e("../kernels/Elu"),o=e("../kernels/Identity"),l=e("../kernels/LeakyRelu"),i=e("../kernels/Prelu"),p=e("../kernels/Relu"),u=e("../kernels/Relu6"),c=e("../kernels/Sigmoid");function d(e,t,r,n,s){if("linear"===r)return(0,o.identity)({inputs:{x:t},backend:e});if("relu"===r)return(0,p.relu)({inputs:{x:t},backend:e});if("elu"===r)return(0,a.elu)({inputs:{x:t},backend:e});if("relu6"===r)return(0,u.relu6)({inputs:{x:t},backend:e});if("prelu"===r)return(0,i.prelu)({inputs:{x:t,alpha:n},backend:e});else if("leakyrelu"===r)return(0,l.leakyRelu)({inputs:{x:t},backend:e,attrs:{alpha:s}});else if("sigmoid"===r)return(0,c.sigmoid)({inputs:{x:t},backend:e});throw Error(`Activation ${r} has not been implemented for the CPU backend.`)}},{"../kernels/Elu":"5257o","../kernels/Identity":"ew2a3","../kernels/LeakyRelu":"3XDq5","../kernels/Prelu":"jLNHQ","../kernels/Relu":"9mB5U","../kernels/Relu6":"6AGG5","../kernels/Sigmoid":"dgIMK","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5257o":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"elu",()=>o),s.export(r,"eluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Elu,e=>e>=0?e:Math.exp(e)-1),l={kernelName:a.Elu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3XDq5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"leakyRelu",()=>l),s.export(r,"leakyReluConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{alpha:l}=n;(0,o.assertNotComplex)([s],"leakyRelu");let i=a.util.sizeFromShape(s.shape),p=r.data.get(s.dataId).values,u=a.util.getTypedArrayFromDType("float32",i);for(let e=0;e<p.length;e++)u[e]=p[e]<0?l*p[e]:p[e];return r.makeTensorInfo(s.shape,"float32",u)}let i={kernelName:a.LeakyRelu,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jLNHQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"prelu",()=>i),s.export(r,"preluConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=(0,e("../utils/binary_impl").createSimpleBinaryKernelImpl)((e,t)=>e<0?t*e:e);function i(e){let{inputs:t,backend:r}=e,{x:n,alpha:s}=t;(0,o.assertNotComplex)([n,s],"prelu");let a=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,[p,u]=l(n.shape,s.shape,a,i,"float32");return r.makeTensorInfo(u,"float32",p)}let p={kernelName:a.Prelu,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/binary_impl":"6IwzO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9mB5U":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu",()=>o),s.export(r,"reluConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu,e=>Math.max(0,e)),l={kernelName:a.Relu,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6AGG5":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"relu6",()=>o),s.export(r,"relu6Config",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Relu6,e=>Math.min(Math.max(0,e),6)),l={kernelName:a.Relu6,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cQlqN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchMatMul",()=>i),s.export(r,"batchMatMulConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape");function i(e){let{inputs:t,backend:r,attrs:n}=e,{a:s,b:i}=t,{transposeA:p,transposeB:u}=n;(0,o.assertNotComplex)([s,i],"matMul");let c=s.shape.length,d=i.shape.length,f=p?s.shape[c-2]:s.shape[c-1],m=u?i.shape[d-1]:i.shape[d-2],h=p?s.shape[c-1]:s.shape[c-2],g=u?i.shape[d-2]:i.shape[d-1],x=s.shape.slice(0,-2),y=i.shape.slice(0,-2),v=a.util.sizeFromShape(x),b=a.util.sizeFromShape(y),k=a.broadcast_util.assertAndGetBroadcastShape(s.shape.slice(0,-2),i.shape.slice(0,-2)).concat([h,g]);a.util.assert(f===m,()=>`Error in matMul: inner shapes (${f}) and (${m}) of Tensors with shapes ${s.shape} and ${i.shape} and transposeA=${p} and transposeB=${u} must match.`);let _=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:p?[v,f,h]:[v,h,f]}}),I=(0,l.reshape)({inputs:{x:i},backend:r,attrs:{shape:u?[b,g,m]:[b,m,g]}}),j=p?_.shape[1]:_.shape[2],w=p?_.shape[2]:_.shape[1],T=u?I.shape[1]:I.shape[2],S=Math.max(v,b),C=r.data.get(_.dataId).values,N=r.data.get(I.dataId).values,E=a.util.computeStrides(_.shape),F=a.util.computeStrides(I.shape),[A,R,P]=p?[E[0],1,E[1]]:[E[0],E[1],1],[$,O,D]=u?[1,F[1],F[0]]:[F[1],1,F[0]],M=w*T,B=(0,a.buffer)([S,w,T],_.dtype),G=B.values,V=r.blockSize;for(let e=0;e<S;e++){let t=e%v,r=e%b;for(let n=0;n<w;n+=V){let s=Math.min(n+V,w);for(let a=0;a<T;a+=V){let o=Math.min(a+V,T);for(let l=0;l<j;l+=V){let i=Math.min(l+V,j);for(let p=n;p<s;p++)for(let n=a;n<o;n++){let s=0;for(let e=l;e<i;e++)s+=C[t*A+p*R+e*P]*N[e*$+n*O+r*D];G[e*M+(p*T+n)]+=s}}}}}return r.disposeIntermediateTensorInfo(_),r.disposeIntermediateTensorInfo(I),r.makeTensorInfo(k,B.dtype,B.values)}let p={kernelName:a.BatchMatMul,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"94cVf":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reshape",()=>o),s.export(r,"reshapeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{shape:o}=n,l=a.util.sizeFromShape(s.shape),i=a.util.inferFromImplicitShape(o,l),p=a.util.sizeFromShape(i);a.util.assert(l===p,()=>`The new shape (${i}) has ${p} elements and the old shape (${s.shape}) has ${l} elements. The new shape and old shape must have the same number of elements.`),r.incRef(s.dataId);let u=r.data.get(s.dataId);if(null!=u.complexTensorInfos){let e=u.complexTensorInfos.real,t=u.complexTensorInfos.imag;e.shape=i,t.shape=i}return{dataId:s.dataId,shape:i,dtype:s.dtype}}let l={kernelName:a.Reshape,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hYjCi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acos",()=>o),s.export(r,"acosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acos,e=>Math.acos(e)),l={kernelName:a.Acos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],llAtb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"acosh",()=>o),s.export(r,"acoshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Acosh,e=>Math.acosh(e)),l={kernelName:a.Acosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ga4wl:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"addN",()=>l),s.export(r,"addNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e;(0,o.assertNotComplex)(t,"addN");let n=t.map(e=>r.data.get(e.dataId).values),s=(0,a.buffer)(t[0].shape,t[0].dtype),l=s.values;for(let e=0;e<t.length;e++){let t=n[e];for(let e=0;e<l.length;e++)l[e]+=t[e]}return r.makeTensorInfo(s.shape,s.dtype,s.values)}let i={kernelName:a.AddN,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f7JKp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"all",()=>p),s.export(r,"allConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:p,keepDims:u}=n;(0,o.assertNotComplex)(s,"all");let c=a.util.parseAxisParam(p,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("all",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),y=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),v=r.data.get(m.dataId).values;for(let e=0;e<y.length;++e){let t=e*x,r=v[t];for(let e=0;e<x;++e){let n=v[t+e];r=r&&n}y[e]=r}null!=f&&r.disposeIntermediateTensorInfo(m);let b=r.makeTensorInfo(h,m.dtype,y);if(u){let e=a.backend_util.expandShapeToKeepDim(h,c),t=(0,l.reshape)({inputs:{x:b},backend:r,attrs:{shape:e}});return r.disposeIntermediateTensorInfo(b),t}return b}let u={kernelName:a.All,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Reshape":"94cVf","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],b1mER:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"any",()=>p),s.export(r,"anyConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:p,keepDims:u}=n;(0,o.assertNotComplex)(s,"any");let c=a.util.parseAxisParam(p,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("any",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),y=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),v=r.data.get(m.dataId).values;for(let e=0;e<y.length;++e){let t=e*x,r=v[t];for(let e=0;e<x;++e){let n=v[t+e];r=r||n}y[e]=r}null!=f&&r.disposeIntermediateTensorInfo(m);let b=r.makeTensorInfo(h,m.dtype,y);if(u){let e=a.backend_util.expandShapeToKeepDim(h,c),t=(0,l.reshape)({inputs:{x:b},backend:r,attrs:{shape:e}});return r.disposeIntermediateTensorInfo(b),t}return b}let u={kernelName:a.Any,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Reshape":"94cVf","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hyfry:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMax",()=>i),s.export(r,"argMaxConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMax");let p=a.util.parseAxisParam(i,s.shape),u=a.backend_util.getAxesPermutation(p,s.shape.length),c=s,d=[];null!=u&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:u}})),p=a.backend_util.getInnerMostAxes(p.length,c.shape.length)),p=[p[0]],a.backend_util.assertAxesAreInnerMostDims("argMax",p,c.shape.length);let[f,m]=a.backend_util.computeOutAndReduceShapes(c.shape,p),h=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(h,"int32"),x=a.util.sizeFromShape(m),y=r.data.get(c.dataId).values;for(let e=0;e<g.length;++e){let t=e*x,r=y[t],n=0;for(let e=0;e<x;++e){let s=y[t+e];s>r&&(r=s,n=e)}g[e]=n}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let p={kernelName:a.ArgMax,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kgBLO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"argMin",()=>i),s.export(r,"argMinConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i}=n;(0,o.assertNotComplex)(s,"argMin");let p=a.util.parseAxisParam(i,s.shape),u=a.backend_util.getAxesPermutation(p,s.shape.length),c=s,d=[];null!=u&&(d.push(c=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:u}})),p=a.backend_util.getInnerMostAxes(p.length,c.shape.length)),p=[p[0]],a.backend_util.assertAxesAreInnerMostDims("argMin",p,c.shape.length);let[f,m]=a.backend_util.computeOutAndReduceShapes(c.shape,p),h=a.util.sizeFromShape(f),g=a.util.makeZerosTypedArray(h,"int32"),x=a.util.sizeFromShape(m),y=r.data.get(c.dataId).values;for(let e=0;e<g.length;++e){let t=e*x,r=y[t],n=0;for(let e=0;e<x;++e){let s=y[t+e];s<r&&(r=s,n=e)}g[e]=n}return d.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.makeTensorInfo(f,"int32",g)}let p={kernelName:a.ArgMin,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iOGCr:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asin",()=>o),s.export(r,"asinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asin,e=>Math.asin(e)),l={kernelName:a.Asin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dBTiA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"asinh",()=>o),s.export(r,"asinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Asinh,e=>Math.asinh(e)),l={kernelName:a.Asinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j5R8G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan",()=>o),s.export(r,"atanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atan,e=>Math.atan(e)),l={kernelName:a.Atan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kIfhu:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atan2Impl",()=>i),s.export(r,"atan2",()=>p),s.export(r,"atan2Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.atan2(e,t)),p=(0,l.binaryKernelFunc)(a.Atan2,i),u={kernelName:a.Atan2,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6aVyu":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"atanh",()=>o),s.export(r,"atanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Atanh,e=>Math.atanh(e)),l={kernelName:a.Atanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"45GgB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool",()=>p),s.export(r,"avgPoolConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r;(0,o.assertNotComplex)(p,"avgPool");let{filterSize:u,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let m=a.backend_util.computePool2DInfo(p.shape,u,c,1,d,f);if(1===m.filterWidth&&1===m.filterHeight&&a.util.arraysEqual(m.inShape,m.outShape))t=(0,i.identity)({inputs:{x:p},backend:n});else{let e=n.data.get(p.dataId).values,r=a.util.computeStrides(p.shape),s=(0,l.pool)(e,p.shape,p.dtype,r,m,"avg");t=n.makeTensorInfo(m.outShape,p.dtype,s.values)}return t}let u={kernelName:a.AvgPool,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/pool_utils":"iWg1v","./Identity":"ew2a3","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iWg1v:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pool",()=>o),s.export(r,"maxPoolPositions",()=>l),s.export(r,"pool3d",()=>i),s.export(r,"maxPool3dPositions",()=>p);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=s.strideHeight,i=s.strideWidth,p=s.dilationHeight,u=s.dilationWidth,c=s.effectiveFilterHeight,d=s.effectiveFilterWidth,f=s.padInfo.top,m=s.padInfo.left,h="max"===o?-1/0:1/0,g=(0,a.buffer)(s.outShape,r),x=g.values,y=s.outShape[1]*s.outShape[2]*s.outShape[3],v=s.outShape[2]*s.outShape[3],b=s.outShape[3];for(let t=0;t<s.batchSize;++t){let r=t*y,a=t*n[0];for(let t=0;t<s.inChannels;++t)for(let g=0;g<s.outHeight;++g){let y=g*l-f,k=Math.max(0,y),_=Math.min(s.inHeight,c+y),I=r+g*v;for(let r=0;r<s.outWidth;++r){let l=r*i-m,c=Math.max(0,l),f=Math.min(s.inWidth,d+l),g=h,y=0,v=0;for(let r=k;r<_;r+=p){let s=a+r*n[1];for(let r=c;r<f;r+=u){let a=e[s+r*n[2]+t];"max"===o&&a>g?g=a:"avg"===o&&(y+=a,v++)}if(isNaN(g))break}x[I+r*b+t]="avg"===o?y/v:g}}}return g}function l(e,t,r,n,s=!1,o=!1){let i=(0,a.buffer)(n.outShape,"int32"),p=n.strideHeight,u=n.strideWidth,c=n.dilationHeight,d=n.dilationWidth,f=n.effectiveFilterHeight,m=n.effectiveFilterWidth,h=n.padInfo.top,g=n.padInfo.left,x=(0,a.buffer)(t,r,e);for(let e=0;e<n.batchSize;++e)for(let t=0;t<n.inChannels;++t)for(let r=0;r<n.outHeight;++r){let a=r*p-h,l=a;for(;l<0;)l+=c;let y=Math.min(n.inHeight,f+a);for(let p=0;p<n.outWidth;++p){let f=p*u-g,h=f;for(;h<0;)h+=d;let v=Math.min(n.inWidth,m+f),b=-1/0,k=-1;for(let r=l;r<y;r+=c){let l=r-a;for(let a=h;a<v;a+=d){let i=a-f,p=x.get(e,r,a,t);p>b&&(b=p,k=s?o?((e*n.inHeight+r)*n.inWidth+a)*n.inChannels+t:(r*n.inWidth+a)*n.inChannels+t:l*m+i)}}i.set(k,e,r,p,t)}}return i}function i(e,t,r,n,s,o){let l=s.strideDepth,i=s.strideHeight,p=s.strideWidth,u=s.dilationDepth,c=s.dilationHeight,d=s.dilationWidth,f=s.effectiveFilterDepth,m=s.effectiveFilterHeight,h=s.effectiveFilterWidth,g=s.padInfo.front,x=s.padInfo.top,y=s.padInfo.left,v="max"===o?-1/0:1/0,b=(0,a.buffer)(s.outShape,r),k=b.values,_=s.outShape[1]*s.outShape[2]*s.outShape[3]*s.outShape[4],I=s.outShape[2]*s.outShape[3]*s.outShape[4],j=s.outShape[3]*s.outShape[4],w=s.outShape[4];for(let t=0;t<s.batchSize;++t){let r=t*_,a=t*n[0];for(let t=0;t<s.inChannels;++t)for(let b=0;b<s.outDepth;++b){let _=b*l-g,T=_;for(;T<0;)T+=u;let S=Math.min(s.inDepth,f+_),C=r+b*I;for(let r=0;r<s.outHeight;++r){let l=r*i-x,f=l;for(;f<0;)f+=c;let g=Math.min(s.inHeight,m+l),b=C+r*j;for(let r=0;r<s.outWidth;++r){let l=r*p-y,i=l;for(;i<0;)i+=d;let m=Math.min(s.inWidth,h+l),x=b+r*w,_=v,I=0,j=0;for(let r=T;r<S;r+=u){let s=a+r*n[1];for(let r=f;r<g;r+=c){let a=s+r*n[2];for(let r=i;r<m;r+=d){let s=e[a+r*n[3]+t];if("max"===o&&s>_?_=s:"avg"===o&&(I+=s,j++),isNaN(_))break}if(isNaN(_))break}if(isNaN(_))break}k[x+t]="avg"===o?I/Math.max(j,1):_}}}}return b}function p(e,t){let r=(0,a.buffer)(t.outShape,"int32"),n=t.strideDepth,s=t.strideHeight,o=t.strideWidth,l=t.dilationDepth,i=t.dilationHeight,p=t.dilationWidth,u=t.effectiveFilterDepth,c=t.effectiveFilterHeight,d=t.effectiveFilterWidth,f=t.padInfo.front,m=t.padInfo.top,h=t.padInfo.left;for(let a=0;a<t.batchSize;++a)for(let g=0;g<t.inChannels;++g)for(let x=0;x<t.outDepth;++x){let y=x*n-f,v=y;for(;v<0;)v+=l;let b=Math.min(t.inDepth,u+y);for(let n=0;n<t.outHeight;++n){let u=n*s-m,f=u;for(;f<0;)f+=i;let k=Math.min(t.inHeight,c+u);for(let s=0;s<t.outWidth;++s){let m=s*o-h,_=m;for(;_<0;)_+=p;let I=Math.min(t.inWidth,d+m),j=-1/0,w=-1;for(let t=v;t<b;t+=l){let r=t-y;for(let n=f;n<k;n+=i){let s=n-u;for(let o=_;o<I;o+=p){let l=o-m,i=e.get(a,t,n,o,g);i>=j&&(j=i,w=r*c*d+s*c+l)}}}r.set(w,a,x,n,s,g)}}}return r}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6FAlZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3D",()=>i),s.export(r,"avgPool3DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:p,pad:u,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"avgPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,p,1,u,c,d),m=r.data.get(s.dataId).values,h=(0,l.pool3d)(m,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"avg");return r.makeTensorInfo(h.shape,"float32",h.values)}let p={kernelName:a.AvgPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/pool_utils":"iWg1v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gc6Dh:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPool3DGrad",()=>l),s.export(r,"avgPool3DGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t,{filterSize:i,strides:p,pad:u,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"avgPool3DGrad");let d=a.backend_util.computePool3DInfo(l.shape,i,p,1,u,c),f=d.strideDepth,m=d.strideHeight,h=d.strideWidth,g=d.filterDepth,x=d.filterHeight,y=d.filterWidth,v=d.dilationDepth,b=d.dilationHeight,k=d.dilationWidth,_=d.effectiveFilterDepth,I=d.effectiveFilterHeight,j=d.effectiveFilterWidth,w=_-1-d.padInfo.front,T=j-1-d.padInfo.left,S=I-1-d.padInfo.top,C=(0,a.buffer)(l.shape,"float32"),N=1/(g*x*y),E=r.bufferSync(s);for(let e=0;e<d.batchSize;++e)for(let t=0;t<d.inChannels;++t)for(let r=0;r<d.inDepth;++r)for(let n=0;n<d.inHeight;++n)for(let s=0;s<d.inWidth;++s){let a=r-w,o=n-S,l=s-T,i=0;for(let r=0;r<_;r+=v){let n=(a+r)/f;if(!(n<0)&&!(n>=d.outDepth)&&Math.floor(n)===n)for(let r=0;r<I;r+=b){let s=(o+r)/m;if(!(s<0)&&!(s>=d.outHeight)&&Math.floor(s)===s)for(let r=0;r<j;r+=k){let a=(l+r)/h;a<0||a>=d.outWidth||Math.floor(a)!==a||(i+=E.get(e,n,s,a,t))}}}C.set(i*N,e,r,n,s,t)}return r.makeTensorInfo(C.shape,C.dtype,C.values)}let i={kernelName:a.AvgPool3DGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2IINZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"avgPoolGrad",()=>l),s.export(r,"avgPoolGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:l}=t;(0,o.assertNotComplex)([s,l],"avgPoolGrad");let{filterSize:i,strides:p,pad:u}=n,c=a.backend_util.computePool2DInfo(l.shape,i,p,1,u),d=c.strideHeight,f=c.strideWidth,m=c.filterHeight,h=c.filterWidth,g=c.dilationHeight,x=c.dilationWidth,y=c.effectiveFilterHeight,v=c.effectiveFilterWidth,b=v-1-c.padInfo.left,k=y-1-c.padInfo.top,_=(0,a.buffer)(l.shape,"float32"),I=1/(m*h),j=r.data.get(s.dataId).values,w=(0,a.buffer)(s.shape,"float32",j);for(let e=0;e<c.batchSize;++e)for(let t=0;t<c.inChannels;++t)for(let r=0;r<c.inHeight;++r)for(let n=0;n<c.inWidth;++n){let s=r-k,a=n-b,o=0;for(let r=0;r<y;r+=g){let n=(s+r)/d;if(!(n<0)&&!(n>=c.outHeight)&&Math.floor(n)===n)for(let r=0;r<v;r+=x){let s=(a+r)/f;s<0||s>=c.outWidth||Math.floor(s)!==s||(o+=w.get(e,n,s,t))}}_.set(o*I,e,r,n,t)}return r.makeTensorInfo(_.shape,_.dtype,_.values)}let i={kernelName:a.AvgPoolGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8q8iL":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchNorm",()=>l),s.export(r,"batchNormConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,scale:l,offset:i,mean:p,variance:u}=t;a.util.assert(p.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),a.util.assert(null==i||p.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),a.util.assert(null==l||p.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),(0,o.assertNotComplex)([s,p,u,l,i],"batchNorm");let{varianceEpsilon:c}=n;null==c&&(c=.001);let d=r.data.get(s.dataId).values,f=r.data.get(p.dataId).values,m=r.data.get(u.dataId).values,h=l?r.data.get(l.dataId).values:new Float32Array([1]),g=i?r.data.get(i.dataId).values:new Float32Array([0]),x=new Float32Array(d.length),y=g.length,v=h.length,b=m.length,k=f.length,_=0,I=0,j=0,w=0;for(let e=0;e<d.length;++e)x[e]=g[_++]+(d[e]-f[I++])*h[j++]/Math.sqrt(m[w++]+c),_>=y&&(_=0),I>=k&&(I=0),j>=v&&(j=0),w>=b&&(w=0);return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.FusedBatchNorm,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4FR92":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"batchToSpaceND",()=>u),s.export(r,"batchToSpaceNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),p=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,crops:c}=n;(0,o.assertNotComplex)([s],"batchToSpaceND");let d=u.reduce((e,t)=>e*t),f=a.backend_util.getReshaped(s.shape,u,d),m=a.backend_util.getPermuted(f.length,u.length),h=a.backend_util.getReshapedPermuted(s.shape,u,d),g=a.backend_util.getSliceBeginCoords(c,u.length),x=a.backend_util.getSliceSize(h,c,u.length),y=(0,l.reshape)({inputs:{x:s},backend:r,attrs:{shape:f}}),v=(0,p.transpose)({inputs:{x:y},backend:r,attrs:{perm:m}}),b=(0,l.reshape)({inputs:{x:v},backend:r,attrs:{shape:h}}),k=(0,i.slice)({inputs:{x:b},backend:r,attrs:{begin:g,size:x}});return r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(b),k}let c={kernelName:a.BatchToSpaceND,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Reshape":"94cVf","./Slice":"aVrpO","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],esMwL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"bincount",()=>l),s.export(r,"bincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l}=n,i=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,u=(0,o.bincountImpl)(i,p,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,u)}let i={kernelName:a.Bincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Bincount_impl":"4T9ua","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cFYYE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"broadcastArgs",()=>o),s.export(r,"broadcastArgsConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{s0:n,s1:s}=t,o=r.data.get(n.dataId).values,l=r.data.get(s.dataId).values,i=a.backend_util.assertAndGetBroadcastShape(Array.from(o),Array.from(l));return r.makeTensorInfo([i.length],"int32",Int32Array.from(i))}let l={kernelName:a.BroadcastArgs,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8WEsC":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"clipByValue",()=>o),s.export(r,"clipByValueConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.ClipByValue,(e,t)=>e>t.clipValueMax?t.clipValueMax:e<t.clipValueMin?t.clipValueMin:e),l={kernelName:a.ClipByValue,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fkwmq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"complexAbs",()=>o),s.export(r,"complexAbsConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=e=>{let{x:t}=e.inputs,r=e.backend,n=new Float32Array(a.util.sizeFromShape(t.shape)),s=r.data.get(t.dataId),o=s.complexTensorInfos.real,l=s.complexTensorInfos.imag,i=r.data.get(o.dataId).values,p=r.data.get(l.dataId).values;for(let e=0;e<i.length;e++){let t=i[e],r=p[e];n[e]=Math.hypot(t,r)}return r.makeOutput(n,t.shape,"float32")},l={kernelName:a.ComplexAbs,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cq91T:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"concat",()=>d),s.export(r,"concatConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Concat_impl"),i=e("./Identity"),p=e("./Imag"),u=e("./Real"),c=e("./Reshape");function d(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n,f=a.util.parseAxisParam(s,t[0].shape)[0],m=t.map(e=>e.shape);a.backend_util.assertParamsConsistent(m,f);let h=a.backend_util.computeOutShape(t.map(e=>e.shape),f);if(0===a.util.sizeFromShape(h))return r.makeTensorInfo(h,t[0].dtype,[]);let g=t.filter(e=>a.util.sizeFromShape(e.shape)>0);if(1===g.length)return(0,i.identity)({inputs:{x:g[0]},backend:r});if("complex64"===g[0].dtype){let e=g.map(e=>(0,u.real)({inputs:{input:e},backend:r})),t=g.map(e=>(0,p.imag)({inputs:{input:e},backend:r})),n=d({inputs:e,backend:r,attrs:{axis:f}}),s=d({inputs:t,backend:r,attrs:{axis:f}}),a=(0,o.complex)({inputs:{real:n,imag:s},backend:r});return e.forEach(e=>r.disposeIntermediateTensorInfo(e)),t.forEach(e=>r.disposeIntermediateTensorInfo(e)),r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),a}let x=g.map(e=>{let t=a.util.sizeFromShape(e.shape.slice(f));return(0,c.reshape)({inputs:{x:e},backend:r,attrs:{shape:[-1,t]}})}),y=x.map(e=>({vals:r.data.get(e.dataId).values,shape:e.shape}));h=a.backend_util.computeOutShape(x.map(e=>e.shape),1);let v=1===x[0].shape[0],b=(0,l.concatImpl)(y,h,t[0].dtype,v),k=a.backend_util.computeOutShape(g.map(e=>e.shape),f),_=r.makeTensorInfo(k,t[0].dtype,b);return x.forEach(e=>r.disposeIntermediateTensorInfo(e)),_}let f={kernelName:a.Concat,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","./Complex":"2fiFF","./Concat_impl":"kSE6G","./Identity":"ew2a3","./Imag":"4Od8v","./Real":"fBBrK","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4Od8v":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r}=e,{input:n}=t,s=r.data.get(n.dataId).complexTensorInfos.imag,a=r.data.get(s.dataId).values;return r.makeTensorInfo(s.shape,s.dtype,a)}s.defineInteropFlag(r),s.export(r,"imag",()=>a),s.export(r,"imagConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Imag,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4zWLq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2D",()=>l),s.export(r,"conv2DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:p,dataFormat:u,dilations:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2d");let f=a.backend_util.convertConv2DDataFormat(u),m=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,c,p,d,!1,f),h=m.filterHeight,g=m.filterWidth,x=m.dilationHeight,y=m.dilationWidth,v=m.padInfo.left,b=m.padInfo.top,k="channelsLast"===m.dataFormat,_=new(0,a.TensorBuffer)(m.outShape,s.dtype),I=a.util.computeStrides(s.shape),j=a.util.computeStrides(l.shape),w=I[0],T=k?I[1]:I[2],S=k?I[2]:1,C=k?1:I[1],N=_.strides[0],E=k?_.strides[1]:_.strides[2],F=k?_.strides[2]:1,A=k?1:_.strides[1],R=r.data.get(s.dataId).values,P=r.data.get(l.dataId).values,$=_.values;for(let e=0;e<m.batchSize;++e){let t=e*w,r=e*N;for(let e=0;e<m.outHeight;++e){let n=r+e*E,s=e*m.strideHeight-b;for(let e=0;e<h;++e){let r=s+e*x;if(r<0||r>=m.inHeight)continue;let a=e*j[0],o=t+r*T;for(let e=0;e<m.outWidth;++e){let t=n+e*F,r=e*m.strideWidth-v;for(let e=0;e<g;++e){let n=r+e*y;if(n<0||n>=m.inWidth)continue;let s=a+e*j[1],l=o+n*S,i=s;for(let e=0;e<m.inChannels;++e){let r=R[l+e*C];for(let e=0;e<m.outChannels;++e)$[t+e*A]+=r*P[i+e];i+=m.outChannels}}}}}}return r.makeTensorInfo(_.shape,_.dtype,$)}let i={kernelName:a.Conv2D,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3bwNq":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropFilter",()=>l),s.export(r,"conv2DBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:p,dataFormat:u,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropFilter");let f=a.backend_util.convertConv2DDataFormat(u),m=a.backend_util.computeConv2DInfo(s.shape,d,i,1,p,c,!1,f),{strideHeight:h,strideWidth:g,filterHeight:x,filterWidth:y}=m,v="channelsLast"===m.dataFormat,b=new(0,a.TensorBuffer)(m.filterShape,"float32"),k=m.padInfo.left,_=m.padInfo.top,I=r.data.get(s.dataId).values,j=r.data.get(l.dataId).values,w=new(0,a.TensorBuffer)(s.shape,s.dtype,I),T=new(0,a.TensorBuffer)(l.shape,l.dtype,j);for(let e=0;e<x;++e){let t=Math.max(0,Math.ceil((_-e)/h)),r=Math.min(m.outHeight,(m.inHeight+_-e)/h);for(let n=0;n<y;++n){let s=Math.max(0,Math.ceil((k-n)/g)),a=Math.min(m.outWidth,(m.inWidth+k-n)/g);for(let o=0;o<m.inChannels;++o)for(let l=0;l<m.outChannels;++l){let i=0;for(let p=0;p<m.batchSize;++p)for(let u=t;u<r;++u){let t=e+u*h-_;for(let e=s;e<a;++e){let r=n+e*g-k;v?i+=w.get(p,t,r,o)*T.get(p,u,e,l):i+=w.get(p,o,t,r)*T.get(p,l,u,e)}}b.set(i,e,n,o,l)}}}return r.makeTensorInfo(b.shape,b.dtype,b.values)}let i={kernelName:a.Conv2DBackpropFilter,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6Zaax":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv2DBackpropInput",()=>l),s.export(r,"conv2DBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{inputShape:i,strides:p,pad:u,dataFormat:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,l],"conv2dBackpropInput");let f=a.util.computeStrides(l.shape),m=a.util.computeStrides(s.shape),h=a.backend_util.convertConv2DDataFormat(c),g=a.backend_util.computeConv2DInfo(i,l.shape,p,1,u,d,!1,h),x=new(0,a.TensorBuffer)(g.inShape,"float32"),y=x.values,v=r.data.get(s.dataId).values,b=r.data.get(l.dataId).values,[k,_,I]=f,{batchSize:j,filterHeight:w,filterWidth:T,inChannels:S,inHeight:C,inWidth:N,outChannels:E,outHeight:F,outWidth:A,strideHeight:R,strideWidth:P}=g;h=g.dataFormat;let $=w-1-g.padInfo.top,O=T-1-g.padInfo.left,D="channelsLast"===h,M=x.strides[0],B=D?x.strides[1]:x.strides[2],G=D?x.strides[2]:1,V=D?1:x.strides[1],L=m[0],z=D?m[1]:m[2],U=D?m[2]:1,W=D?1:m[1];for(let e=0;e<j;++e)for(let t=0;t<S;++t)for(let r=0;r<C;++r){let n=r-$,s=Math.max(0,Math.ceil(n/R)),a=Math.min(F,(w+n)/R);for(let o=0;o<N;++o){let l=o-O,i=Math.max(0,Math.ceil(l/P)),p=Math.min(A,(T+l)/P),u=0;for(let r=s;r<a;++r){let s=r*R-n;for(let n=i;n<p;++n){let a=n*P-l,o=L*e+z*r+U*n,i=k*(w-1-s)+_*(T-1-a)+I*t;for(let e=0;e<E;++e)u+=v[o+W*e]*b[i+e]}}y[M*e+B*r+G*o+V*t]=u}}return r.makeTensorInfo(x.shape,x.dtype,x.values)}let i={kernelName:a.Conv2DBackpropInput,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eForX:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3D",()=>l),s.export(r,"conv3DConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:p,dilations:u}=n;(0,o.assertNotComplex)([s,l],"conv3d");let c=a.backend_util.computeConv3DInfo(s.shape,l.shape,i,u,p),{filterDepth:d,filterHeight:f,filterWidth:m,dilationDepth:h,dilationHeight:g,dilationWidth:x,padInfo:y}=c,v=y.front,b=y.left,k=y.top,_=new(0,a.TensorBuffer)(c.outShape,s.dtype),I=r.data.get(s.dataId).values,j=r.data.get(l.dataId).values,w=_.values,T=a.util.computeStrides(s.shape),S=a.util.computeStrides(l.shape);for(let e=0;e<c.batchSize;++e){let t=e*T[0],r=e*_.strides[0];for(let e=0;e<c.outDepth;++e){let n=r+e*_.strides[1],s=e*c.strideDepth-v;for(let e=0;e<d;++e){let r=s+e*h;if(r<0||r>=c.inDepth)continue;let a=e*S[0],o=t+r*T[1];for(let e=0;e<c.outHeight;++e){let t=n+e*_.strides[2],r=e*c.strideHeight-k;for(let e=0;e<f;++e){let n=r+e*g;if(n<0||n>=c.inHeight)continue;let s=a+e*S[1],l=o+n*T[2];for(let e=0;e<c.outWidth;++e){let r=t+e*c.outChannels,n=e*c.strideWidth-b;for(let e=0;e<m;++e){let t=n+e*x;if(t<0||t>=c.inWidth)continue;let a=s+e*S[2],o=l+t*c.inChannels,i=a;for(let e=0;e<c.inChannels;++e){let t=I[o+e];for(let e=0;e<c.outChannels;++e)w[r+e]+=t*j[i+e];i+=c.outChannels}}}}}}}}return r.makeTensorInfo(_.shape,_.dtype,_.values)}let i={kernelName:a.Conv3D,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bqmdN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropFilterV2",()=>l),s.export(r,"conv3DBackpropFilterV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,pad:p,filterShape:u}=n;(0,o.assertNotComplex)([s,l],"conv3dBackpropFilterV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(s.shape,u,i,1,p),m=f.strideDepth,h=f.strideHeight,g=f.strideWidth,x=f.filterDepth,y=f.filterHeight,v=f.filterWidth,b=new(0,a.TensorBuffer)(f.filterShape,"float32"),k=b.values,[_,I,j,w]=b.strides,T=r.data.get(l.dataId).values,[S,C,N,E]=d,F=r.data.get(s.dataId).values,[A,R,P,$]=c,O=f.padInfo.front,D=f.padInfo.left,M=f.padInfo.top;for(let e=0;e<x;++e){let t=Math.max(0,Math.ceil((O-e)/m)),r=Math.min(f.outDepth,(f.inDepth+O-e)/m),n=e*_;for(let s=0;s<y;++s){let a=Math.max(0,Math.ceil((M-s)/h)),o=Math.min(f.outHeight,(f.inHeight+M-s)/h),l=s*I+n;for(let n=0;n<v;++n){let i=Math.max(0,Math.ceil((D-n)/g)),p=Math.min(f.outWidth,(f.inWidth+D-n)/g),u=n*j+l;for(let l=0;l<f.inChannels;++l){let c=l*w+u;for(let u=0;u<f.outChannels;++u){let d=0;for(let c=0;c<f.batchSize;++c){let f=c*A,x=c*S;for(let c=t;c<r;++c){let t=(e+c*m-O)*R+f,r=c*C+x;for(let e=a;e<o;++e){let a=(s+e*h-M)*P+t,o=e*N+r;for(let e=i;e<p;++e){let t=(n+e*g-D)*$+a,r=e*E+o;d+=F[t+l]*T[r+u]}}}}k[c+u]=d}}}}}return r.makeTensorInfo(b.shape,b.dtype,b.values)}let i={kernelName:a.Conv3DBackpropFilterV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1xcNw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"conv3DBackpropInputV2",()=>l),s.export(r,"conv3DBackpropInputV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{pad:i,strides:p,inputShape:u}=n;(0,o.assertNotComplex)([s],"conv3dBackpropInputV2");let c=a.util.computeStrides(s.shape),d=a.util.computeStrides(l.shape),f=a.backend_util.computeConv3DInfo(u,l.shape,p,1,i),m=new(0,a.TensorBuffer)(f.inShape,"float32"),h=m.values,[g,x,y,v]=m.strides,b=r.data.get(s.dataId).values,[k,_,I,j]=c,w=r.data.get(l.dataId).values,[T,S,C,N]=d,{batchSize:E,filterDepth:F,filterHeight:A,filterWidth:R,inChannels:P,inDepth:$,inHeight:O,inWidth:D,outChannels:M,outDepth:B,outHeight:G,outWidth:V,strideDepth:L,strideHeight:z,strideWidth:U}=f,W=F-1-f.padInfo.front,q=A-1-f.padInfo.top,H=R-1-f.padInfo.left;for(let e=0;e<E;++e)for(let t=0;t<P;++t)for(let r=0;r<$;++r){let n=r-W,s=Math.max(0,Math.ceil(n/L)),a=Math.min(B,(F+n)/L);for(let o=0;o<O;++o){let l=o-q,i=Math.max(0,Math.ceil(l/z)),p=Math.min(G,(A+l)/z);for(let u=0;u<D;++u){let c=u-H,d=Math.max(0,Math.ceil(c/U)),f=Math.min(V,(R+c)/U),m=0;for(let r=s;r<a;++r){let s=r*L-n;for(let n=i;n<p;++n){let a=n*z-l;for(let o=d;o<f;++o){let l=o*U-c,i=k*e+_*r+I*n+j*o,p=T*(F-1-s)+S*(A-1-a)+C*(R-1-l)+N*t;for(let e=0;e<M;++e)m+=b[i+e]*w[p+e]}}}h[g*e+x*r+y*o+v*u+t]=m}}}return r.makeTensorInfo(m.shape,m.dtype,m.values)}let i={kernelName:a.Conv3DBackpropInputV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1urUW":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cos",()=>o),s.export(r,"cosConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cos,e=>Math.cos(e)),l={kernelName:a.Cos,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"53PsY":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cosh",()=>o),s.export(r,"coshConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Cosh,e=>Math.cosh(e)),l={kernelName:a.Cosh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kAEaL:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cropAndResize",()=>o),s.export(r,"cropAndResizeConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{image:s,boxes:o,boxInd:l}=t,{cropSize:i,method:p,extrapolationValue:u}=n,[c,d,f,m]=s.shape,h=o.shape[0],[g,x]=i,y=(0,a.buffer)([h,g,x,m],"float32"),v=r.data.get(o.dataId).values,b=r.data.get(l.dataId).values,k=r.data.get(s.dataId).values,_=a.util.computeStrides(s.shape),I=a.util.computeStrides(y.shape);for(let e=0;e<h;e++){let t=4*e,r=v[t],n=v[t+1],s=v[t+2],a=v[t+3],o=b[e];if(o>=c)continue;let l=g>1?(s-r)*(d-1)/(g-1):0,i=x>1?(a-n)*(f-1)/(x-1):0;for(let t=0;t<g;t++){let c=g>1?r*(d-1)+t*l:.5*(r+s)*(d-1);if(c<0||c>d-1){for(let r=0;r<x;r++)for(let n=0;n<m;n++){let s=n+r*I[2]+t*I[1]+e*I[0];y.values[s]=u}continue}if("bilinear"===p){let r=Math.floor(c),s=Math.ceil(c),l=c-r;for(let p=0;p<x;p++){let c=x>1?n*(f-1)+p*i:.5*(n+a)*(f-1);if(c<0||c>f-1){for(let r=0;r<m;r++){let n=r+p*I[2]+t*I[1]+e*I[0];y.values[n]=u}continue}let d=Math.floor(c),h=Math.ceil(c),g=c-d;for(let n=0;n<m;n++){let a=n+d*_[2]+r*_[1]+o*_[0],i=k[a],u=k[a=n+h*_[2]+r*_[1]+o*_[0]],c=k[a=n+d*_[2]+s*_[1]+o*_[0]],f=k[a=n+h*_[2]+s*_[1]+o*_[0]],m=i+(u-i)*g,x=c+(f-c)*g;a=n+p*I[2]+t*I[1]+e*I[0],y.values[a]=m+(x-m)*l}}}else for(let r=0;r<x;++r){let s=x>1?n*(f-1)+r*i:.5*(n+a)*(f-1);if(s<0||s>f-1){for(let n=0;n<m;n++){let s=n+r*I[2]+t*I[1]+e*I[0];y.values[s]=u}continue}let l=Math.round(s),p=Math.round(c);for(let n=0;n<m;n++){let s=n+l*_[2]+p*_[1]+o*_[0],a=n+r*I[2]+t*I[1]+e*I[0];y.values[a]=k[s]}}}}return r.makeTensorInfo(y.shape,y.dtype,y.values)}let l={kernelName:a.CropAndResize,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kvF8I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumprod",()=>i),s.export(r,"cumprodConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:p,reverse:u}=n;(0,o.assertNotComplex)(s,"cumprod");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumprod in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let m=(0,a.upcastType)(d.dtype,"int32"),h=a.util.makeOnesTypedArray(a.util.sizeFromShape(d.shape),m),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],y=u?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;e<g.length;e+=x)for(let t=0;t<x;t++){let r=y(e,t);if(0===t)h[r]=p?1:g[r];else{let n=y(e,t-1);h[r]=p?g[n]*h[n]:g[r]*h[n]}}let v=r.makeTensorInfo(d.shape,m,h);if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,l.transpose)({inputs:{x:v},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(d),t}return v}let p={kernelName:a.Cumprod,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dLVlR:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"cumsum",()=>i),s.export(r,"cumsumConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Transpose");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:i,exclusive:p,reverse:u}=n;(0,o.assertNotComplex)(s,"cumsum");let c=a.backend_util.getAxesPermutation([i],s.shape.length),d=s;null!=c&&(d=(0,l.transpose)({inputs:{x:s},backend:r,attrs:{perm:c}}));let f=a.backend_util.getInnerMostAxes(1,s.shape.length)[0];if(f!==d.shape.length-1)throw Error(`backend.cumsum in CPU expects an inner-most axis=${d.shape.length-1} but got axis=${f}`);let m=(0,a.upcastType)(d.dtype,"int32"),h=a.util.makeZerosTypedArray(a.util.sizeFromShape(d.shape),m),g=r.data.get(d.dataId).values,x=d.shape[d.shape.length-1],y=u?(e,t)=>e+x-t-1:(e,t)=>e+t;for(let e=0;e<g.length;e+=x)for(let t=0;t<x;t++){let r=y(e,t);if(0===t)h[r]=p?0:g[r];else{let n=y(e,t-1);h[r]=p?g[n]+h[n]:g[r]+h[n]}}let v=r.makeTensorInfo(d.shape,m,h);if(null!=c){let e=a.backend_util.getUndoAxesPermutation(c),t=(0,l.transpose)({inputs:{x:v},backend:r,attrs:{perm:e}});return r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(d),t}return v}let p={kernelName:a.Cumsum,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ine8G:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"denseBincount",()=>l),s.export(r,"denseBincountConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Bincount_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,weights:a}=t,{size:l,binaryOutput:i}=n;if(1===s.shape.length){let e=r.data.get(s.dataId).values,t=r.data.get(a.dataId).values,n=(0,o.bincountImpl)(e,t,a.dtype,a.shape,l);return r.makeTensorInfo([l],a.dtype,n)}if(2===s.shape.length){let e=r.bufferSync(s),t=r.bufferSync(a),n=(0,o.bincountReduceImpl)(e,t,l,i);return r.makeTensorInfo(n.shape,a.dtype,n.values)}throw Error(`Error in denseBincount: input must be at most rank 2, but got rank${s.shape.length}.`)}let i={kernelName:a.DenseBincount,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Bincount_impl":"4T9ua","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fhce6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthToSpace",()=>o),s.export(r,"depthToSpaceConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockSize:o,dataFormat:l}=n;a.util.assert("NHWC"===l,()=>`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${l}`);let i=s.shape[0],p=s.shape[1],u=s.shape[2],c=s.shape[3],d=p*o,f=u*o,m=c/(o*o),h=r.data.get(s.dataId).values,g=new Float32Array(i*d*f*m),x=0;for(let e=0;e<i;++e)for(let t=0;t<d;++t){let r=Math.floor(t/o),n=t%o;for(let t=0;t<f;++t){let s=Math.floor(t/o),a=t%o,l=(n*o+a)*m;for(let t=0;t<m;++t){let n=t+l+c*(s+u*(r+p*e));g[x++]=h[n]}}}return r.makeTensorInfo([i,d,f,m],s.dtype,g)}let l={kernelName:a.DepthToSpace,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fRd5I:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNative",()=>l),s.export(r,"depthwiseConv2dNativeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:l}=t,{strides:i,pad:p,dilations:u,dimRoundingMode:c}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNative");let d=a.util.computeStrides(s.shape),f=a.util.computeStrides(l.shape),m=u;null==m&&(m=[1,1]),a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(i,m),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let h=a.backend_util.computeConv2DInfo(s.shape,l.shape,i,m,p,c,!0),{filterHeight:g,filterWidth:x,dilationHeight:y,dilationWidth:v,padInfo:b}=h,k=b.left,_=b.top,I=h.outChannels/h.inChannels,j=new(0,a.TensorBuffer)(h.outShape,s.dtype),w=r.data.get(s.dataId).values,T=r.data.get(l.dataId).values,S=j.values;for(let e=0;e<h.batchSize;++e){let t=e*d[0],r=e*j.strides[0];for(let e=0;e<h.outHeight;++e){let n=r+e*j.strides[1],s=e*h.strideHeight-_;for(let e=0;e<g;++e){let r=s+e*y;if(r<0||r>=h.inHeight)continue;let a=e*f[0],o=t+r*d[1];for(let e=0;e<h.outWidth;++e){let t=n+e*j.strides[2],r=e*h.strideWidth-k;for(let e=0;e<x;++e){let n=r+e*v;if(n<0||n>=h.inWidth)continue;let s=a+e*f[1],l=o+n*h.inChannels,i=t,p=s;for(let e=0;e<h.inChannels;++e){let t=w[l+e];for(let e=0;e<I;++e)S[i+e]+=t*T[p+e];i+=I,p+=I}}}}}}return r.makeTensorInfo(j.shape,j.dtype,j.values)}let i={kernelName:a.DepthwiseConv2dNative,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6DviO":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropFilter",()=>l),s.export(r,"depthwiseConv2dNativeBackpropFilterConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,dy:l}=t,{strides:i,dilations:p,pad:u,dimRoundingMode:c,filterShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2dNativeBackpropFilter");let f=a.backend_util.computeConv2DInfo(s.shape,d,i,p,u,c,!0),{strideHeight:m,strideWidth:h,filterHeight:g,filterWidth:x}=f,y=new(0,a.TensorBuffer)(f.filterShape,"float32"),v=f.padInfo.left,b=f.padInfo.top,k=f.outChannels/f.inChannels,_=r.data.get(s.dataId).values,I=new(0,a.TensorBuffer)(s.shape,s.dtype,_),j=r.data.get(l.dataId).values,w=new(0,a.TensorBuffer)(l.shape,l.dtype,j);for(let e=0;e<g;++e){let t=Math.max(0,Math.ceil((b-e)/m)),r=Math.min(f.outHeight,(f.inHeight+b-e)/m);for(let n=0;n<x;++n){let s=Math.max(0,Math.ceil((v-n)/h)),a=Math.min(f.outWidth,(f.inWidth+v-n)/h);for(let o=0;o<f.outChannels;++o){let l=Math.trunc(o/k),i=o%k,p=0;for(let i=0;i<f.batchSize;++i)for(let u=t;u<r;++u){let t=e+u*m-b;for(let e=s;e<a;++e){let r=n+e*h-v;p+=I.get(i,t,r,l)*w.get(i,u,e,o)}}y.set(p,e,n,l,i)}}}return r.makeTensorInfo(y.shape,y.dtype,y.values)}let i={kernelName:a.DepthwiseConv2dNativeBackpropFilter,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],c4eyP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"depthwiseConv2dNativeBackpropInput",()=>l),s.export(r,"depthwiseConv2dNativeBackpropInputConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,filter:l}=t,{strides:i,dilations:p,pad:u,dimRoundingMode:c,inputShape:d}=n;(0,o.assertNotComplex)([s,l],"depthwiseConv2DNativeBackpropInput");let f=a.util.computeStrides(s.shape),m=a.util.computeStrides(l.shape),h=a.backend_util.computeConv2DInfo(d,l.shape,i,p,u,c,!0),g=new(0,a.TensorBuffer)(h.inShape,"float32"),x=g.values,[y,v,b]=g.strides,k=r.data.get(s.dataId).values,[_,I,j]=f,w=r.data.get(l.dataId).values,[T,S,C]=m,{batchSize:N,filterHeight:E,filterWidth:F,inChannels:A,inHeight:R,inWidth:P,outChannels:$,outHeight:O,outWidth:D,strideHeight:M,strideWidth:B}=h,G=E-1-h.padInfo.top,V=F-1-h.padInfo.left,L=$/A;for(let e=0;e<N;++e)for(let t=0;t<A;++t)for(let r=0;r<R;++r){let n=r-G,s=Math.max(0,Math.ceil(n/M)),a=Math.min(O,(E+n)/M);for(let o=0;o<P;++o){let l=o-V,i=Math.max(0,Math.ceil(l/B)),p=Math.min(D,(F+l)/B),u=0;for(let r=s;r<a;++r){let s=r*M-n;for(let n=i;n<p;++n){let a=n*B-l,o=_*e+I*r+j*n,i=T*(E-1-s)+S*(F-1-a)+C*t;for(let e=0;e<L;++e)u+=k[o+(t*L+e)]*w[i+e]}}x[y*e+v*r+b*o+t]=u}}return r.makeTensorInfo(g.shape,g.dtype,g.values)}let i={kernelName:a.DepthwiseConv2dNativeBackpropInput,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jcgB7:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"diag",()=>o),s.export(r,"diagConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,backend:r}=e,{x:n}=t,s=a.util.sizeFromShape(n.shape),o=r.data.get(n.dataId).values,l=(0,a.buffer)([s,s],n.dtype),i=l.values;for(let e=0;e<o.length;e++)i[e*s+e]=o[e];let p=[...n.shape,...n.shape];return r.makeTensorInfo(p,l.dtype,l.values)}let l={kernelName:a.Diag,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gmcce:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2D,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s}=e,{strides:o,pad:l,dilations:i}=r,p=t.data.get(n.dataId).values,u=n.shape.length,c=t.data.get(s.dataId).values,d=s.shape.length,{batchSize:f,inHeight:m,inWidth:h,inChannels:g,outHeight:x,outWidth:y,padInfo:v,strideHeight:b,strideWidth:k,filterHeight:_,filterWidth:I,dilationHeight:j,dilationWidth:w,outShape:T}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,o,l,"NHWC",i),S=a.util.sizeFromShape(T),C=T.length,N=a.util.getArrayFromDType(n.dtype,S);for(let e=0;e<f;++e)for(let t=0;t<x;++t){let r=t*b-v.top;for(let o=0;o<y;++o){let l=o*k-v.left;for(let i=0;i<g;++i){let f=Number.MIN_SAFE_INTEGER;for(let t=0;t<_;++t){let o=r+t*j;if(o>=0&&o<m)for(let r=0;r<I;++r){let m=l+r*w;if(m>=0&&m<h){let l=a.util.locToIndex([e,o,m,i],u,a.util.computeStrides(n.shape)),h=a.util.locToIndex([t,r,i],d,a.util.computeStrides(s.shape)),g=p[l]+c[h];g>f&&(f=g)}}}N[a.util.locToIndex([e,t,o,i],C,a.util.computeStrides(T))]=f}}}return{dataId:t.write(a.util.toTypedArray(N,n.dtype),T,n.dtype),shape:T,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gUYzP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropFilterConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropFilter,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:p}=r,u=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:m,inChannels:h,outHeight:g,outWidth:x,padInfo:y,strideHeight:v,strideWidth:b,filterHeight:k,filterWidth:_,dilationHeight:I,dilationWidth:j,outShape:w}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",p);a.util.assert(o.rank===w.length,()=>`Error in ${a.Dilation2DBackpropFilter}, dy must have the same rank as output ${w.length}, but got ${o.rank}`);let T=a.util.toNestedArray(w,t.data.get(o.dataId).values),S=a.util.makeZerosNestedTypedArray(s.shape,s.dtype);for(let e=0;e<d;++e)for(let t=0;t<g;++t){let r=t*v-y.top;for(let n=0;n<x;++n){let s=n*b-y.left;for(let a=0;a<h;++a){let o=Number.MIN_SAFE_INTEGER,l=0,i=0;for(let t=0;t<k;++t){let n=r+t*I;if(n>=0&&n<f)for(let r=0;r<_;++r){let p=s+r*j;if(p>=0&&p<m){let s=u[e][n][p][a]+c[t][r][a];s>o&&(o=s,l=t,i=r)}}}S[l][i][a]+=T[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(S,n.dtype),s.shape,s.dtype),shape:s.shape,dtype:s.dtype}}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eKMol:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"dilation2DBackpropInputConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.Dilation2DBackpropInput,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:r})=>{let{x:n,filter:s,dy:o}=e,{strides:l,pad:i,dilations:p}=r,u=a.util.toNestedArray(n.shape,t.data.get(n.dataId).values),c=a.util.toNestedArray(s.shape,t.data.get(s.dataId).values),{batchSize:d,inHeight:f,inWidth:m,inChannels:h,outHeight:g,outWidth:x,padInfo:y,strideHeight:v,strideWidth:b,filterHeight:k,filterWidth:_,dilationHeight:I,dilationWidth:j,outShape:w}=a.backend_util.computeDilation2DInfo(n.shape,s.shape,l,i,"NHWC",p);a.util.assert(o.rank===w.length,()=>`Error in ${a.Dilation2DBackpropInput}, dy must have the same rank as output ${w.length}, but got ${o.rank}`);let T=a.util.toNestedArray(w,t.data.get(o.dataId).values),S=a.util.makeZerosNestedTypedArray(n.shape,n.dtype);for(let e=0;e<d;++e)for(let t=0;t<g;++t){let r=t*v-y.top;for(let n=0;n<x;++n){let s=n*b-y.left;for(let a=0;a<h;++a){let o=Number.MIN_SAFE_INTEGER,l=r<0?0:r,i=s<0?0:s;for(let t=0;t<k;++t){let n=r+t*I;if(n>=0&&n<f)for(let r=0;r<_;++r){let p=s+r*j;if(p>=0&&p<m){let s=u[e][n][p][a]+c[t][r][a];s>o&&(o=s,l=n,i=p)}}}S[e][l][i][a]+=T[e][t][n][a]}}}return{dataId:t.write(a.util.toTypedArray(S,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lMpJ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){let{inputs:t,backend:r,attrs:n}=e,{image:s}=t,{canvas:a,options:o}=n,{contextOptions:l,imageOptions:i}=o||{},p=(null==i?void 0:i.alpha)||1,u=(null==l?void 0:l.contextType)||"2d";if("2d"!==u)throw Error(`Context type ${l.contextType} is not supported by the CPU backend.`);let c=a.getContext(u,(null==l?void 0:l.contextAttributes)||{});if(null==c)throw Error(`Could not get the context with ${u} type.`);let[d,f]=s.shape.slice(0,2),m=2===s.shape.length?1:s.shape[2],h=r.data.get(s.dataId).values,g="float32"===s.dtype?255:1,x=new Uint8ClampedArray(f*d*4);for(let e=0;e<d*f;++e){let t=[0,0,0,255*p];for(let r=0;r<m;r++){let n=h[e*m+r];if("float32"===s.dtype){if(n<0||n>1)throw Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${n}.`)}else if("int32"===s.dtype&&(n<0||n>255))throw Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${n}.`);1===m?(t[0]=n*g,t[1]=n*g,t[2]=n*g):t[r]=n*g}let r=4*e;x[r+0]=Math.round(t[0]),x[r+1]=Math.round(t[1]),x[r+2]=Math.round(t[2]),x[r+3]=Math.round(t[3])}a.width=f,a.height=d;let y=new ImageData(x,f,d);return c.putImageData(y,0,0),s}s.defineInteropFlag(r),s.export(r,"draw",()=>a),s.export(r,"drawConfig",()=>o);let o={kernelName:e("@tensorflow/tfjs-core").Draw,backendName:"cpu",kernelFunc:a}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],egxq1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"einsum",()=>u),s.export(r,"einsumConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Multiply"),l=e("./Reshape"),i=e("./Sum"),p=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{equation:s}=n,{allDims:u,summedDims:c,idDims:d}=a.backend_util.decodeEinsumEquation(s,t.length);a.backend_util.checkEinsumDimSizes(u.length,d,t);let{path:f,steps:m}=a.backend_util.getEinsumComputePath(c,d),h=m.length,g=null,x=u.length,y=[];for(let e=0;e<h;++e){for(let n of m[e]){let e,{permutationIndices:s,expandDims:i}=a.backend_util.getEinsumPermutation(x,d[n]);a.backend_util.isIdentityPermutation(s)?e=t[n]:(e=(0,p.transpose)({inputs:{x:t[n]},backend:r,attrs:{perm:s}}),y.push(e));let u=e.shape.slice();for(let e=0;e<i.length;++e)u.splice(i[e],0,1);a.util.arraysEqual(e.shape,u)||(e=(0,l.reshape)({inputs:{x:e},backend:r,attrs:{shape:u}}),y.push(e)),null===g?g=e:(g=(0,o.multiply)({inputs:{a:e,b:g},backend:r}),y.push(g))}e<h-1&&(f[e]>=0&&(g=(0,i.sum)({inputs:{x:g},backend:r,attrs:{axis:f[e]-(u.length-x),keepDims:!1}}),y.push(g)),x--)}for(let e of y)e!==g&&r.disposeIntermediateTensorInfo(e);return g}let c={kernelName:a.Einsum,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","./Multiply":"blR5P","./Reshape":"94cVf","./Sum":"9Vc6r","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9Vc6r":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sum",()=>d),s.export(r,"sumConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/zeros_impl"),i=e("./Cast"),p=e("./Identity"),u=e("./Reshape"),c=e("./Transpose");function d(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:d}=r,{axis:f,keepDims:m}=s;(0,o.assertNotComplex)(d,"sum");let h=(t="bool"===d.dtype?(0,i.cast)({inputs:{x:d},backend:n,attrs:{dtype:"int32"}}):(0,p.identity)({inputs:{x:d},backend:n})).shape.length,g=a.util.parseAxisParam(f,t.shape),x=a.backend_util.getAxesPermutation(g,h),y=g,v=t;null!=x&&(v=(0,c.transpose)({inputs:{x:t},backend:n,attrs:{perm:x}}),y=a.backend_util.getInnerMostAxes(y.length,h)),a.backend_util.assertAxesAreInnerMostDims("sum",y,v.shape.length);let[b,k]=a.backend_util.computeOutAndReduceShapes(v.shape,y),_=a.backend_util.upcastType(v.dtype,"int32"),I=(0,l.zeros)(n,b,_),j=a.util.sizeFromShape(k),w=n.data.get(I.dataId).values,T=n.data.get(v.dataId).values;for(let e=0;e<w.length;++e){let t=e*j,r=0;for(let e=0;e<j;++e)r+=T[t+e];w[e]=r}if(m){let e=a.backend_util.expandShapeToKeepDim(I.shape,g),t=I;I=(0,u.reshape)({inputs:{x:I},backend:n,attrs:{shape:e}}),n.disposeIntermediateTensorInfo(t)}return n.disposeIntermediateTensorInfo(t),null!=x&&n.disposeIntermediateTensorInfo(v),I}let f={kernelName:a.Sum,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/zeros_impl":"eJune","./Cast":"hKQIs","./Identity":"ew2a3","./Reshape":"94cVf","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eMZVp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"eluGrad",()=>l),s.export(r,"eluGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{dy:n,y:s}=t;(0,o.assertNotComplex)([n,s],"eluGrad");let l=new Float32Array(a.util.sizeFromShape(s.shape)),i=r.data.get(s.dataId).values,p=r.data.get(n.dataId).values;for(let e=0;e<i.length;++e){let t=i[e];t>=0?l[e]=p[e]:l[e]=p[e]*(t+1)}return r.makeTensorInfo(s.shape,"float32",l)}let i={kernelName:a.EluGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7xSpz":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"erf",()=>f),s.export(r,"erfConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.ERF_P,i=a.backend_util.ERF_A1,p=a.backend_util.ERF_A2,u=a.backend_util.ERF_A3,c=a.backend_util.ERF_A4,d=a.backend_util.ERF_A5,f=(0,o.unaryKernelFunc)(a.Erf,e=>{let t=Math.sign(e),r=Math.abs(e),n=1/(1+l*r);return t*(1-((((d*n+c)*n+u)*n+p)*n+i)*n*Math.exp(-r*r))}),m={kernelName:a.Erf,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fRg5Q:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"expandDims",()=>l),s.export(r,"expandDimsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape");function l(e){let{inputs:t,backend:r,attrs:n}=e,{input:s}=t,{dim:l}=n,i=s.shape.length,p=s.shape.slice(),u=l;return l<0&&(a.util.assert(-(i+1)<=l,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+l+1),p.splice(u,0,1),(0,o.reshape)({inputs:{x:s},backend:r,attrs:{shape:p}})}let i={kernelName:a.ExpandDims,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i9oI8:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fft",()=>i),s.export(r,"fftConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],p=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),u=(0,o.fftBatch)(p,!1,r),c=(0,l.reshape)({inputs:{x:u},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(p),r.disposeIntermediateTensorInfo(u),c}let p={kernelName:a.FFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../utils/fft_utils":"ejHrd","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ejHrd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fftBatch",()=>g),s.export(r,"fftImpl",()=>x);var a=e("@tensorflow/tfjs-core"),o=e("../kernels/Add"),l=e("../kernels/Complex"),i=e("../kernels/Concat"),p=e("../kernels/Identity"),u=e("../kernels/Imag"),c=e("../kernels/Multiply"),d=e("../kernels/Real"),f=e("../kernels/RealDiv"),m=e("../kernels/Slice"),h=e("../kernels/Sub");function g(e,t,r){let n=e.shape,s=n[0],o=n[1],i=r.data.get(e.dataId),p=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,c=[s,o],d=a.util.sizeFromShape(c),f=a.util.getTypedArrayFromDType("float32",d),h=a.util.getTypedArrayFromDType("float32",d);for(let e=0;e<s;e++){let n=(0,m.slice)({inputs:{x:p},backend:r,attrs:{begin:[e,0],size:[1,o]}}),s=(0,m.slice)({inputs:{x:u},backend:r,attrs:{begin:[e,0],size:[1,o]}}),i=(0,l.complex)({inputs:{real:n,imag:s},backend:r}),{real:c,imag:d}=x(i,t,r),g=a.backend_util.mergeRealAndImagArrays(c,d);for(let t=0;t<o;t++){let r=a.backend_util.getComplexWithIndex(g,t);f[e*o+t]=r.real,h[e*o+t]=r.imag}r.disposeIntermediateTensorInfo(n),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(i)}let g=r.makeTensorInfo(c,"float32",f),y=r.makeTensorInfo(c,"float32",h),v=(0,l.complex)({inputs:{real:g,imag:y},backend:r});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(y),v}function x(e,t,r){var n;let s=a.util.sizeFromShape(e.shape),m=r.data.get(e.dataId),g=r.data.get(m.complexTensorInfos.real.dataId).values,x=r.data.get(m.complexTensorInfos.imag.dataId).values;if(((n=s)&n-1)==0){let n=function e(t,r,n,s,p){if(1===n)return{real:t,imag:r};let f=a.backend_util.mergeRealAndImagArrays(t,r),m=n/2,g=a.backend_util.complexWithEvenIndex(f),x=g.real,y=g.imag,v=[x.length],b=p.makeTensorInfo(v,"float32",x),k=p.makeTensorInfo(v,"float32",y),_=(0,l.complex)({inputs:{real:b,imag:k},backend:p}),I=a.backend_util.complexWithOddIndex(f),j=I.real,w=I.imag,T=[j.length],S=p.makeTensorInfo(T,"float32",j),C=p.makeTensorInfo(T,"float32",w),N=(0,l.complex)({inputs:{real:S,imag:C},backend:p}),E=e(x,y,m,s,p),F=E.real,A=E.imag,R=[F.length],P=p.makeTensorInfo(R,"float32",F),$=p.makeTensorInfo(R,"float32",A),O=(0,l.complex)({inputs:{real:P,imag:$},backend:p}),D=e(j,w,m,s,p),M=D.real,B=D.imag,G=[M.length],V=p.makeTensorInfo(G,"float32",M),L=p.makeTensorInfo(G,"float32",B),z=(0,l.complex)({inputs:{real:V,imag:L},backend:p}),U=a.backend_util.exponents(n,s),W=[U.real.length],q=p.makeTensorInfo(W,"float32",U.real),H=p.makeTensorInfo(W,"float32",U.imag),K=(0,l.complex)({inputs:{real:q,imag:H},backend:p}),X=(0,c.multiply)({inputs:{a:K,b:z},backend:p}),Z=(0,o.add)({inputs:{a:O,b:X},backend:p}),Y=(0,h.sub)({inputs:{a:O,b:X},backend:p}),Q=(0,d.real)({inputs:{input:Z},backend:p}),J=(0,d.real)({inputs:{input:Y},backend:p}),ee=(0,u.imag)({inputs:{input:Z},backend:p}),et=(0,u.imag)({inputs:{input:Y},backend:p}),er=(0,i.concat)({inputs:[Q,J],backend:p,attrs:{axis:0}}),en=(0,i.concat)({inputs:[ee,et],backend:p,attrs:{axis:0}}),es=p.data.get(er.dataId).values,ea=p.data.get(en.dataId).values;return p.disposeIntermediateTensorInfo(b),p.disposeIntermediateTensorInfo(k),p.disposeIntermediateTensorInfo(_),p.disposeIntermediateTensorInfo(S),p.disposeIntermediateTensorInfo(C),p.disposeIntermediateTensorInfo(N),p.disposeIntermediateTensorInfo(P),p.disposeIntermediateTensorInfo($),p.disposeIntermediateTensorInfo(O),p.disposeIntermediateTensorInfo(V),p.disposeIntermediateTensorInfo(L),p.disposeIntermediateTensorInfo(z),p.disposeIntermediateTensorInfo(q),p.disposeIntermediateTensorInfo(H),p.disposeIntermediateTensorInfo(K),p.disposeIntermediateTensorInfo(X),p.disposeIntermediateTensorInfo(Z),p.disposeIntermediateTensorInfo(Y),p.disposeIntermediateTensorInfo(Q),p.disposeIntermediateTensorInfo(ee),p.disposeIntermediateTensorInfo(J),p.disposeIntermediateTensorInfo(et),p.disposeIntermediateTensorInfo(er),p.disposeIntermediateTensorInfo(en),{real:es,imag:ea}}(g,x,s,t,r),m=[e.shape[0],e.shape[1]];if(t){let e=r.makeTensorInfo(m,"float32",n.real),t=r.makeTensorInfo(m,"float32",n.imag),o=r.makeTensorInfo([],"float32",a.util.createScalarValue(s,"float32")),l=(0,p.identity)({inputs:{x:o},backend:r}),i=f.realDivConfig.kernelFunc({inputs:{a:e,b:o},backend:r}),u=f.realDivConfig.kernelFunc({inputs:{a:t,b:l},backend:r}),c=r.data.get(i.dataId).values,d=r.data.get(u.dataId).values;return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(o),r.disposeIntermediateTensorInfo(l),r.disposeIntermediateTensorInfo(i),r.disposeIntermediateTensorInfo(u),{real:c,imag:d}}return n}{let e=function(e,t,r){let n=new Float32Array(2*t);for(let s=0;s<t;s++){let o=0,l=0;for(let n=0;n<t;n++){let i=a.backend_util.exponent(s*n,t,r),p=a.backend_util.getComplexWithIndex(e,n);o+=p.real*i.real-p.imag*i.imag,l+=p.real*i.imag+p.imag*i.real}r&&(o/=t,l/=t),a.backend_util.assignToTypedArray(n,o,l,s)}return n}(a.backend_util.mergeRealAndImagArrays(g,x),s,t);return a.backend_util.splitRealAndImagArrays(e)}}},{"@tensorflow/tfjs-core":"2Gtps","../kernels/Add":"bAFRc","../kernels/Complex":"2fiFF","../kernels/Concat":"cq91T","../kernels/Identity":"ew2a3","../kernels/Imag":"4Od8v","../kernels/Multiply":"blR5P","../kernels/Real":"fBBrK","../kernels/RealDiv":"l0XIp","../kernels/Slice":"aVrpO","../kernels/Sub":"kDL1v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],l0XIp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"realDivImpl",()=>i),s.export(r,"div",()=>p),s.export(r,"realDivConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e/t),p=(0,l.binaryKernelFunc)(a.RealDiv,i),u={kernelName:a.RealDiv,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8zGrw":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fill",()=>o),s.export(r,"fillConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){var t,r;let{backend:n,attrs:s}=e,{shape:o,value:l,dtype:i}=s,p=i||a.util.inferDtype(l),u=a.util.getArrayFromDType(p,a.util.sizeFromShape(o));return t=u,r=l,t.fill(r),n.makeTensorInfo(o,p,u)}let l={kernelName:a.Fill,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3COuK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"flipLeftRightConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.FlipLeftRight,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,s=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[o,l,i,p]=n.shape,u=r.data.get(n.dataId).values;for(let e=0;e<o;e++){let t=e*i*l*p;for(let e=0;e<l;e++){let r=i*p*e;for(let e=0;e<i;e++){let n=e*p;for(let a=0;a<p;a++){let o=Math.round(i-e-1),l=t+r+n+a,c=u[l];o>=0&&o<i&&(c=u[t+r+o*p+a]),s[l]=c}}}}return{dataId:r.write(s,n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2tKGZ":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedConv2D",()=>u),s.export(r,"fusedConv2DConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./Conv2D"),p=e("./Reshape");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:u,preluActivationWeights:c}=t,{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g,activation:x,leakyreluAlpha:y}=n,v=(0,i.conv2D)({inputs:{x:s,filter:a},backend:r,attrs:{strides:d,pad:f,dataFormat:m,dilations:h,dimRoundingMode:g}});if(u){let e=v;if("NCHW"===m&&1===u.shape.length&&1!==u.shape[0]){let e=(0,p.reshape)({inputs:{x:u},backend:r,attrs:{shape:[u.shape[0],1,1]}});v=(0,l.add)({inputs:{a:v,b:e},backend:r}),r.disposeIntermediateTensorInfo(e)}else v=(0,l.add)({inputs:{a:v,b:u},backend:r});r.disposeIntermediateTensorInfo(e)}if(x){let e=v;if("NCHW"===m&&"prelu"===x&&1===c.shape.length&&1!==c.shape[0]){let e=(0,p.reshape)({inputs:{x:c},backend:r,attrs:{shape:[c.shape[0],1,1]}});v=(0,o.applyActivation)(r,v,x,e,y),r.disposeIntermediateTensorInfo(e)}else v=(0,o.applyActivation)(r,v,x,c,y);r.disposeIntermediateTensorInfo(e)}return v}let c={kernelName:a.FusedConv2D,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../utils/fused_utils":"7F9eY","./Add":"bAFRc","./Conv2D":"4zWLq","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3Effs":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"fusedDepthwiseConv2D",()=>p),s.export(r,"fusedDepthwiseConv2DConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fused_utils"),l=e("./Add"),i=e("./DepthwiseConv2dNative");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,filter:a,bias:p,preluActivationWeights:u}=t,{strides:c,pad:d,dataFormat:f,dilations:m,dimRoundingMode:h,activation:g,leakyreluAlpha:x}=n,y=(0,i.depthwiseConv2dNative)({inputs:{x:s,filter:a},backend:r,attrs:{strides:c,pad:d,dataFormat:f,dilations:m,dimRoundingMode:h}});if(p){let e=y;y=(0,l.add)({inputs:{a:y,b:p},backend:r}),r.disposeIntermediateTensorInfo(e)}if(g){let e=y;y=(0,o.applyActivation)(r,y,g,u,x),r.disposeIntermediateTensorInfo(e)}return y}let u={kernelName:a.FusedDepthwiseConv2D,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/fused_utils":"7F9eY","./Add":"bAFRc","./DepthwiseConv2dNative":"fRd5I","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fbTOY:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherNd",()=>l),s.export(r,"gatherNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./GatherNd_Impl");function l(e){let{inputs:t,backend:r}=e,{params:n,indices:s}=t,l=a.util.sizeFromShape(n.shape),i=s.shape,p=i[i.length-1],[u,c,d,f]=a.backend_util.prepareAndValidate(n,s);if(0===c)return r.makeTensorInfo(u,n.dtype,[]);let m=r.data.get(s.dataId).values,h=r.bufferSync(n),g=(0,o.gatherNdImpl)(m,h,n.dtype,c,p,d,f,n.shape,l);return r.makeTensorInfo(u,n.dtype,g.values)}let i={kernelName:a.GatherNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./GatherNd_Impl":"bNWEc","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4V15q":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"gatherV2",()=>p),s.export(r,"gatherV2Config",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./GatherV2_impl"),i=e("./Reshape");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,indices:p}=t,{axis:u,batchDims:c}=n;(0,o.assertNotComplex)([s,p],"gatherV2");let d=a.util.parseAxisParam(u,s.shape)[0],f=r.data.get(p.dataId).values,m=s.shape[d];for(let e=0;e<f.length;++e){let t=f[e];a.util.assert(t<=m-1&&t>=0,()=>`GatherV2: the index value ${t} is not in [0, ${m-1}]`)}let h=c;null==c&&(h=0);let g=a.util.sizeFromShape(p.shape),x=a.backend_util.segment_util.collectGatherOpShapeInfo(s,p,d,h),y=(0,i.reshape)({inputs:{x:s},backend:r,attrs:{shape:[x.batchSize,x.outerSize,x.dimSize,x.sliceSize]}}),v=(0,i.reshape)({inputs:{x:p},backend:r,attrs:{shape:[x.batchSize,g/x.batchSize]}}),b=[x.batchSize,x.outerSize,g/x.batchSize,x.sliceSize],k=r.bufferSync(v),_=r.bufferSync(y),I=(0,l.gatherV2Impl)(_,k,b);return r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(v),r.makeTensorInfo(x.outputShape,I.dtype,I.values)}let u={kernelName:a.GatherV2,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./GatherV2_impl":"4jIrE","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2Mfch":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"ifft",()=>i),s.export(r,"ifftConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/fft_utils"),l=e("./Reshape");function i(e){let{inputs:t,backend:r}=e,{input:n}=t,s=a.util.sizeFromShape(n.shape),i=n.shape[n.shape.length-1],p=(0,l.reshape)({inputs:{x:n},backend:r,attrs:{shape:[s/i,i]}}),u=(0,o.fftBatch)(p,!0,r),c=(0,l.reshape)({inputs:{x:u},backend:r,attrs:{shape:n.shape}});return r.disposeIntermediateTensorInfo(p),r.disposeIntermediateTensorInfo(u),c}let p={kernelName:a.IFFT,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../utils/fft_utils":"ejHrd","./Reshape":"94cVf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bzcHc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isFinite",()=>o),s.export(r,"isFiniteConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsFinite,e=>+!!Number.isFinite(e),"bool"),l={kernelName:a.IsFinite,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aTLYv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isInf",()=>o),s.export(r,"isInfConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsInf,e=>+(Math.abs(e)===1/0),"bool"),l={kernelName:a.IsInf,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gHpOo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"isNaN",()=>o),s.export(r,"isNaNConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.IsNan,e=>+!!Number.isNaN(e),"bool"),l={kernelName:a.IsNan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9m7fp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"linSpace",()=>l),s.export(r,"linSpaceConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./LinSpace_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,num:a}=r,l=(0,o.linSpaceImpl)(n,s,a);return t.makeTensorInfo([l.length],"float32",l)}let i={kernelName:a.LinSpace,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./LinSpace_impl":"a8fqQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ixzUq:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"log1p",()=>o),s.export(r,"log1pConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Log1p,e=>Math.log1p(e)),l={kernelName:a.Log1p,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],OUTi1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalAndImpl",()=>i),s.export(r,"logicalAnd",()=>p),s.export(r,"logicalAndConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e&&t),p=(0,l.binaryKernelFunc)(a.LogicalAnd,i,null,"bool"),u={kernelName:a.LogicalAnd,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2si92":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalNot",()=>o),s.export(r,"logicalNotConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.LogicalNot,e=>+!e,"bool"),l={kernelName:a.LogicalNot,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hO7A3:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"logicalOrImpl",()=>i),s.export(r,"logicalOr",()=>p),s.export(r,"logicalOrConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>e||t),p=(0,l.binaryKernelFunc)(a.LogicalOr,i,null,"bool"),u={kernelName:a.LogicalOr,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],zdv2n:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lRN",()=>l),s.export(r,"LRNConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{depthRadius:l,bias:i,alpha:p,beta:u}=n;(0,o.assertNotComplex)(s,"LRN");let c=s.shape[3],d=c-1,f=r.data.get(s.dataId).values,m=a.util.sizeFromShape(s.shape),h=new Float32Array(m);for(let e=0;e<m;e++){let t=function(e){let t=e%c,r=e-t+Math.max(0,t-l),n=e-t+Math.min(t+l,d),s=0;for(;r<=n;r++){let e=f[r];s+=e*e}return s}(e),r=f[e]*Math.pow(i+p*t,-u);h[e]=r}return r.makeTensorInfo(s.shape,s.dtype,h)}let i={kernelName:a.LRN,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ePwSb:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"lRNGrad",()=>l),s.export(r,"LRNGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,y:l,dy:i}=t,{depthRadius:p,bias:u,alpha:c,beta:d}=n;(0,o.assertNotComplex)(i,"LRNGrad");let f=a.util.sizeFromShape(i.shape),m=i.shape[3],h=r.data.get(i.dataId).values,g=r.data.get(s.dataId).values,x=r.data.get(l.dataId).values,y=new Float32Array(f);for(let e=0;e<f;e++){let t=e%m,r=e-t+Math.max(0,t-p),n=e-t+Math.min(m,t+p+1),s=0;for(let e=r;e<n;e++)s+=Math.pow(g[e],2);s=c*s+u;for(let t=r;t<n;t++){let r=-2*c*d*g[t]*x[e]/s;e===t&&(r+=Math.pow(s,-d)),r*=h[e],y[t]+=r}}return r.makeTensorInfo(i.shape,s.dtype,y)}let i={kernelName:a.LRNGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"19KxN":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"max",()=>p),s.export(r,"maxConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Max_impl"),i=e("./Transpose_impl");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reductionIndices:p,keepDims:u}=n,c=s.shape,d=c.length,f=a.util.parseAxisParam(p,c),m=f,h=a.backend_util.getAxesPermutation(m,d),g=r.data.get(s.dataId).values;if(null!=h){let e=Array(d);for(let t=0;t<e.length;t++)e[t]=c[h[t]];g=(0,i.transposeImpl)(g,c,s.dtype,h,e),m=a.backend_util.getInnerMostAxes(m.length,d),c=e}(0,o.assertNotComplex)(s,"max"),a.backend_util.assertAxesAreInnerMostDims("max",m,d);let[x,y]=a.backend_util.computeOutAndReduceShapes(c,m),v=a.util.sizeFromShape(y),b=(0,l.maxImpl)(g,v,x,s.dtype),k=r.write(b,x,s.dtype),_=x;return u&&(_=a.backend_util.expandShapeToKeepDim(x,f)),{dataId:k,shape:_,dtype:s.dtype}}let u={kernelName:a.Max,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Max_impl":"bmw5Z","./Transpose_impl":"1YEcI","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kUIKv:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool",()=>p),s.export(r,"maxPoolConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils"),i=e("./Identity");function p(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:p}=r;(0,o.assertNotComplex)(p,"maxPool");let{filterSize:u,strides:c,pad:d,dimRoundingMode:f}=s;a.util.assert(a.backend_util.eitherStridesOrDilationsAreOne(c,1),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${c} and dilations '1'`);let m=a.backend_util.computePool2DInfo(p.shape,u,c,1,d,f);if(1===m.filterWidth&&1===m.filterHeight&&a.util.arraysEqual(m.inShape,m.outShape))t=(0,i.identity)({inputs:{x:p},backend:n});else{let e=n.data.get(p.dataId).values,r=a.util.computeStrides(p.shape),s=(0,l.pool)(e,p.shape,p.dtype,r,m,"max");t=n.makeTensorInfo(m.outShape,p.dtype,s.values)}return t}let u={kernelName:a.MaxPool,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/pool_utils":"iWg1v","./Identity":"ew2a3","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"21jus":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3D",()=>i),s.export(r,"maxPool3DConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{filterSize:i,strides:p,pad:u,dimRoundingMode:c,dataFormat:d}=n;(0,o.assertNotComplex)(s,"maxPool3d");let f=a.backend_util.computePool3DInfo(s.shape,i,p,1,u,c,d),m=r.data.get(s.dataId).values,h=(0,l.pool3d)(m,s.shape,s.dtype,a.util.computeStrides(s.shape),f,"max");return r.makeTensorInfo(h.shape,"float32",h.values)}let p={kernelName:a.MaxPool3D,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/pool_utils":"iWg1v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],f4E9l:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPool3DGrad",()=>i),s.export(r,"maxPool3DGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i}=t,{filterSize:p,strides:u,pad:c,dimRoundingMode:d}=n;(0,o.assertNotComplex)([s,i],"maxPool3DGrad");let f=a.backend_util.computePool3DInfo(i.shape,p,u,1,c,d),m=r.bufferSync(i),h=(0,l.maxPool3dPositions)(m,f),g=f.strideDepth,x=f.strideHeight,y=f.strideWidth,v=f.dilationDepth,b=f.dilationHeight,k=f.dilationWidth,_=f.effectiveFilterDepth,I=f.effectiveFilterHeight,j=f.effectiveFilterWidth,w=_-1-f.padInfo.front,T=j-1-f.padInfo.left,S=I-1-f.padInfo.top,C=(0,a.buffer)(i.shape,"float32"),N=r.bufferSync(s);for(let e=0;e<f.batchSize;++e)for(let t=0;t<f.inChannels;++t)for(let r=0;r<f.inDepth;++r)for(let n=0;n<f.inHeight;++n)for(let s=0;s<f.inWidth;++s){let a=r-w,o=n-S,l=s-T,i=0;for(let r=0;r<_;r+=v){let n=(a+r)/g;if(!(n<0)&&!(n>=f.outDepth)&&Math.floor(n)===n)for(let s=0;s<I;s+=b){let a=(o+s)/x;if(!(a<0)&&!(a>=f.outHeight)&&Math.floor(a)===a)for(let o=0;o<j;o+=k){let p=(l+o)/y;if(p<0||p>=f.outWidth||Math.floor(p)!==p)continue;let u=+(_*I*j-1-h.get(e,n,a,p,t)===r*I*j+s*j+o);0!==u&&(i+=N.get(e,n,a,p,t)*u)}}}C.set(i,e,r,n,s,t)}return r.makeTensorInfo(C.shape,C.dtype,C.values)}let p={kernelName:a.MaxPool3DGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/pool_utils":"iWg1v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],koGS6:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolGrad",()=>i),s.export(r,"maxPoolGradConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("../utils/pool_utils");function i(e){let{inputs:t,backend:r,attrs:n}=e,{dy:s,input:i,output:p}=t;(0,o.assertNotComplex)([i,p],"maxPoolGrad");let{filterSize:u,strides:c,pad:d,dimRoundingMode:f}=n,m=a.backend_util.computePool2DInfo(i.shape,u,c,1,d,f),h=r.data.get(i.dataId).values,g=(0,a.buffer)(m.outShape,i.dtype,(0,l.maxPoolPositions)(h,i.shape,i.dtype,m).values),x=m.strideHeight,y=m.strideWidth,v=m.dilationHeight,b=m.dilationWidth,k=m.effectiveFilterHeight,_=m.effectiveFilterWidth,I=_-1-m.padInfo.left,j=k-1-m.padInfo.top,w=(0,a.buffer)(i.shape,"float32"),T=r.data.get(s.dataId).values,S=(0,a.buffer)(s.shape,"float32",T);for(let e=0;e<m.batchSize;++e)for(let t=0;t<m.inChannels;++t)for(let r=0;r<m.inHeight;++r)for(let n=0;n<m.inWidth;++n){let s=r-j,a=n-I,o=0;for(let r=0;r<k;r+=v){let n=(s+r)/x;if(!(n<0)&&!(n>=m.outHeight)&&Math.floor(n)===n)for(let s=0;s<_;s+=b){let l=(a+s)/y;if(l<0||l>=m.outWidth||Math.floor(l)!==l)continue;let i=+(k*_-1-g.get(e,n,l,t)===r*_+s);0!==i&&(o+=S.get(e,n,l,t)*i)}}w.set(o,e,r,n,t)}return r.makeTensorInfo(w.shape,w.dtype,w.values)}let p={kernelName:a.MaxPoolGrad,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","../utils/pool_utils":"iWg1v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dTuNm:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./MaxPoolWithArgmax_impl");let i={kernelName:a.MaxPoolWithArgmax,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{x:n}=e,{filterSize:s,strides:i,pad:p,includeBatchInIndex:u}=t;(0,o.assertNotComplex)(n,"MaxPoolWithArgmax");let c=r.data.get(n.dataId).values,d=a.backend_util.computePool2DInfo(n.shape,s,i,[1,1],p),[f,m]=(0,l.maxPoolWithArgmaxImpl)(c,n.shape,n.dtype,u,d),h=r.write(f,d.outShape,n.dtype),g=r.write(m,d.outShape,n.dtype);return[{dataId:h,shape:d.outShape,dtype:n.dtype},{dataId:g,shape:d.outShape,dtype:"int32"}]}}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./MaxPoolWithArgmax_impl":"fx7xn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fx7xn:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"maxPoolWithArgmaxImpl",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../utils/pool_utils");function l(e,t,r,n,s){let l=a.util.computeStrides(t),i=(0,o.pool)(e,t,r,l,s,"max"),p=(0,o.maxPoolPositions)(e,t,r,s,!0,n);return[i.values,p.values]}},{"@tensorflow/tfjs-core":"2Gtps","../utils/pool_utils":"iWg1v","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fmev5:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mean",()=>p),s.export(r,"meanConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("./Cast"),l=e("./RealDiv"),i=e("./Sum");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:p,keepDims:u}=n,c=a.util.parseAxisParam(p,s.shape),d=a.backend_util.computeOutAndReduceShapes(s.shape,c)[1],f=a.util.sizeFromShape(d),m=[],h=r.makeTensorInfo([],"float32",new Float32Array([f]));m.push(h);let g=(0,o.cast)({inputs:{x:s},backend:r,attrs:{dtype:"float32"}});m.push(g);let x=(0,l.div)({inputs:{a:g,b:h},backend:r});m.push(x);let y=(0,i.sum)({inputs:{x:x},backend:r,attrs:{axis:p,keepDims:u}});return m.forEach(e=>r.disposeIntermediateTensorInfo(e)),y}let u={kernelName:a.Mean,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","./Cast":"hKQIs","./RealDiv":"l0XIp","./Sum":"9Vc6r","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9osZy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"min",()=>p),s.export(r,"minConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Transpose");function p(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{axis:p,keepDims:u}=n;(0,o.assertNotComplex)(s,"min");let c=a.util.parseAxisParam(p,s.shape),d=c,f=a.backend_util.getAxesPermutation(d,s.shape.length),m=s;null!=f&&(m=(0,i.transpose)({inputs:{x:s},backend:r,attrs:{perm:f}}),d=a.backend_util.getInnerMostAxes(d.length,s.shape.length)),a.backend_util.assertAxesAreInnerMostDims("min",d,m.shape.length);let[h,g]=a.backend_util.computeOutAndReduceShapes(m.shape,d),x=a.util.sizeFromShape(g),y=a.util.makeZerosTypedArray(a.util.sizeFromShape(h),m.dtype),v=r.data.get(m.dataId).values;for(let e=0;e<y.length;++e){let t=e*x,r=v[t];for(let e=0;e<x;++e){let n=v[t+e];(Number.isNaN(n)||n<r)&&(r=n)}y[e]=r}null!=f&&r.disposeIntermediateTensorInfo(m);let b=r.makeTensorInfo(h,m.dtype,y);if(u){let e=a.backend_util.expandShapeToKeepDim(h,c),t=(0,l.reshape)({inputs:{x:b},backend:r,attrs:{shape:e}});return r.disposeIntermediateTensorInfo(b),t}return b}let u={kernelName:a.Min,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Reshape":"94cVf","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1lNW2":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"mirrorPad",()=>l),s.export(r,"mirrorPadConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,mode:i}=n;(0,o.assertNotComplex)(s,"mirrorPad");let p=l.map((e,t)=>e[0]+s.shape[t]+e[1]),u=l.map(e=>e[0]),c=l.map((e,t)=>e[0]+s.shape[t]),d=+("reflect"!==i),f=r.data.get(s.dataId).values,m=s.shape.length,h=a.util.computeStrides(s.shape),g=a.util.sizeFromShape(p),x=p.length,y=a.util.computeStrides(p),v=a.util.getTypedArrayFromDType(s.dtype,g);for(let e=0;e<g;e++){let t=a.util.indexToLoc(e,x,y);for(let e=0;e<x;e++)t[e]<u[e]?t[e]=2*u[e]-t[e]-d:t[e]>=c[e]&&(t[e]=(c[e]-1)*2-t[e]+d);t=t.map((e,t)=>e-u[t]);let r=a.util.locToIndex(t,m,h);v[e]=f[r]}return{dataId:r.write(v,p,s.dtype),shape:p,dtype:s.dtype}}let i={kernelName:a.MirrorPad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hMMNZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"modImpl",()=>i),s.export(r,"mod",()=>p),s.export(r,"modConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>{let r=e%t;return e<0&&t<0||e>=0&&t>=0?r:(r+t)%t}),p=(0,l.binaryKernelFunc)(a.Mod,i),u={kernelName:a.Mod,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],iaROS:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"multinomial",()=>p),s.export(r,"multinomialConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("seedrandom"),l=e("../cpu_util"),i=e("./Softmax");function p(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{numSamples:p,seed:u,normalized:c}=n;(0,l.assertNotComplex)(s,"multinomial");let d=c?s:(0,i.softmax)({inputs:{logits:s},backend:r,attrs:{dim:-1}}),f=d.shape[0],m=d.shape[1],h=r.data.get(d.dataId).values,g=[f,p],x=a.util.makeZerosTypedArray(a.util.sizeFromShape(g),"int32");for(let e=0;e<f;++e){let t=e*m,r=new Float32Array(m-1);r[0]=h[t];for(let e=1;e<r.length;++e)r[e]=r[e-1]+h[t+e];let n=o.alea(u.toString()),s=e*p;for(let e=0;e<p;++e){let t=n();x[s+e]=r.length;for(let n=0;n<r.length;n++)if(t<r[n]){x[s+e]=n;break}}}return c||r.disposeIntermediateTensorInfo(d),r.makeTensorInfo(g,"int32",x)}let u={kernelName:a.Multinomial,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps",seedrandom:"4LDBU","../cpu_util":"8IIbB","./Softmax":"3QD6z","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3QD6z":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softmax",()=>d),s.export(r,"softmaxConfig",()=>f);var a=e("@tensorflow/tfjs-core"),o=e("./Exp"),l=e("./Max"),i=e("./RealDiv"),p=e("./Reshape"),u=e("./Sub"),c=e("./Sum");function d(e){let{inputs:t,backend:r,attrs:n}=e,{logits:s}=t,{dim:d}=n,f=s.shape.length,m=d;if(-1===m&&(m=f-1),m!==f-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${f} and dim was ${m}`);let h=a.util.parseAxisParam([m],s.shape),g=(0,l.max)({inputs:{x:s},backend:r,attrs:{reductionIndices:h,keepDims:!1}}),x=a.backend_util.expandShapeToKeepDim(g.shape,h),y=(0,p.reshape)({inputs:{x:g},backend:r,attrs:{shape:x}}),v=(0,u.sub)({inputs:{a:s,b:y},backend:r}),b=(0,o.exp)({inputs:{x:v},backend:r}),k=(0,c.sum)({inputs:{x:b},backend:r,attrs:{axis:h,keepDims:!1}}),_=(0,p.reshape)({inputs:{x:k},backend:r,attrs:{shape:x}}),I=(0,i.div)({inputs:{a:b,b:_},backend:r});return r.disposeIntermediateTensorInfo(g),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(v),r.disposeIntermediateTensorInfo(b),r.disposeIntermediateTensorInfo(k),r.disposeIntermediateTensorInfo(_),I}let f={kernelName:a.Softmax,backendName:"cpu",kernelFunc:d}},{"@tensorflow/tfjs-core":"2Gtps","./Exp":"9ub2a","./Max":"19KxN","./RealDiv":"l0XIp","./Reshape":"94cVf","./Sub":"kDL1v","./Sum":"9Vc6r","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h85ni:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV3",()=>i),s.export(r,"nonMaxSuppressionV3Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV3Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:p,scoreThreshold:u}=n;(0,o.assertNotComplex)(s,"NonMaxSuppression");let{selectedIndices:c}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,p,u);return r.makeTensorInfo([c.length],"int32",new Int32Array(c))}let p={kernelName:a.NonMaxSuppressionV3,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],faKbd:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV4",()=>i),s.export(r,"nonMaxSuppressionV4Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV4Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:p,scoreThreshold:u,padToMaxOutputSize:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionPadded");let{selectedIndices:d,validOutputs:f}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,p,u,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([],"int32",new Int32Array([f]))]}let p={kernelName:a.NonMaxSuppressionV4,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hCHZZ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"nonMaxSuppressionV5",()=>i),s.export(r,"nonMaxSuppressionV5Config",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l=a.kernel_impls.nonMaxSuppressionV5Impl;function i(e){let{inputs:t,backend:r,attrs:n}=e,{boxes:s,scores:a}=t,{maxOutputSize:i,iouThreshold:p,scoreThreshold:u,softNmsSigma:c}=n;(0,o.assertNotComplex)(s,"NonMaxSuppressionWithScore");let{selectedIndices:d,selectedScores:f}=l(r.data.get(s.dataId).values,r.data.get(a.dataId).values,i,p,u,c);return[r.makeTensorInfo([d.length],"int32",new Int32Array(d)),r.makeTensorInfo([f.length],"float32",new Float32Array(f))]}let p={kernelName:a.NonMaxSuppressionV5,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9plCE":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"oneHot",()=>l),s.export(r,"oneHotConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s}=t,{dtype:l,depth:i,onValue:p,offValue:u}=n;(0,o.assertNotComplex)(s,"oneHot");let c=a.util.sizeFromShape(s.shape),d=new Float32Array(c*i);d.fill(u);let f=r.data.get(s.dataId).values;for(let e=0;e<c;++e)f[e]>=0&&f[e]<i&&(d[e*i+f[e]]=p);return r.makeTensorInfo([...s.shape,i],l,d)}let i={kernelName:a.OneHot,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kpDJA:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"onesLike",()=>c),s.export(r,"onesLikeConfig",()=>d);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),p=e("./Real"),u=e("./ZerosLike");function c(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("onesLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:1,dtype:n.dtype}});{let e=(0,p.real)({inputs:{input:n},backend:r}),t=c({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=(0,u.zerosLike)({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let d={kernelName:a.OnesLike,backendName:"cpu",kernelFunc:c}},{"@tensorflow/tfjs-core":"2Gtps","./Complex":"2fiFF","./Fill":"8zGrw","./Imag":"4Od8v","./Real":"fBBrK","./ZerosLike":"fmLIH","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fmLIH:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"zerosLike",()=>u),s.export(r,"zerosLikeConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("./Complex"),l=e("./Fill"),i=e("./Imag"),p=e("./Real");function u(e){let{inputs:t,backend:r}=e,{x:n}=t;if("string"===n.dtype)throw Error("zerosLike is not supported for string tensors");if("complex64"!==n.dtype)return(0,l.fill)({backend:r,attrs:{shape:n.shape,value:0,dtype:n.dtype}});{let e=(0,p.real)({inputs:{input:n},backend:r}),t=u({inputs:{x:e},backend:r}),s=(0,i.imag)({inputs:{input:n},backend:r}),a=u({inputs:{x:s},backend:r}),l=(0,o.complex)({inputs:{real:t,imag:a},backend:r});return r.disposeIntermediateTensorInfo(e),r.disposeIntermediateTensorInfo(t),r.disposeIntermediateTensorInfo(s),r.disposeIntermediateTensorInfo(a),l}}let c={kernelName:a.ZerosLike,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","./Complex":"2fiFF","./Fill":"8zGrw","./Imag":"4Od8v","./Real":"fBBrK","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1fNim":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"pack",()=>i),s.export(r,"packConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Concat"),l=e("./ExpandDims");function i(e){let{inputs:t,backend:r,attrs:n}=e,{axis:s}=n;if(1===t.length)return(0,l.expandDims)({inputs:{input:t[0]},backend:r,attrs:{dim:s}});let i=t[0].shape,p=t[0].dtype;t.forEach(e=>{a.util.assertShapesMatch(i,e.shape,"All tensors passed to stack must have matching shapes"),a.util.assert(p===e.dtype,()=>"All tensors passed to stack must have matching dtypes")});let u=[],c=t.map(e=>{let t=(0,l.expandDims)({inputs:{input:e},backend:r,attrs:{dim:s}});return u.push(t),t}),d=(0,o.concat)({inputs:c,backend:r,attrs:{axis:s}});return u.forEach(e=>r.disposeIntermediateTensorInfo(e)),d}let p={kernelName:a.Pack,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","./Concat":"cq91T","./ExpandDims":"fRg5Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2Tf5D":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"padV2",()=>l),s.export(r,"padV2Config",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{paddings:l,constantValue:i}=n;(0,o.assertNotComplex)(s,"pad");let p=l.map((e,t)=>e[0]+s.shape[t]+e[1]),u=l.map(e=>e[0]),c=r.data.get(s.dataId).values,d=a.util.sizeFromShape(s.shape),f=s.shape.length,m=a.util.computeStrides(s.shape),h=a.util.sizeFromShape(p),g=p.length,x=a.util.computeStrides(p),y=a.util.getTypedArrayFromDType(s.dtype,h);0!==i&&y.fill(i);for(let e=0;e<d;e++){let t=a.util.indexToLoc(e,f,m).map((e,t)=>e+u[t]);y[a.util.locToIndex(t,g,x)]=c[e]}return{dataId:r.write(y,p,s.dtype),shape:p,dtype:s.dtype}}let i={kernelName:a.PadV2,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kLar1:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"powImpl",()=>i),s.export(r,"pow",()=>p),s.export(r,"powConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/binary_impl"),l=e("../utils/binary_utils");let i=(0,o.createSimpleBinaryKernelImpl)((e,t)=>Math.pow(e,t)),p=(0,l.binaryKernelFunc)(a.Pow,i),u={kernelName:a.Pow,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/binary_impl":"6IwzO","../utils/binary_utils":"gy3Dx","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gzFNc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedGather",()=>l),s.export(r,"raggedGatherConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedGather_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{paramsNestedSplits:s,paramsDenseValues:a,indices:l}=t,{outputRaggedRank:i}=n,p=s.map(e=>r.data.get(e.dataId).values),u=s.map(e=>e.shape),c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,[f,m,h]=(0,o.raggedGatherImpl)(p,u,c,a.shape,a.dtype,d,l.shape,i),g=f.map(e=>r.makeTensorInfo([e.length],"int32",e)),x=r.makeTensorInfo(h,a.dtype,m);return g.concat([x])}let i={kernelName:a.RaggedGather,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./RaggedGather_impl":"k8otv","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j4Jmi:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedRange",()=>l),s.export(r,"raggedRangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedRange_impl");function l(e){let{inputs:t,backend:r}=e,{starts:n,limits:s,deltas:a}=t,l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,[u,c]=(0,o.raggedRangeImpl)(l,n.shape,n.dtype,i,s.shape,p,a.shape);return[r.makeTensorInfo([u.length],"int32",u),r.makeTensorInfo([c.length],n.dtype,c)]}let i={kernelName:a.RaggedRange,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./RaggedRange_impl":"2XISl","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7ZkQK":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"raggedTensorToTensor",()=>l),s.export(r,"raggedTensorToTensorConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./RaggedTensorToTensor_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{shape:s,values:a,defaultValue:l,rowPartitionTensors:i}=t,{rowPartitionTypes:p}=n,u=r.data.get(s.dataId).values,c=r.data.get(a.dataId).values,d=r.data.get(l.dataId).values,f=i.map(e=>r.data.get(e.dataId).values),m=i.map(e=>e.shape),[h,g]=(0,o.raggedTensorToTensorImpl)(u,s.shape,c,a.shape,a.dtype,d,l.shape,f,m,p);return r.makeTensorInfo(h,a.dtype,g)}let i={kernelName:a.RaggedTensorToTensor,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./RaggedTensorToTensor_impl":"iB2Tp","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j30dI:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"range",()=>l),s.export(r,"rangeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Range_impl");function l(e){let{backend:t,attrs:r}=e,{start:n,stop:s,dtype:a,step:l}=r,i=(0,o.rangeImpl)(n,s,l,a);return t.makeTensorInfo([i.length],a,i)}let i={kernelName:a.Range,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Range_impl":"ilo40","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jw3Jp:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reciprocal",()=>o),s.export(r,"reciprocalConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Reciprocal,e=>1/e),l={kernelName:a.Reciprocal,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aqDSc:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinear",()=>l),s.export(r,"resizeBilinearConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:p}=n;(0,o.assertNotComplex)(s,"resizeBilinear");let u=a.util.computeStrides(s.shape),[c,d]=p,[f,m,h,g]=s.shape,x=r.data.get(s.dataId).values,y=new Float32Array(a.util.sizeFromShape([f,c,d,g])),v=[l&&c>1?m-1:m,l&&d>1?h-1:h],b=[l&&c>1?c-1:c,l&&d>1?d-1:d],k=0,_=v[0]/b[0],I=v[1]/b[1];for(let e=0;e<f;e++)for(let t=0;t<c;t++){let r,n=Math.max(0,Math.floor(r=i?_*(t+.5)-.5:_*t)),s=r-n,a=Math.min(m-1,Math.ceil(r)),o=e*u[0]+n*u[1],l=e*u[0]+a*u[1];for(let e=0;e<d;e++){let t,r=Math.max(0,Math.floor(t=i?I*(e+.5)-.5:I*e)),n=t-r,a=Math.min(h-1,Math.ceil(t)),p=o+r*u[2],c=l+r*u[2],d=o+a*u[2],f=l+a*u[2];for(let e=0;e<g;e++){let t=x[p+e],r=x[c+e],a=x[d+e],o=x[f+e],l=t+(a-t)*n,i=l+(r+(o-r)*n-l)*s;y[k++]=i}}}return r.makeTensorInfo([f,c,d,g],"float32",y)}let i={kernelName:a.ResizeBilinear,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4vVD1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeBilinearGrad",()=>l),s.export(r,"resizeBilinearGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeBilinearGrad");let p=a.util.computeStrides(s.shape),[u,c,d,f]=s.shape,[,m,h]=l.shape,g=new Float32Array(u*c*d*f),x=[i&&m>1?c-1:c,i&&h>1?d-1:d],y=[i&&m>1?m-1:m,i&&h>1?h-1:h],v=x[0]/y[0],b=x[1]/y[1],k=r.data.get(l.dataId).values,_=0;for(let e=0;e<u;e++){let t=e*p[0];for(let e=0;e<m;e++){let r=e*v,n=Math.floor(r),s=Math.min(Math.ceil(r),c-1),a=t+n*p[1],o=t+s*p[1],l=r-n,i=1-l;for(let e=0;e<h;e++){let t=e*b,r=Math.floor(t),n=Math.min(Math.ceil(t),d-1),s=t-r,u=1-s,c=a+r*p[2],m=a+n*p[2],h=o+r*p[2],x=o+n*p[2],y=i*u,v=i*s,I=l*u,j=l*s;for(let e=0;e<f;e++){let t=k[_++];g[c+e]+=t*y,g[m+e]+=t*v,g[h+e]+=t*I,g[x+e]+=t*j}}}}return r.makeTensorInfo([u,d,c,f],"float32",g)}let i={kernelName:a.ResizeBilinearGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7TDMp":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighbor",()=>l),s.export(r,"resizeNearestNeighborConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s}=t,{alignCorners:l,halfPixelCenters:i,size:p}=n;(0,o.assertNotComplex)(s,"resizeNearestNeighbor");let u=a.util.computeStrides(s.shape),[c,d]=p,[f,m,h,g]=s.shape,x=r.data.get(s.dataId).values,y=new Float32Array(f*c*d*g),v=[l&&c>1?m-1:m,l&&d>1?h-1:h],b=[l&&c>1?c-1:c,l&&d>1?d-1:d],k=v[0]/b[0],_=v[1]/b[1],I=0;for(let e=0;e<f;e++){let t=e*u[0];for(let e=0;e<c;e++){let r=i?k*(e+.5):k*e,n=Math.min(m-1,l?Math.round(r):Math.floor(r));i&&(n=Math.max(0,n));let s=t+n*u[1];for(let e=0;e<d;e++){let t=i?_*(e+.5):_*e,r=Math.min(h-1,l?Math.round(t):Math.floor(t));i&&(r=Math.max(0,r));let n=s+r*u[2];for(let e=0;e<g;e++){let t=x[n+e];y[I++]=t}}}}return r.makeTensorInfo([f,c,d,g],s.dtype,y)}let i={kernelName:a.ResizeNearestNeighbor,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],arXoN:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"resizeNearestNeighborGrad",()=>l),s.export(r,"resizeNearestNeighborGradConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r,attrs:n}=e,{images:s,dy:l}=t,{alignCorners:i}=n;(0,o.assertNotComplex)([l,s],"resizeNearestNeighborGrad");let p=a.util.computeStrides(s.shape),u=a.util.computeStrides(l.shape),[c,d,f,m]=s.shape,[,h,g]=l.shape,x=new Float32Array(c*d*f*m),y=r.data.get(l.dataId).values,v=[i&&h>1?d-1:d,i&&g>1?f-1:f],b=[i&&h>1?h-1:h,i&&g>1?g-1:g],k=v[0]/b[0],_=v[1]/b[1],I=1/k,j=1/_,w=2*Math.ceil(I)+2,T=2*Math.ceil(j)+2;for(let e=0;e<c;e++){let t=e*p[0];for(let e=0;e<d;e++){let r=t+e*p[1],n=Math.floor(Math.floor(e*I)-w/2);for(let s=0;s<f;s++){let a=r+s*p[2],o=Math.floor(Math.floor(s*j)-T/2);for(let r=0;r<m;r++){let l=0;for(let a=0;a<w;a++){let p=a+n;if(p<0||p>=h)continue;let c=t+p*u[1],m=p*k;if(e===Math.min(d-1,i?Math.round(m):Math.floor(m)))for(let e=0;e<T;e++){let t=e+o;if(t<0||t>=g)continue;let n=c+t*u[2],a=t*_;s===Math.min(f-1,i?Math.round(a):Math.floor(a))&&(l+=y[n+r])}}x[a+r]=l}}}}return r.makeTensorInfo(s.shape,s.dtype,x)}let i={kernelName:a.ResizeNearestNeighborGrad,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],g4sF4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"reverse",()=>i),s.export(r,"reverseConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Identity");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{dims:i}=n;(0,o.assertNotComplex)(s,"reverse");let p=s.shape.length,u=a.util.parseAxisParam(i,s.shape);if(0===p)return(0,l.identity)({inputs:{x:s},backend:r});let c=new(0,a.TensorBuffer)(s.shape,s.dtype),d=r.bufferSync(s);for(let e=0;e<c.size;e++){let t=c.indexToLoc(e),r=t.slice();u.forEach(e=>r[e]=s.shape[e]-1-r[e]),c.set(d.get(...r),...t)}return r.makeTensorInfo(c.shape,c.dtype,c.values)}let p={kernelName:a.Reverse,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Identity":"ew2a3","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],buBka:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"rotateWithOffsetConfig",()=>o);var a=e("@tensorflow/tfjs-core");let o={kernelName:a.RotateWithOffset,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:r})=>{let{image:n}=e,{radians:s,fillValue:o,center:l}=t,i=a.util.getTypedArrayFromDType(n.dtype,a.util.sizeFromShape(n.shape)),[p,u,c,d]=n.shape,[f,m]=a.backend_util.getImageCenter(l,u,c),h=Math.sin(s),g=Math.cos(s),x=r.data.get(n.dataId).values;for(let e=0;e<p;e++){let t=e*c*u*d;for(let e=0;e<u;e++){let r=c*d*e;for(let n=0;n<c;n++){let s=n*d;for(let a=0;a<d;a++){let l=[p,e,n,a],y=l[2],v=l[1],b=(y-f)*g-(v-m)*h,k=(y-f)*h+(v-m)*g;b=Math.round(b+f),k=Math.round(k+m);let _=o;"number"!=typeof o&&(_=3===a?255:o[a]),b>=0&&b<c&&k>=0&&k<u&&(_=x[t+c*d*k+b*d+a]),i[t+r+s+a]=_}}}}return{dataId:r.write(i,n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fiSlE:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"round",()=>o),s.export(r,"roundConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Round,e=>{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2==0?t:t+1}),l={kernelName:a.Round,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1TDdU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"scatterNd",()=>l),s.export(r,"scatterNdConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{indices:s,updates:l}=t,{shape:i}=n,{sliceRank:p,numUpdates:u,sliceSize:c,strides:d,outputSize:f}=a.backend_util.calculateShapes(l,s,i),m=r.bufferSync(s),h=r.bufferSync(l),g=(0,o.scatterImpl)(m,h,i,f,c,u,p,d,0,!0);return r.makeTensorInfo(i,g.dtype,g.values)}let i={kernelName:a.ScatterNd,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Scatter_impl":"hS4t5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5qRls":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSorted",()=>l),s.export(r,"searchSortedConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SearchSorted_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{sortedSequence:s,values:a}=t,{side:l}=n,i=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,u=(0,o.searchSortedImpl)(i,p,s.shape[0],s.shape[1],a.shape[1],l);return r.makeTensorInfo(a.shape,"int32",u)}let i={kernelName:a.SearchSorted,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./SearchSorted_impl":"5O70V","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5O70V":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"searchSortedImpl",()=>o);var a=e("@tensorflow/tfjs-core");function o(e,t,r,n,s,o){let l=a.util.getArrayFromDType("int32",r*s);for(let a=0;a<r;++a){let r=e.slice(a*n,(a+1)*n),i=a*s;for(let e=0;e<s;++e)l[i+e]="left"===o?function(e,t){let r=0,n=e.length,s=0;for(;r<n;)e[s=Math.floor((r+n)/2)]<t?r=s+1:n=s;return n}(r,t[e+i]):function(e,t){let r=0,n=e.length,s=0;for(;r<n;)e[s=Math.floor((r+n)/2)]<=t?r=s+1:n=s;return n}(r,t[e+i])}return l}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lCXpt:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"select",()=>l),s.export(r,"selectConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");function l(e){let{inputs:t,backend:r}=e,{condition:n,t:s,e:l}=t;(0,o.assertNotComplex)([n,s,l],"select");let i=n.shape.length,p=r.data.get(n.dataId).values,u=r.data.get(s.dataId).values,c=r.data.get(l.dataId).values,d=(0,a.upcastType)(s.dtype,l.dtype),f=a.util.makeZerosTypedArray(a.util.sizeFromShape(s.shape),d),m=0,h=0===i||i>1||1===s.shape.length?1:a.util.sizeFromShape(s.shape.slice(1));for(let e=0;e<p.length;e++)for(let t=0;t<h;t++)1===p[e]?f[m++]=u[e]:f[m++]=c[e];return r.makeTensorInfo(s.shape,d,f)}let i={kernelName:a.Select,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7b5Ai":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"selu",()=>p),s.export(r,"seluConfig",()=>u);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=a.backend_util.SELU_SCALEALPHA,i=a.backend_util.SELU_SCALE,p=(0,o.unaryKernelFunc)(a.Selu,e=>e>=0?i*e:l*(Math.exp(e)-1)),u={kernelName:a.Selu,backendName:"cpu",kernelFunc:p}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fjTv4:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sign",()=>o),s.export(r,"signConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sign,e=>e<0?-1:+(e>0)),l={kernelName:a.Sign,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"96Ts1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sin",()=>o),s.export(r,"sinConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sin,e=>Math.sin(e)),l={kernelName:a.Sin,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7TNAI":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sinh",()=>o),s.export(r,"sinhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Sinh,e=>Math.sinh(e)),l={kernelName:a.Sinh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hXZZ0:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"softplus",()=>i),s.export(r,"softplusConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../utils/unary_utils");let l=Math.log(11920928955078125e-23)+2,i=(0,o.unaryKernelFunc)(a.Softplus,e=>{let t=Math.exp(e);return e<l?t:e>-l?e:Math.log(1+t)}),p={kernelName:a.Softplus,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],HGFyQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"spaceToBatchND",()=>u),s.export(r,"spaceToBatchNDConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./PadV2"),i=e("./Reshape"),p=e("./Transpose");function u(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{blockShape:u,paddings:c}=n;(0,o.assertNotComplex)([s],"spaceToBatchND");let d=a.util.sizeFromShape(u),f=[[0,0]];f.push(...c);for(let e=1+u.length;e<s.shape.length;++e)f.push([0,0]);let m=l.padV2Config.kernelFunc({inputs:{x:s},backend:r,attrs:{paddings:f,constantValue:0}}),h=a.backend_util.getReshaped(m.shape,u,d,!1),g=a.backend_util.getPermuted(h.length,u.length,!1),x=a.backend_util.getReshapedPermuted(m.shape,u,d,!1),y=(0,i.reshape)({inputs:{x:m},backend:r,attrs:{shape:h}}),v=(0,p.transpose)({inputs:{x:y},backend:r,attrs:{perm:g}}),b=(0,i.reshape)({inputs:{x:v},backend:r,attrs:{shape:x}});return r.disposeIntermediateTensorInfo(m),r.disposeIntermediateTensorInfo(y),r.disposeIntermediateTensorInfo(v),b}let c={kernelName:a.SpaceToBatchND,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./PadV2":"2Tf5D","./Reshape":"94cVf","./Transpose":"j4ys5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9KREA":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseFillEmptyRows",()=>l),s.export(r,"sparseFillEmptyRowsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseFillEmptyRows_impl");function l(e){let{inputs:t,backend:r}=e,{indices:n,values:s,denseShape:a,defaultValue:l}=t;if(1!==a.shape.length)throw Error(`Dense shape must be a vector, saw: ${a.shape}`);if(2!==n.shape.length)throw Error(`Indices must be a matrix, saw: ${n.shape}`);if(1!==s.shape.length)throw Error(`Values must be a vector, saw: ${s.shape}`);if(0!==l.shape.length)throw Error(`Default value must be a scalar, saw: ${l.shape}`);let i=r.data.get(n.dataId).values,p=r.data.get(s.dataId).values,u=r.data.get(a.dataId).values,c=r.data.get(l.dataId).values[0],[d,f,m,h,g]=(0,o.sparseFillEmptyRowsImpl)(i,n.shape,n.dtype,p,s.dtype,u,c);return[r.makeTensorInfo(f,n.dtype,d),r.makeTensorInfo([f[0]],s.dtype,m),r.makeTensorInfo([h.length],"bool",new Uint8Array(h.map(e=>Number(e)))),r.makeTensorInfo([g.length],n.dtype,new Int32Array(g))]}let i={kernelName:a.SparseFillEmptyRows,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./SparseFillEmptyRows_impl":"6qd5E","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lWpFB:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseReshape",()=>l),s.export(r,"sparseReshapeConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseReshape_impl");function l(e){let{inputs:t,backend:r}=e,{inputIndices:n,inputShape:s,newShape:a}=t;if(2!==n.shape.length)throw Error(`Input indices should be a matrix but received shape ${n.shape}`);if(1!==s.shape.length)throw Error(`Input shape should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Target shape should be a vector but received shape ${a.shape}`);let l=Array.from(r.data.get(s.dataId).values),i=r.data.get(n.dataId).values,p=Array.from(r.data.get(a.dataId).values),[u,c,d]=(0,o.sparseReshapeImpl)(i,n.shape,n.dtype,l,p);return[r.makeTensorInfo(c,n.dtype,u),r.makeTensorInfo([d.length],a.dtype,new Int32Array(d))]}let i={kernelName:a.SparseReshape,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./SparseReshape_impl":"f0gEZ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],jt9ak:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentMean",()=>l),s.export(r,"sparseSegmentMeanConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,[u,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,p,!0);return r.makeTensorInfo(c,n.dtype,u)}let i={kernelName:a.SparseSegmentMean,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./SparseSegmentReduction_impl":"6ZQJL","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fzkPQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseSegmentSum",()=>l),s.export(r,"sparseSegmentSumConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./SparseSegmentReduction_impl");function l(e){let{inputs:t,backend:r}=e,{data:n,indices:s,segmentIds:a}=t;if(n.shape.length<1)throw Error("Data should be at least 1 dimensional but received scalar");if(1!==s.shape.length)throw Error(`Indices should be a vector but received shape ${s.shape}`);if(1!==a.shape.length)throw Error(`Segment ids should be a vector but received shape ${a.shape}`);if(s.shape[0]!==a.shape[0])throw Error("segmentIds and indices should have same size.");let l=r.data.get(n.dataId).values,i=r.data.get(s.dataId).values,p=r.data.get(a.dataId).values,[u,c]=(0,o.sparseSegmentReductionImpl)(l,n.shape,n.dtype,i,p);return r.makeTensorInfo(c,n.dtype,u)}let i={kernelName:a.SparseSegmentSum,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./SparseSegmentReduction_impl":"6ZQJL","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4Dlhe":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"sparseToDense",()=>l),s.export(r,"sparseToDenseConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let t,{inputs:r,backend:n,attrs:s}=e,{sparseIndices:l,sparseValues:i,defaultValue:p}=r,{outputShape:u}=s,{sliceRank:c,numUpdates:d,sliceSize:f,strides:m,outputSize:h}=a.backend_util.calculateShapes(i,l,u),g=n.bufferSync(l);switch(i.dtype){case"bool":{let e=n.bufferSync(i),r=!!n.data.get(p.dataId).values[0];t=(0,o.scatterImpl)(g,e,u,h,f,d,c,m,r,!1);break}case"float32":{let e=n.bufferSync(i),r=n.data.get(p.dataId).values[0];t=(0,o.scatterImpl)(g,e,u,h,f,d,c,m,r,!1);break}case"int32":{let e=n.bufferSync(i),r=n.data.get(p.dataId).values[0];t=(0,o.scatterImpl)(g,e,u,h,f,d,c,m,r,!1);break}case"string":{let e=n.bufferSync(i),r=a.util.decodeString(n.data.get(p.dataId).values[0]);t=(0,o.scatterImpl)(g,e,u,h,f,d,c,m,r,!1);break}default:throw Error(`Unsupported type ${i.dtype}`)}return n.makeTensorInfo(u,t.dtype,t.values)}let i={kernelName:a.SparseToDense,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Scatter_impl":"hS4t5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"27QZB":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"splitV",()=>l),s.export(r,"splitVConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Slice");function l(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{numOrSizeSplits:l,axis:i}=n,p=a.util.parseAxisParam(i,s.shape)[0],u=a.backend_util.prepareSplitSize(s,l,p),c=Array(s.shape.length).fill(0),d=s.shape.slice();return u.map(e=>{let t=[...d];t[p]=e;let n=(0,o.slice)({inputs:{x:s},backend:r,attrs:{begin:c,size:t}});return c[p]+=e,n})}let i={kernelName:a.SplitV,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Slice":"aVrpO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6RKDU":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"squareConfig",()=>l);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util");let l={kernelName:a.Square,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:r}=e;(0,o.assertNotComplex)(r,"square");let n=t.data.get(r.dataId).values,s=new Float32Array(n.length);for(let e=0;e<n.length;++e){let t=n[e];s[e]=t*t}return{dataId:t.write(s,r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],gLD1g:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"step",()=>o),s.export(r,"stepConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Step,(e,t)=>isNaN(e)?NaN:e>0?1:t.alpha),l={kernelName:a.Step,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"634M0":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stridedSlice",()=>u),s.export(r,"stridedSliceConfig",()=>c);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Reshape"),i=e("./Slice"),p=e("./StridedSlice_impl");function u(e){let t,{inputs:r,backend:n,attrs:s}=e,{x:u}=r,{begin:c,end:d,strides:f,beginMask:m,endMask:h,ellipsisMask:g,newAxisMask:x,shrinkAxisMask:y}=s;(0,o.assertNotComplex)(u,"stridedSlice");let{finalShapeSparse:v,finalShape:b,isIdentity:k,sliceDim0:_,isSimpleSlice:I,begin:j,end:w,strides:T}=a.slice_util.sliceInfo(u.shape,c,d,f,m,h,g,x,y);if(k)t=(0,l.reshape)({inputs:{x:u},backend:n,attrs:{shape:b}});else if(_||I){a.util.assert(u.shape.length>=1,()=>`Input must have rank at least 1, got: ${u.shape.length}`);let e=a.slice_util.computeOutShape(j,w,T),r=(0,i.slice)({inputs:{x:u},backend:n,attrs:{begin:j,size:e}});t=(0,l.reshape)({inputs:{x:r},backend:n,attrs:{shape:b}}),n.disposeIntermediateTensorInfo(r)}else{let e=n.bufferSync(u),r=(0,p.stridedSliceImpl)(v,e,T,j);t=n.makeTensorInfo(b,r.dtype,r.values)}return t}let c={kernelName:a.StridedSlice,backendName:"cpu",kernelFunc:u}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Reshape":"94cVf","./Slice":"aVrpO","./StridedSlice_impl":"9pkbb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4s5vv":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringNGrams",()=>l),s.export(r,"stringNGramsConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringNGrams_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{separator:s,nGramWidths:a,leftPad:l,rightPad:i,padWidth:p,preserveShortSequences:u}=n,{data:c,dataSplits:d}=t,f=r.data.get(c.dataId).values,m=r.data.get(d.dataId).values,[h,g]=(0,o.stringNGramsImpl)(f,m,s,a,l,i,p,u);return[r.makeTensorInfo([h.length],"string",h),r.makeTensorInfo(d.shape,"int32",g)]}let i={kernelName:a.StringNGrams,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./StringNGrams_impl":"cOE3F","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],j9Qom:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringSplit",()=>l),s.export(r,"stringSplitConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringSplit_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{skipEmpty:s}=n,{input:a,delimiter:l}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(1!==a.shape.length)throw Error(`Input must be a vector, got shape: ${a.shape}`);if(0!==l.shape.length)throw Error(`Delimiter must be a scalar, got shape: ${l.shape}`);let i=r.data.get(a.dataId).values,p=r.data.get(l.dataId).values[0],[u,c,d]=(0,o.stringSplitImpl)(i,p,s),f=c.length;return[r.makeTensorInfo([f,2],"int32",u),r.makeTensorInfo([f],"string",c),r.makeTensorInfo([2],"int32",new Int32Array(d))]}let i={kernelName:a.StringSplit,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./StringSplit_impl":"5K3Ct","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ikODx:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"stringToHashBucketFast",()=>l),s.export(r,"stringToHashBucketFastConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./StringToHashBucketFast_impl");function l(e){let{inputs:t,backend:r,attrs:n}=e,{numBuckets:s}=n,{input:a}=t;if("string"!==a.dtype)throw Error("Input must be of datatype string");if(s<=0)throw Error("Number of buckets must be at least 1");let l=r.data.get(a.dataId).values,i=(0,o.stringToHashBucketFastImpl)(l,s);return r.makeTensorInfo(a.shape,"int32",i)}let i={kernelName:a.StringToHashBucketFast,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./StringToHashBucketFast_impl":"cScoY","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"1n2Cy":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tan",()=>o),s.export(r,"tanConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tan,e=>Math.tan(e)),l={kernelName:a.Tan,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6duST":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tanh",()=>o),s.export(r,"tanhConfig",()=>l);var a=e("@tensorflow/tfjs-core");let o=(0,e("../utils/unary_utils").unaryKernelFunc)(a.Tanh,e=>Math.tanh(e)),l={kernelName:a.Tanh,backendName:"cpu",kernelFunc:o}},{"@tensorflow/tfjs-core":"2Gtps","../utils/unary_utils":"8jJxC","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4T45m":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tensorScatterUpdate",()=>l),s.export(r,"tensorScatterUpdateConfig",()=>i);var a=e("@tensorflow/tfjs-core"),o=e("./Scatter_impl");function l(e){let{inputs:t,backend:r}=e,{tensor:n,indices:s,updates:l}=t,{sliceRank:i,numUpdates:p,sliceSize:u,strides:c,outputSize:d}=a.backend_util.calculateShapes(l,s,n.shape),f=r.bufferSync(s),m=r.bufferSync(l),h=r.bufferSync(n),g=(0,o.scatterImpl)(f,m,n.shape,d,u,p,i,c,h,!1);return r.makeTensorInfo(n.shape,g.dtype,g.values)}let i={kernelName:a.TensorScatterUpdate,backendName:"cpu",kernelFunc:l}},{"@tensorflow/tfjs-core":"2Gtps","./Scatter_impl":"hS4t5","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5fOHa":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"tile",()=>i),s.export(r,"tileConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Tile_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{reps:a}=n;(0,o.assertNotComplex)(s,"tile");let i=(0,l.tileImpl)(r.bufferSync(s),a);return r.makeTensorInfo(i.shape,i.dtype,i.values)}let p={kernelName:a.Tile,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Tile_impl":"9gEJf","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],kxEVO:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"topK",()=>i),s.export(r,"topKConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./TopK_impl");function i(e){let{inputs:t,backend:r,attrs:n}=e,{x:s}=t,{k:a,sorted:i}=n;(0,o.assertNotComplex)(s,"topk");let p=r.data.get(s.dataId).values,[u,c]=(0,l.topKImpl)(p,s.shape,s.dtype,a,i);return[r.makeTensorInfo(u.shape,u.dtype,u.values),r.makeTensorInfo(c.shape,c.dtype,c.values)]}let p={kernelName:a.TopK,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./TopK_impl":"7iuur","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fYCMo:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"transform",()=>o),s.export(r,"transformConfig",()=>l);var a=e("@tensorflow/tfjs-core");function o(e){let{inputs:t,attrs:r,backend:n}=e,{image:s,transforms:o}=t,{interpolation:l,fillMode:u,fillValue:c,outputShape:d}=r,[f,m,h,g]=s.shape,[x,y]=null!=d?d:[m,h],v=[f,x,y,g],b=a.util.computeStrides(s.shape),k=b[0],_=b[1],I=b[2],j=a.util.computeStrides(v),w=j[0],T=j[1],S=j[2],C=a.util.getTypedArrayFromDType(s.dtype,a.util.sizeFromShape(v));C.fill(c);let N=n.data.get(s.dataId).values,E=n.data.get(o.dataId).values;for(let e=0;e<f;++e){let t=1===o.shape[0]?E:E.subarray(8*e,8*e+8);for(let r=0;r<x;++r)for(let n=0;n<y;++n)for(let s=0;s<g;++s){let a,o=t[6]*n+t[7]*r+1;if(0===o)continue;let d=(t[0]*n+t[1]*r+t[2])/o,f=(t[3]*n+t[4]*r+t[5])/o,g=i(d,h,u),x=i(f,m,u);switch(l){case"nearest":a=p(N,m,h,k,_,I,e,Math.round(x),Math.round(g),s,c);break;case"bilinear":a=function(e,t,r,n,s,a,o,l,i,u,c){let d=Math.floor(l),f=Math.floor(i),m=d+1,h=f+1,g=(h-i)*p(e,t,r,n,s,a,o,d,f,u,c)+(i-f)*p(e,t,r,n,s,a,o,d,h,u,c),x=(h-i)*p(e,t,r,n,s,a,o,m,f,u,c)+(i-f)*p(e,t,r,n,s,a,o,m,h,u,c);return(m-l)*g+(l-d)*x}(N,m,h,k,_,I,e,x,g,s,c);break;default:throw Error(`Error in Transform: Expect 'nearest' or 'bilinear', but got ${l}`)}C[e*w+r*T+n*S+s]=a}return n.makeTensorInfo(v,s.dtype,C)}return{dataId:n.write(C,v,s.dtype),shape:s.shape,dtype:s.dtype}}let l={kernelName:a.Transform,backendName:"cpu",kernelFunc:o};function i(e,t,r){switch(r){case"reflect":var n,s,o,l,i=e,p=t;let u=i;if(u<0)if(p<=1)u=0;else{let e=2*p;u<e&&(u=e*Math.trunc(-u/e)+u),u=u<-p?u+e:-u-1}else if(u>p-1)if(p<=1)u=0;else{let e=2*p;(u-=e*Math.trunc(u/e))>=p&&(u=e-u-1)}return a.util.clamp(0,u,p-1);case"wrap":let c;return n=e,s=t,(c=n)<0?s<=1?c=0:c+=s*(Math.trunc(-c/(s-1))+1):c>s-1&&(s<=1?c=0:c-=s*Math.trunc(c/(s-1))),a.util.clamp(0,c,s-1);case"nearest":return o=e,l=t,a.util.clamp(0,o,l-1);default:return e}}function p(e,t,r,n,s,a,o,l,i,p,u){return 0<=l&&l<t&&0<=i&&i<r?e[o*n+l*s+i*a+p]:u}},{"@tensorflow/tfjs-core":"2Gtps","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],d9zwP:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unique",()=>i),s.export(r,"uniqueConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Unique_impl");function i(e){let{inputs:t,attrs:r,backend:n}=e,{axis:s}=r,{x:a}=t;(0,o.assertNotComplex)(a,"unique");let i=n.data.get(a.dataId).values,{outputValues:p,outputShape:u,indices:c}=(0,l.uniqueImpl)(i,s,a.shape,a.dtype);return[n.makeTensorInfo(u,a.dtype,p),n.makeTensorInfo([c.length],"int32",c)]}let p={kernelName:a.Unique,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Unique_impl":"dNcr6","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9obkn":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unpack",()=>i),s.export(r,"unpackConfig",()=>p);var a=e("@tensorflow/tfjs-core"),o=e("./Reshape"),l=e("./Slice");function i(e){let{inputs:t,backend:r,attrs:n}=e,{value:s}=t,{axis:a}=n;a<0&&(a+=s.shape.length);let i=s.shape.length,p=s.shape[a],u=Array(i-1),c=0;for(let e=0;e<i;e++)e!==a&&(u[c++]=s.shape[e]);let d=Array(i).fill(0),f=s.shape.slice();f[a]=1;let m=Array(p);for(let e=0;e<m.length;e++){d[a]=e;let t=(0,l.slice)({inputs:{x:s},backend:r,attrs:{begin:d,size:f}});m[e]=(0,o.reshape)({inputs:{x:t},backend:r,attrs:{shape:u}}),r.disposeIntermediateTensorInfo(t)}return m}let p={kernelName:a.Unpack,backendName:"cpu",kernelFunc:i}},{"@tensorflow/tfjs-core":"2Gtps","./Reshape":"94cVf","./Slice":"aVrpO","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"4TMs1":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"unsortedSegmentSum",()=>f),s.export(r,"unsortedSegmentSumConfig",()=>m);var a=e("@tensorflow/tfjs-core"),o=e("../cpu_util"),l=e("./Cast"),i=e("./Equal"),p=e("./ExpandDims"),u=e("./Multiply"),c=e("./Pack"),d=e("./Sum");function f(e){let{inputs:t,backend:r,attrs:n}=e,{x:s,segmentIds:f}=t,{numSegments:m}=n;(0,o.assertNotComplex)(s,"unsortedSegmentSum");let h=s.shape.length,g=f.shape.length,x=[],y=[],v=h-g,b=f;for(let e=0;e<v;++e){let t=(0,p.expandDims)({inputs:{input:b},backend:r,attrs:{dim:e+1}});b=t,y.push(t)}for(let e=0;e<m;++e){let t=a.util.createScalarValue(e,"int32"),n=r.makeTensorInfo([],"int32",t),o=(0,i.equal)({inputs:{a:n,b:b},backend:r}),p=(0,l.cast)({inputs:{x:o},backend:r,attrs:{dtype:"float32"}}),c=(0,u.multiply)({inputs:{a:p,b:s},backend:r}),f=(0,d.sum)({inputs:{x:c},backend:r,attrs:{axis:0,keepDims:!1}});x.push(f),y.push(n),y.push(o),y.push(p),y.push(c),y.push(f)}let k=(0,c.pack)({inputs:x,backend:r,attrs:{axis:0}});return y.forEach(e=>r.disposeIntermediateTensorInfo(e)),k}let m={kernelName:a.UnsortedSegmentSum,backendName:"cpu",kernelFunc:f}},{"@tensorflow/tfjs-core":"2Gtps","../cpu_util":"8IIbB","./Cast":"hKQIs","./Equal":"6vsbD","./ExpandDims":"fRg5Q","./Multiply":"blR5P","./Pack":"1fNim","./Sum":"9Vc6r","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}]},["ecCzQ"],"ecCzQ","parcelRequire4dc0",{}); |